Topic on Project:Support desk

Remove user tabs for non-logged in users (Discussion-View-Edit-History-Refresh)

4
Spiros71 (talkcontribs)

I tried various solutions listed here Topic:Qji4lqoeaodggoft Including the code below in LocalSettings.php (which just hides, rather than removes), but it did not work (MW 1.31/Timeless Skin). Any way it could work in MW 1.31?

$wgHooks['SkinTemplateSetupPageCss'][] = 'wfHideVariousTabsFromAnonymous';
function wfHideVariousTabsFromAnonymous( &$hidetabcss ) {
  global $wgUser;
  if ( !$wgUser->isLoggedIn() ) {
    $hidetabcss .= 'li#ca-history, li#ca-viewsource, li#ca-edit, li#ca-talk, .vectorMenu { display: none; }';
  }
  return true;
}
MarkAHershberger (talkcontribs)

As you can see from the documentation for the SkinTemplateSetupPageCSS, it was removed in MW 1.19.

Try this:

$wgHooks['BeforePageDisplay'][] = 'wfHideVariousTabsFromAnonymous';
function wfHideVariousTabsFromAnonymous( OutputPage $out, Skin $skin ) {
  if ( !$out->getUser()->isLoggedIn() ) {
    // addInineStyle is deprecated
    $out->addInlineStyle( 'li#ca-history, li#ca-viewsource, li#ca-edit, li#ca-talk, .vectorMenu { display: none; }' );
  }
  return true;
}
Spiros71 (talkcontribs)

Thank you so much, Mark, works perfectly!

Moonriverzf (talkcontribs)

Tried completely half a day, various extensions and code, these codes here settled my problem, it really works! Thanks.