$sk = $wgUser->getSkin();
/** Pages available to all */
- wfSpecialSpecialpages_gen( SpecialPage::getRegularPages(), 'spheading', $sk );
+ wfSpecialSpecialpages_gen( SpecialPage::getRegularPages(), 'spheading', $sk, false );
/** Restricted special pages */
- wfSpecialSpecialpages_gen( SpecialPage::getRestrictedPages(), 'restrictedpheading', $sk );
+ wfSpecialSpecialpages_gen( SpecialPage::getRestrictedPages(), 'restrictedpheading', $sk, true );
}
/**
* @param $pages the list of pages
* @param $heading header to be used
* @param $sk skin object ???
+ * @param $restricted, restricted pages or not
*/
-function wfSpecialSpecialpages_gen($pages,$heading,$sk) {
- global $wgOut, $wgSortSpecialPages;
+function wfSpecialSpecialpages_gen($pages,$heading,$sk,$restricted) {
+ global $wgOut, $wgUser, $wgSortSpecialPages, $wgLogRestrictions, $wgLogNames;
if( count( $pages ) == 0 ) {
# Yeah, that was pointless. Thanks for coming.
$sortedPages[$page->getDescription()] = $page->getTitle();
}
}
+
+ # Add private logs
+ if ( $restricted && isset($wgLogRestrictions) ) {
+ foreach ( $wgLogRestrictions as $type => $restriction ) {
+ $page = SpecialPage::getTitleFor( 'Log', $type );
+ if ( $restriction != '' && $wgUser->isAllowed( $restriction ) ) {
+ $name = wfMsgHtml( $wgLogNames[$type] );
+ $sortedPages[$name] = $page;
+ }
+ }
+ }
/** Sort */
if ( $wgSortSpecialPages ) {