From 370e83bb0dfd0c70de268c93bf07ad5ee0897192 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Fri, 15 Aug 2008 01:29:47 +0200 Subject: Update auf 1.13.0 --- includes/specials/SpecialSpecialpages.php | 82 +++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 includes/specials/SpecialSpecialpages.php (limited to 'includes/specials/SpecialSpecialpages.php') diff --git a/includes/specials/SpecialSpecialpages.php b/includes/specials/SpecialSpecialpages.php new file mode 100644 index 00000000..ca91ad51 --- /dev/null +++ b/includes/specials/SpecialSpecialpages.php @@ -0,0 +1,82 @@ +loadAllMessages(); + + $wgOut->setRobotpolicy( 'noindex,nofollow' ); # Is this really needed? + $sk = $wgUser->getSkin(); + + $pages = SpecialPage::getUsablePages(); + + if( count( $pages ) == 0 ) { + # Yeah, that was pointless. Thanks for coming. + return; + } + + /** Put them into a sortable array */ + $groups = array(); + foreach ( $pages as $page ) { + if ( $page->isListed() ) { + $group = SpecialPage::getGroup( $page ); + if( !isset($groups[$group]) ) { + $groups[$group] = array(); + } + $groups[$group][$page->getDescription()] = array( $page->getTitle(), $page->isRestricted() ); + } + } + + /** Sort */ + if ( $wgSortSpecialPages ) { + foreach( $groups as $group => $sortedPages ) { + ksort( $groups[$group] ); + } + } + + /** Always move "other" to end */ + if( array_key_exists('other',$groups) ) { + $other = $groups['other']; + unset( $groups['other'] ); + $groups['other'] = $other; + } + + /** Now output the HTML */ + foreach ( $groups as $group => $sortedPages ) { + $middle = ceil( count($sortedPages)/2 ); + $total = count($sortedPages); + $count = 0; + + $wgOut->addHTML( "

".wfMsgHtml("specialpages-group-$group")."

\n" ); + $wgOut->addHTML( "" ); + $wgOut->addHTML( "
    \n" ); + foreach( $sortedPages as $desc => $specialpage ) { + list( $title, $restricted ) = $specialpage; + $link = $sk->makeKnownLinkObj( $title , htmlspecialchars( $desc ) ); + if( $restricted ) { + $wgOut->addHTML( "
  • {$link}
  • \n" ); + } else { + $wgOut->addHTML( "
  • {$link}
  • \n" ); + } + + # Split up the larger groups + $count++; + if( $total > 3 && $count == $middle ) { + $wgOut->addHTML( "
    " ); + } + } + $wgOut->addHTML( "
\n" ); + } + $wgOut->addHTML( + Xml::openElement('div', array( 'class' => 'mw-specialpages-notes' )). + wfMsgWikiHtml('specialpages-note'). + Xml::closeElement('div') + ); +} -- cgit v1.2.3-54-g00ecf