Archive/Extension AdminLinks

tbd @

Background

Extension:AdminLinks generates a special page, whose content can be customized in LocalSettings.php. This page contains the code which was in use at Wiki Aventurica.

If you want to remove the links defined by the extension in order to completely customize the page, you will have to remove some code from includes/AdminLinks.php: Everything between // 'general' section and return $tree; needs to go.

See Extension:Admin Links/Hooks/AdminLinks for more information about the hook defined by the extension.

Code

/**
 *
 * configures Spezial:Admin-Links from Extension:Admin Links
 *
 * @author StipenTreublatt
 */

$wgHooks['AdminLinks'][] = 'spam_protection_links';

function spam_protection_links( &$admin_links_tree ) {
    $admin_links_tree = new ALTree();
    // 'system information' section
    $section = new ALSection( wfMessage( 'adminlinks_general' )->text() );
    $main_row = new ALRow( 'main' );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Statistics' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Version' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Specialpages' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Listgrouprights' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Interwiki' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Boilerplates' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Gadgets' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Tags' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'AbuseFilter' ) );
    $section->addRow( $main_row );
    $admin_links_tree->addSection( $section, $next_section_header = null );
    // 'feedback and maintenance' section
    $section = new ALSection( wfMessage( 'adminlinks_feedback' )->text() );
    $main_row = new ALRow( 'main' );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-feedback' )->text(), $description = wfMessage( 'wa-feedback' )->text()) );
    $main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-feedback-spamfilter' )->text(), $description = wfMessage( 'wa-feedback-spamfilter' )->text()) );
    $main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-feedback-update' )->text(), $description = wfMessage( 'wa-feedback-update' )->text()) );
    $main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-feedback-gadgets' )->text(), $description = wfMessage( 'wa-feedback-gadgets' )->text()) );
    $main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-feedback-extensions' )->text(), $description = wfMessage( 'wa-feedback-extensions' )->text()) );
    $main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-feedback-software' )->text(), $description = wfMessage( 'wa-feedback-software' )->text()) );
    $section->addRow( $main_row );
    $main_row = new ALRow( 'important' );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-maintenance' )->text(), $description = wfMessage( 'wa-maintenance' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Category:' . wfMessage( 'wa-cat-maintenance' )->text(), $description = wfMessage( 'wa-cat-maintenance' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Category:' . wfMessage( 'wa-cat-permission' )->text(), $description = wfMessage( 'wa-cat-permission' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Category:' . wfMessage( 'wa-cat-noauthor' )->text(), $description = wfMessage( 'wa-cat-noauthor' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Category:' . wfMessage( 'wa-cat-nosource' )->text(), $description = wfMessage( 'wa-cat-nosource' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Category:' . wfMessage( 'wa-cat-trim' )->text(), $description = wfMessage( 'wa-cat-trim' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Category:' . wfMessage( 'wa-cat-delete' )->text(), $description = wfMessage( 'wa-cat-delete' )->text()) );
    $section->addRow( $main_row );
    $main_row = new ALRow( 'maintenance' );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-maintenance-links' )->text(), $description = wfMessage( 'wa-maintenance-links' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Category:' . wfMessage( 'Broken-file-category' )->text(), $description = wfMessage( 'Broken-file-category' )->text()) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Deadendpages' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Lonelypages' ) );         
    $section->addRow( $main_row );
    $admin_links_tree->addSection( $section, $next_section_header = null );
    // 'polls and guidelines' section
    $section = new ALSection( wfMessage( 'adminlinks_pollsguidelines' )->text() );
    $main_row = new ALRow( 'main' );
    $main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guidelines' )->text(), $description = wfMessage( 'wa-guidelines' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guidelines-votes-decided' )->text(), $description = wfMessage( 'wa-guidelines-votes-decided' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guidelines-votes' )->text(), $description = wfMessage( 'wa-guidelines-votes' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Category:' . wfMessage( 'wa-cat-futurevote' )->text(), $description = wfMessage( 'wa-cat-futurevote' )->text()) );
    $section->addRow( $main_row );
    $main_row = new ALRow( 'guides' );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guides-newpage' )->text(), $description = wfMessage( 'wa-guides-newpage' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guides-canon' )->text(), $description = wfMessage( 'wa-guides-canon' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guides-offpubs' )->text(), $description = wfMessage( 'wa-guides-offpubs' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guides-sources' )->text(), $description = wfMessage( 'wa-guides-sources' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guides-sources-eval' )->text(), $description = wfMessage( 'wa-guides-sources-eval' )->text()) );
    $section->addRow( $main_row );
    $main_row = new ALRow( 'legal' );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-legal-dsa' )->text(), $description = wfMessage( 'wa-legal-dsa' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-legal-licence' )->text(), $description = wfMessage( 'wa-legal-licence' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-legal-copyright' )->text(), $description = wfMessage( 'wa-legal-copyright' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-legal-privacy' )->text(), $description = wfMessage( 'wa-legal-privacy' )->text()) );
    $section->addRow( $main_row );
    $main_row = new ALRow( 'secondary' );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guidelines-behavior' )->text(), $description = wfMessage( 'wa-guidelines-behavior' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guidelines-criticism' )->text(), $description = wfMessage( 'wa-guidelines-criticism' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guidelines-spoiler' )->text(), $description = wfMessage( 'wa-guidelines-spoiler' )->text()) );
		$main_row->addItem( ALItem::newFromPage( 'Wiki Aventurica:' . wfMessage( 'wa-guidelines-namespaces' )->text(), $description = wfMessage( 'wa-guidelines-namespaces' )->text()) );
    $section->addRow( $main_row );
    $admin_links_tree->addSection( $section, $next_section_header = null );
    // 'logs and searching' section
    $section = new ALSection( wfMessage( 'adminlinks_browsesearch' )->text() );
    $main_row = new ALRow( 'main' );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Prefixindex' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Listfiles' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Search' ) );
		$main_row->addItem( ALItem::newFromSpecialPage( 'Linksearch' ) );
		$main_row->addItem( ALItem::newFromSpecialPage( 'Undelete' ) );
		$main_row->addItem( ALItem::newFromSpecialPage( 'Booksources' ) );
		$main_row->addItem( ALItem::newFromSpecialPage( 'Multicategorysearch' ) );
    $section->addRow( $main_row );
    $main_row = new ALRow( 'logs' );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Log' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Abuselog' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Newimages' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Newpages' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'RecentChanges' ) );
    $section->addRow( $main_row );
    $admin_links_tree->addSection( $section, $next_section_header = null );
    // 'MediaWiki messages' section
    $section = new ALSection( wfMessage( 'adminlinks_messages' )->text() );
    $main_row = new ALRow( 'main' );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Allmessages' ) );
    $main_row->addItem( ALItem::newFromEditLink( 'Sitenotice', wfMessage( 'wa-message-sitenotice' )->text() ) );
    $main_row->addItem( ALItem::newFromEditLink( 'Sitenotice_id', wfMessage( 'wa-message-sitenotice-id' )->text() ) );
    $main_row->addItem( ALItem::newFromEditLink( 'Anonnotice', wfMessage( 'wa-message-anonnotice' )->text() ) );
    $main_row->addItem( ALItem::newFromEditLink( 'Common.css', 'CSS' ) );
    $main_row->addItem( ALItem::newFromEditLink( 'Sidebar', wfMessage( 'wa-message-sidebar' )->text() ) );
    $main_row->addItem( ALItem::newFromEditLink( 'Mainpage', wfMessage( 'wa-message-mainpage' )->text() ) );
    $main_row->addItem( ALItem::newFromEditLink( 'Tagline', wfMessage( 'wa-message-tagline' )->text() ) );
    $section->addRow( $main_row );
    $main_row = new ALRow( 'spam' );
    $main_row->addItem( ALItem::newFromEditLink( 'Spam-blacklist', 'Spam-blacklist' ) );
    $main_row->addItem( ALItem::newFromEditLink( 'Spam-whitelist', 'Spam-whitelist' ) );
    $main_row->addItem( ALItem::newFromEditLink( 'Titleblacklist', 'Title-blacklist' ) );
    $main_row->addItem( ALItem::newFromEditLink( 'Titlewhitelist', 'Title-whitelist' ) );
    $section->addRow( $main_row );
    $admin_links_tree->addSection( $section, $next_section_header = null );
    // 'users' section
    $section = new ALSection( wfMessage( 'adminlinks_users' )->text() );
    $main_row = new ALRow( 'main' );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Listusers' ) );
		$ul = SpecialPage::getTitleFor( 'Userlogin' );
		$al = SpecialPage::getTitleFor( 'AdminLinks' );
        $main_row->addItem( ALItem::newFromSpecialPage( 'CreateAccount' ) );
		$main_row->addItem( ALItem::newFromSpecialPage( 'Blocklist' ) );
  	global $wgUser;
  	if ( $wgUser->isAllowed('userrights') ) {
			$main_row->addItem( ALItem::newFromSpecialPage( 'Userrights' ) );
			$main_row->addItem( ALItem::newFromSpecialPage( 'Renameuser' ) );
			$main_row->addItem( ALItem::newFromSpecialPage( 'Usermerge' ) );
  	}
    $section->addRow( $main_row );
    $admin_links_tree->addSection( $section, $next_section_header = null );
    // 'page tools' section
    $section = new ALSection( wfMessage( 'adminlinks_importexport' )->text() );
    $main_row = new ALRow( 'main' );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Export' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Import' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Comparepages' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Mergehistory' ) );
    $main_row->addItem( ALItem::newFromSpecialPage( 'Expandtemplates' ) );
    $section->addRow( $main_row );
    $admin_links_tree->addSection( $section, $next_section_header = null );    
    
    return true;
}