diff --git a/extension.json b/extension.json
index 8cdba58d8429ed64c4a995a67534dfe48e3e7f10..724fd526550ad9dd24221a1f59abcf84fdab8c44 100644
--- a/extension.json
+++ b/extension.json
@@ -6,6 +6,9 @@
 	"license-name": "GPL-2.0-or-later",
 	"descriptionmsg": "connected-desc",
 	"type": "parserhook",
+	"requires": {
+		"MediaWiki": ">= 1.34.0"
+	},
 	"MessagesDirs": {
 		"Connected": [
 			"i18n"
@@ -19,6 +22,8 @@
 	},
 	"Hooks": {
 		"ParserFirstCallInit": "ConnectedHooks::onParserFirstCallInit",
+		"ParserOptionsRegister": "ConnectedHooks::onParserOptionsRegister",
+		"onPageRenderingHash": "ConnectedHooks::setParserOptions",
 		"ParserGetVariableValueSwitch": "ConnectedHooks::wfConnectedAssignValue",
 		"MagicWordwgVariableIDs": "ConnectedHooks::connectedDeclareVarIds",
 		"SkinBuildSidebar": "ConnectedHooks::lfHideSidebar",
diff --git a/src/Connected.php b/src/Connected.php
index 4b5fe6f989a0a5caa4ca24fa43cb3503d21e7ff0..6f83668544dccb15d18c2c7b77ad97a73d3d1281 100755
--- a/src/Connected.php
+++ b/src/Connected.php
@@ -12,51 +12,65 @@ class ConnectedHooks {
 	public static function onParserFirstCallInit( Parser $parser ) {
 		// Create a function hook associating the "example" magic word with renderExample()
 		$parser->setFunctionHook( 'iflogged', [ self::class, 'ifConnectedRender' ] );
+		// TODO: Le getuser ne marche pas car $parser est null ne marche pas ici à voir comment on fait
+		//cf. https://github.com/wikimedia/mediawiki-extensions-WikiTextLoggedInOut/blob/d764bd3972ed6b84a4af3ed423a3a5fd9b82c493/includes/WikiTextLoggedInOut.php#L39
+		if ( method_exists( $parser, 'getUserIdentity' ) ) {
+			// MW 1.36+
+			$res = $parser->getUserIdentity()->isRegistered();
+		} else {
+			if (method_exists( $parser, 'getUser' )){
+				$res = $parser->getUser()->isRegistered();
+			}
+			else{
+				$res = '';
+			}
+		}
+		$parser->getOptions()->setOption( 'connected', string($res) );
+	}
+
+	public static function onParserOptionsRegister( &$defaults, &$inCacheKey, &$lazyOptions ) {
+		$inCacheKey['connected'] = true;
+		$defaults['connected'] = '';
+		return true;
 	}
 
 	// Render the output of {{#ifloggedin:}} i.e. iflogged function.
 	public static function ifConnectedRender( Parser $parser, $ifLoggedIn = '', $ifNot = '') {
 		// The input parameters are wikitext with templates expanded.
 		// The output should be wikitext too.
-		global $wgUser;
-		if($wgUser->isSafeToLoad()){
-			if ( $wgUser->isLoggedIn() ) {
-				$output = $ifLoggedIn;
-			}
-			else{
-				$output = $ifNot;
-			}
+		if ( $parser->getOptions()->getOption('connected') == string(true)) {
+			$output = $ifLoggedIn;
+		}
+		else{
+			$output = $ifNot;
 		}
 		return [ $output, 'noparse' => false ];
 	}
 
 	//calcul des variables
 	public static function wfConnectedAssignValue( Parser $parser, &$cache, $magicWordId, &$ret, $frame) {
-		global $wgUser;
 		$result = false;
-		if($wgUser->isSafeToLoad()){
-			switch($magicWordId){
-				case 'connected' :
-					if ( !$wgUser->isLoggedIn() ) {
-						$ret = 0;
-						$result = true;
-					}
-					else{
-						$ret = 1;
-						$result = true;
-					}
-					break;
-				case 'u_name':
-					if ( !$wgUser->isLoggedIn() ) {
-						$ret = $wgUser->getName();
-						$result = true;
-					}
-					else{
-						$ret = $wgUser->getName();
-						$result = true;
-					}
-					break;
-			}
+		switch($magicWordId){
+			case 'connected' :
+				if ( $parser->getOptions()->getOption('connected') == string(false)) {
+					$ret = 0;
+					$result = true;
+				}
+				else{
+					$ret = 1;
+					$result = true;
+				}
+				break;
+			case 'u_name':
+				if ( $parser->getOptions()->getOption('connected') == string(false)) {
+					$ret = $wgUser->getName();
+					$result = true;
+				}
+				else{
+					$ret = $wgUser->getName();
+					$result = true;
+				}
+				break;
 		}
 		return $result;
 	}
@@ -73,9 +87,8 @@ class ConnectedHooks {
 //https://www.mediawiki.org/wiki/Manual:Interface/Sidebar#Change_sidebar_content_when_logged_in_(PHP)
 //https://www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
 	public static function lfHideSidebar( $skin, &$bar ) {
-		global $wgUser;
 		// Hide sidebar for anonymous users
-		if ( !$wgUser->isLoggedIn() ) {
+		if ( $parser->getOptions()->getOption('connected') == string(false)) {
 			$bar = array(
 				'navigation' => array(
 					array(
@@ -92,8 +105,7 @@ class ConnectedHooks {
 
 	#Ajouter une feuille de style quand pas connecté
 	public static function add_NotLoggedIncss( OutputPage $out, Skin $skin ) {
-		global $wgUser;
-		if ( !$wgUser->isLoggedIn() ) {
+		if ( $parser->getOptions()->getOption('connected') == string(false)) {
 			$out->addStyle('/w/index.php?title=MediaWiki:NotLoggedIn.css&action=raw&ctype=text/css');
 			$out->addMeta( "logged", "no" );
 		}