+
+ # Web output...
+
+ // Run existence checks
+ $batch->execute();
+ $any = $wgRequest->getBool( 'categories_any', $defaults['categories_any']);
+
+ // Output header
+ if ( !$specialPage->including() ) {
+ $wgOut->addWikiText( wfMsgForContentNoTrans( "recentchangestext" ) );
+
+ // Dump everything here
+ $nondefaults = array();
+
+ wfAppendToArrayIfNotDefault( 'days', $days, $defaults, $nondefaults);
+ wfAppendToArrayIfNotDefault( 'limit', $limit , $defaults, $nondefaults);
+ wfAppendToArrayIfNotDefault( 'hideminor', $hideminor, $defaults, $nondefaults);
+ wfAppendToArrayIfNotDefault( 'hidebots', $hidebots, $defaults, $nondefaults);
+ wfAppendToArrayIfNotDefault( 'hideanons', $hideanons, $defaults, $nondefaults );
+ wfAppendToArrayIfNotDefault( 'hideliu', $hideliu, $defaults, $nondefaults);
+ wfAppendToArrayIfNotDefault( 'hidepatrolled', $hidepatrolled, $defaults, $nondefaults);
+ wfAppendToArrayIfNotDefault( 'hidemyself', $hidemyself, $defaults, $nondefaults);
+ wfAppendToArrayIfNotDefault( 'from', $from, $defaults, $nondefaults);
+ wfAppendToArrayIfNotDefault( 'namespace', $namespace, $defaults, $nondefaults);
+ wfAppendToArrayIfNotDefault( 'invert', $invert, $defaults, $nondefaults);
+ wfAppendToArrayIfNotDefault( 'categories_any', $any, $defaults, $nondefaults);
+
+ // Add end of the texts
+ $wgOut->addHTML( '<div class="rcoptions">' . rcOptionsPanel( $defaults, $nondefaults ) . "\n" );
+ $wgOut->addHTML( rcNamespaceForm( $namespace, $invert, $nondefaults, $any ) . '</div>'."\n");
+ }
+
+ // And now for the content
+ $list = ChangesList::newFromUser( $wgUser );
+
+ if ( $wgAllowCategorizedRecentChanges ) {
+ $categories = trim ( $wgRequest->getVal ( 'categories' , "" ) ) ;
+ $categories = str_replace ( "|" , "\n" , $categories ) ;
+ $categories = explode ( "\n" , $categories ) ;
+ rcFilterByCategories ( $rows , $categories , $any ) ;
+ }
+