Samwilson has uploaded a new change for review. https://gerrit.wikimedia.org/r/323372
Change subject: Make Special:IndexPages transcludable and with parameters ...................................................................... Make Special:IndexPages transcludable and with parameters The Index page search results can now be transcluded, with three optional parameters: * key -- the search term * order -- whether to order by 'quality', 'size', or 'alpha' * sortascending -- to reverse the normal sort direction Bug: T114346 Change-Id: I7636ee00929c4177745fb3dad6cf0d48cf0d88de --- M SpecialProofreadPages.php 1 file changed, 38 insertions(+), 23 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ProofreadPage refs/changes/72/323372/1 diff --git a/SpecialProofreadPages.php b/SpecialProofreadPages.php index 2d27998..a457d61 100644 --- a/SpecialProofreadPages.php +++ b/SpecialProofreadPages.php @@ -24,10 +24,11 @@ public function __construct( $name = 'IndexPages' ) { parent::__construct( $name ); + $this->mIncludable = true; } public function execute( $parameters ) { - global $wgDisableTextSearch, $wgScript; + global $wgDisableTextSearch; $this->setHeaders(); if ( $this->limit == 0 && $this->offset == 0 ) { @@ -45,29 +46,12 @@ $this->suppressSqlOffset = false; if ( !$wgDisableTextSearch ) { - $orderSelect = new XmlSelect( 'order', 'order', $this->queryOrder ); - $orderSelect->addOption( $this->msg( 'proofreadpage_index_status' )->text(), 'quality' ); - $orderSelect->addOption( $this->msg( 'proofreadpage_index_size' )->text(), 'size' ); - $orderSelect->addOption( $this->msg( 'proofreadpage_alphabeticalorder' )->text(), 'alpha' ); - $output->addHTML( - Html::openElement( 'form', [ 'action' => $wgScript ] ) . - Html::hidden( 'title', $this->getPageTitle()->getPrefixedText() ) . - Html::input( 'limit', $this->limit, 'hidden', [] ) . - Html::openElement( 'fieldset', [] ) . - Html::element( 'legend', null, $this->msg( 'proofreadpage_specialpage_legend' )->text() ) . - Html::openElement( 'p' ) . - Html::element( 'label', [ 'for' => 'key' ], $this->msg( 'proofreadpage_specialpage_label_key' )->text() ) . ' ' . - Html::input( 'key', $this->searchTerm, 'search', [ 'id' => 'key', 'size' => '50' ] ) . - Html::closeElement( 'p' ) . - Html::openElement( 'p' ) . - Html::element( 'label', [ 'for' => 'order' ], $this->msg( 'proofreadpage_specialpage_label_orderby' )->text() ) . ' ' . $orderSelect->getHtml() . ' ' . - Xml::checkLabel( $this->msg( 'proofreadpage_specialpage_label_sortascending' )->text(), 'sortascending', 'sortascending', $this->sortAscending ) . ' ' . - Xml::submitButton( $this->msg( 'ilsubmit' )->text() ) . - Html::closeElement( 'p' ) . - Html::closeElement( 'fieldset' ) . - Html::closeElement( 'form' ) - ); + if ( !$this->including() ) { + // Only show the search form when not including in another page. + $output->addHTML( $this->getSearchForm() ); + } + if ( $this->searchTerm ) { $indexNamespaceId = ProofreadPage::getIndexNamespaceId(); $searchEngine = SearchEngine::create(); @@ -145,6 +129,37 @@ ]; } + /** + * Get the HTML of the search form. + * @return string The HTML, with the <form> as the outermost element. + */ + protected function getSearchForm() { + $config = RequestContext::getMain()->getConfig(); + + $orderSelect = new XmlSelect( 'order', 'order', $this->queryOrder ); + $orderSelect->addOption( $this->msg( 'proofreadpage_index_status' )->text(), 'quality' ); + $orderSelect->addOption( $this->msg( 'proofreadpage_index_size' )->text(), 'size' ); + $orderSelect->addOption( $this->msg( 'proofreadpage_alphabeticalorder' )->text(), 'alpha' ); + + $searchForm = Html::openElement( 'form', [ 'action' => $config->get( 'Script' ) ] ) . + Html::hidden( 'title', $this->getPageTitle()->getPrefixedText() ) . + Html::input( 'limit', $this->limit, 'hidden', [] ) . + Html::openElement( 'fieldset', [] ) . + Html::element( 'legend', null, $this->msg( 'proofreadpage_specialpage_legend' )->text() ) . + Html::openElement( 'p' ) . + Html::element( 'label', [ 'for' => 'key' ], $this->msg( 'proofreadpage_specialpage_label_key' )->text() ) . ' ' . + Html::input( 'key', $this->searchTerm, 'search', [ 'id' => 'key', 'size' => '50' ] ) . + Html::closeElement( 'p' ) . + Html::openElement( 'p' ) . + Html::element( 'label', [ 'for' => 'order' ], $this->msg( 'proofreadpage_specialpage_label_orderby' )->text() ) . ' ' . $orderSelect->getHtml() . ' ' . + Xml::checkLabel( $this->msg( 'proofreadpage_specialpage_label_sortascending' )->text(), 'sortascending', 'sortascending', $this->sortAscending ) . ' ' . + Xml::submitButton( $this->msg( 'ilsubmit' )->text() ) . + Html::closeElement( 'p' ) . + Html::closeElement( 'fieldset' ) . + Html::closeElement( 'form' ); + return $searchForm; + } + public function getQueryInfo() { $conds = []; if ( $this->searchTerm ) { -- To view, visit https://gerrit.wikimedia.org/r/323372 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7636ee00929c4177745fb3dad6cf0d48cf0d88de Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/ProofreadPage Gerrit-Branch: master Gerrit-Owner: Samwilson <s...@samwilson.id.au> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits