MediaWiki  master
SpecialWithoutInterwiki.php
Go to the documentation of this file.
1 <?php
26 
33  private $prefix = '';
34 
35  function __construct( $name = 'Withoutinterwiki' ) {
36  parent::__construct( $name );
37  }
38 
39  function execute( $par ) {
40  $this->prefix = Title::capitalize(
41  $this->getRequest()->getVal( 'prefix', $par ), NS_MAIN );
42  parent::execute( $par );
43  }
44 
45  function getPageHeader() {
46  # Do not show useless input form if special page is cached
47  if ( $this->isCached() ) {
48  return '';
49  }
50 
51  $formDescriptor = [
52  'prefix' => [
53  'label-message' => 'allpagesprefix',
54  'name' => 'prefix',
55  'id' => 'wiprefix',
56  'type' => 'text',
57  'size' => 20,
58  'default' => $this->prefix
59  ]
60  ];
61 
62  $htmlForm = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() );
63  $htmlForm->setWrapperLegend( '' )
64  ->setSubmitTextMsg( 'withoutinterwiki-submit' )
65  ->setMethod( 'get' )
66  ->prepareForm()
67  ->displayForm( false );
68  }
69 
70  function sortDescending() {
71  return false;
72  }
73 
74  function getOrderFields() {
75  return [ 'page_namespace', 'page_title' ];
76  }
77 
78  function isExpensive() {
79  return true;
80  }
81 
82  function isSyndicated() {
83  return false;
84  }
85 
86  function getQueryInfo() {
87  $query = [
88  'tables' => [ 'page', 'langlinks' ],
89  'fields' => [
90  'namespace' => 'page_namespace',
91  'title' => 'page_title',
92  'value' => 'page_title'
93  ],
94  'conds' => [
95  'll_title IS NULL',
96  'page_namespace' => MediaWikiServices::getInstance()->getNamespaceInfo()->
97  getContentNamespaces(),
98  'page_is_redirect' => 0
99  ],
100  'join_conds' => [ 'langlinks' => [ 'LEFT JOIN', 'll_from = page_id' ] ]
101  ];
102  if ( $this->prefix ) {
103  $dbr = wfGetDB( DB_REPLICA );
104  $query['conds'][] = 'page_title ' . $dbr->buildLike( $this->prefix, $dbr->anyString() );
105  }
106 
107  return $query;
108  }
109 
110  protected function getGroupName() {
111  return 'maintenance';
112  }
113 }
getContext()
Gets the context this SpecialPage is executed in.
const NS_MAIN
Definition: Defines.php:60
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
isCached()
Whether or not the output of the page in question is retrieved from the database cache.
Definition: QueryPage.php:258
static factory( $displayFormat,... $arguments)
Construct a HTMLForm object for given display type.
Definition: HTMLForm.php:307
Special page lists pages without language links.
static capitalize( $text, $ns=NS_MAIN)
Capitalize a text string for a title if it belongs to a namespace that capitalizes.
Definition: Title.php:3316
Variant of QueryPage which formats the result as a simple link to the page.
const DB_REPLICA
Definition: defines.php:25
getRequest()
Get the WebRequest being used for this instance.
__construct( $name='Withoutinterwiki')