[Mediawiki-l] Conditional page content depending on user is logged in or not

Platonides Platonides at gmail.com
Sat Oct 6 21:41:12 UTC 2007


Schmid, Wolfgang wrote:
> @Jim
> what you propose is a php based solution but I'm a beginner in php
> programming and I'm looking for a wiki based solution without
> programming own php code if possible.
> 

The following code included from LocalSettigns.php would do:

$wgExtensionFunctions[] = 'wfIsLoggedFunctions';

  function wfIsLoggedFunctions() {
      global $wgParser, $wgExtIsLoggedFunctions;

      $wgExtIsLoggedFunctions = new ExtIsLoggedFunctions();

      $wgParser->setFunctionHook( 'iflogged', array( 
&$wgExtIsLoggedFunctions , 'ifLogged' ) );
      $wgParser->setFunctionHook( 'islogged', array( 
&$wgExtIsLoggedFunctions , 'isLogged' ) );

  }

  class wgExtIsLoggedFunctions
  {
      function ifLogged( &$parser, $then = '', $else = ''  )
      {
  	  global $wgUser;
           $parser->disableCache();
           if ($wgUser->isLoggedIn()) {
             return $then;
           } else {
             return $else;
           }
       }

      function isLogged( &$parser, $then = '', $else = ''  )
      {
  	  global $wgUser;
           $parser->disableCache();
           return $wgUser->isLoggedIn();
       }
  }

?>


Usage:
{{#iflogged: Congratulations, you're a registered user.|You're 
anonymous. Go to create an account!}}

I also added #islogged to return the raw boolean value.




More information about the MediaWiki-l mailing list