Zum Inhalt springen

fe template extension

Erstellt am 16. Februar 2006 · 4 Antworten · letzte Antwort am 13. Oktober 2008

Tags: Frage

pfannkuchen ·

hallo,

möchte eine extension bauen die das aktuelle html template aus einen cookie ausliest, damit jeder benutzer sein liebliengstemplate auswählen kann.beim nächsten start ist es automatisch aktiv.

Leider bekomme ich die globale variable nicht angehängt

hier mein script

function main($content,$conf)	{
		$this->conf=$conf;
		$this->pi_setPiVarDefaults();
		$this->pi_loadLL();
		
	$cookieName = "my_template"; 
				$wid = $GLOBALS["HTTP_COOKIE_VARS"][$cookieName];
				$default = "standart";

                // wmid Abfrage wenn ein Cookie bereits existiert
            if (!isset($GLOBALS["HTTP_COOKIE_VARS"][$cookieName])) {
                       $GLOBALS["TSFE"]->set_no_cache();
                       setcookie($cookieName,$default,time()+(3600*24*30));
	echo "setcookie";
                }
             else {	
						$GLOBALS['TSFE']->linkVars = "T=".$wid ;	
						echo "cookie ".$wid;	
             		
            } 
		
		if(strstr($GLOBALS['TSFE']->linkVars, '&T=')) {
 	 			$GLOBALS['TSFE']->linkVars = ereg_replace('&T=[0-9]*' , '', $GLOBALS['TSFE']->linkVars);$GLOBALS['TSFE']->linkVars = "T=".$wid ;
			}
		
		
	
	return $GLOBALS['TSFE']->linkVars = "T=".$wid ;
		
	}
}

wie kann ich typo3 beibringen, immer automatisch "T=".$wid anzuhängen?

thx im voraus

McGregor ·

Hi!

Sicher das das überhaupt funktioniert?
Ich habe gelesen, dass setcookie einen Header setzt und diese nur am Anfang des Dokuments gültig sind. Da T3 aber noch einigen anderen Mist aufruft, bevor deine Extension an der Reihe ist, bezweifle ich die Funktionalität.

Grüße
McGregor

Aus : www.php.net

setcookie() definiert ein mit den HTTP Header-Informationen zu übertragendes Cookie. Wie andere Header auch, müssen Cookies vor jeglicher Ausgabe Ihres Skriptes gesendet werden (dies ist eine Einschränkung des Protokolls). Das bedeutet, dass Sie diese Funktione aufrufen müssen, bevor Sie eine Ausgabe, dazu zählen auch <html>- oder <head>-Tags sowie jede Art von Whitespaces, übermitteln. Erfolgt eine Ausgabe vor dem Aufruf dieser Funktion, wird setcookie() fehlschlagen und gibt FALSE zurück. Wenn setcookie() erfolgreich durchgeführt wird, wird TRUE zurückgegeben. Dies sagt jedoch nichts darüber aus, ob der Benutzer das Cookie auch akzeptiert hat.

pfannkuchen ·

doch es funktioniert ja auch soweit. allerdings leider nur bei dem template wo ein ypmenu drinn ist. liegt wahrscheinlich daran das da das menu erst danach geparst wird!?!

wie kann ich denn generell ein allgemeine variable für alle

alla &T=5 anhängen?

so das die ändung an allen links drann ist?
Typoscript?

pixeltoy ·

Hallo Pfannkuchen 😉

Gibt es dich noch? Ich habe derzeit genau das Selbe vor und wollte fragen ob du deine Ext. fertiggestellt hast und ob es sie zum Nutzen gibt.

Oder gibt es da Alternativen?

Gruß Pixeltoy