Hi,
kann ich eine Variable aus php vererben, sodass sie im TS verfügbar ist? Sozusagen:
<?php
$VARIABLE = 1234;
?>
und im TS dann als {$VARIABLE} verwendet.
Geht das?
Danke
Markus
Hi,
kann ich eine Variable aus php vererben, sodass sie im TS verfügbar ist? Sozusagen:
<?php
$VARIABLE = 1234;
?>
und im TS dann als {$VARIABLE} verwendet.
Geht das?
Danke
Markus
Hi markus,
ja das geht. Schau dir mal das hier an. Sollte dir der entscheidene Tipp sein.
PS:
ANMERKUNG: Diese Option wird ignoriert, wenn in der localconf.php $TYPO3_CONF_VARS["FE"]["noPHPscriptInclude"]=1; gesetzt ist.
humpun
Hallo humpun,
einbinden des Skripts ist kein Problem, aber wie übergebe ich die Variable? Sie ist nach Einbinden nicht mehr verfügbar.
Gruß
Markus
Hallo marcusbucher,
ist es Ihnen gelungen, den Wert der Variable ins TypoScript zurückzubekommen?
Bin gerade selbst an dem Problem, mittels einer Abfrage im Script den Namen
meines Templates festzulegen (ich habe eine Flash- und eine nicht-Flash-Variante).
Ich bekomme den Wert zurück, das ist nicht das Problem, aber mehr auch nicht.
page.99 = PHP_SCRIPT
page.99.file = fileadmin/d3gmbh/scripts/user_template_chose.php
Der Wert von page.99 wird brav in der Webseite angezeigt, also mal der Beweis, daß der Wert aus dem Script zurückgeliefert wird, aber das ist ja nicht Sinn der Sache.
Was ich dann brauche, ist entweder eine Condition, in der ich den rückgelieferten
Wert auswerten kann, um mein Template auszuwählen, also
temp.flashflag = PHP_SCRIPT
temp.flashflag.file = fileadmin/d3gmbh/scripts/user_flashflag.php
temp.alltemplate = FILE
[temp.flashflag = 1]
temp.alltemplate.file = {$CONST_TEMPLATEDIR}{$CONST_TEMPLATEFILE_NONFLASH}
[temp.flashflag = 2]
temp.alltemplate.file = {$CONST_TEMPLATEDIR}{$CONST_TEMPLATEFILE}
[global]
... condition funktioniert aber nicht
oder aber eine Übergabe des Wertes ...
temp.templatename = PHP_SCRIPT
temp.templatename.file = fileadmin/d3gmbh/scripts/user_template_chose.php
temp.alltemplate = FILE
temp.alltemplate.file < temp.templatename
... funktioniert auch nicht
Der dritte Weg wäre, wenn ich in einer Condition den Flash-Flag, den ich mit dem PHP-Script in die Session setze, auswerten könnte. Habe aber unter den Conditions nicht die Möglichkeit gefunden, Session-Variablen auszulesen ...
Der vierte Weg wäre, ich könnte dynamisch allen Links in der Navigation und im Text einen Parameter "flash" oder "nonflash" anhängen (über Typoscript).
denn den können die Conditions auswerten ...
Vielleicht hat jemand eine Anregung, wie ich das Problem lösen kann?
Hallo,
leider habe ich noch keine Lösung für mein und damit auch keine Lösung für Ihr Problem. Wenn ich eine finde, melde ich mich.
Gruß
Markus Bucher
Hallo, nun bin ich doch etwas weitergekommen.
Unter Beachtung: https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Syntax/Conditions/Index.html#typoscript-syntax-implementing-custom-conditions
temp.filename=TEXT
temp.filename = {$CONST_TEMPLATEDIR}{$CONST_TEMPLATEFILE}
[userFunc = user_flashflag()]
temp.filename = {$CONST_TEMPLATEDIR}{$CONST_TEMPLATEFILE_NONFLASH}
[global]
die Funktion user_flashflag()
wird in die [typo3projekt]/typo3conf/localconf.php
geschrieben.
function user_flashflag() {
global $TSFE;
global $_GET;
global $HTTP_COOKIE_VARS;
//getting flashflag
if ( isset($_GET['flash']) AND $_GET['flash']=="nonflash"){
//and setting flashflag
setcookie("flash", "nonflash", 0);
$GLOBALS["TSFE"]->fe_user->setKey("ses","flashflag", "nonflash");
return true;
}
else{
if ( isset($_GET['flash']) AND $_GET['flash']=="flash"){
setcookie("flash","flash", 0);
$GLOBALS["TSFE"]->fe_user->setKey("ses","flashflag", "flash");
return false;
}
elseif( ($HTTP_COOKIE_VARS["flash"] == "nonflash") OR ($GLOBALS["TSFE"]->fe_user->getKey("ses","flashflag" == "nonflash"))) {
return true;
}
else{
}
}
}
Ich würde die Angabe, ob der User nonFlash ausgewählt hat, lieber aus der Session nehmen, dies funktioniert aber nicht, deshalb hier zusätzlich die Cookies-Variante.
sieht jemand den Fehler?