Hallo typo3.net Forum,
und zwar möchte ich 2 verschiedene php Templates immer via random aufrufen lassen. Gibt es da was für den Befehl: template.file = fileadmin/template01.php ?
würde mich über ein Tipp freuen!
Danke 🙂
Hallo typo3.net Forum,
und zwar möchte ich 2 verschiedene php Templates immer via random aufrufen lassen. Gibt es da was für den Befehl: template.file = fileadmin/template01.php ?
würde mich über ein Tipp freuen!
Danke 🙂
Die Suche im Forum hilft in der Regel schnell:
#481153
Danke für Deine Antwort. Aber was ich suche sind keine einzelnen Contentelemente die via Random angezeigt werden sollen, sondern komplett das Template an sich soll zwischen 2 PHP Dateien immer switchen im random Verfahren.
Glaube nicht, dass TS so etwas bietet
hmmmm.. oder über eine zwischen php datei die dann einen Random Befehl beinhaltet? Aber das wird auch nicht klappen...
Habe auch schon drüber nachgedacht, komme aber nur zu zweifelhaften Lösungen
(Per Cronjob Template File abändern und so ein Kack...)
Also über TS direkt gehts nicht, aber über stdWrap.postUserFunc könntest du dir eine PHP-Funktion einbinden, die ein Template auswählt und den Pfad dazu zurück gibt.
Gibt es irgendwo was genaueres wie stdWrap.postUserFunc mit einer PHP Funktion zusammenarbeitet? das heißt es würde aus einer PHP Datei in der sich diese Randomanweisung befindet den Pfad ziehen und voila... So in der Theorie
genau, deine template.file anweisung braucht ja einen String mit dem Pfad zu dem Template.
d.h. du brauchst in deiner Funktion am Ende nur irgendwie eines der beiden Templates mit Pfad zu returnen.
Eigenlich bekommt die Funktion nur den aktuellen Wert des Objekts auf das es angewendet wird (in deinem Fall keiner, da du ja nicht den Wert verändern willst) und der return der Funktion wird dann zum neuen Wert des Objekts.
#paralyzed# - also in der Theorie wie gesagt habe ich es verstanden nur in der Praxis siehts wohl anders aus. Ich bekomme den random Befehl hin der steckt in einer random.php - nur das mit typo3 zu verknüpfen über diesen befehl "stdWrap.postUserFunc". Beim google für diesen Befehl "stdWrap.postUserFunc" ist mir jetzt auch nichts konkretes zu meinem Problem aufgetaucht.
oki, ich habs nicht probiert, aber ungefähr so sollte es gehen:
# 1. die Bibliothek einbinden
page.includeLibs.yourrandom = fileadmin/random.php # Pfad anpassen
# 2. Funktion aufrufen und Ergebnis an TEMPLATE übergeben, bitte Anfang an deine bedürfnisse anpassen
template.file.import.postUserFunc = derFunktionsname #hier bitte Name der Funktion
# alternativ, falls das oben nicht geht
template.file.import.stdWrap.postUserFunc = derFunktionsname
Danke!
leider läufts nicht so ganz. Das PHP Script lädt er schon mal rein und hat auch das test echo mit ausgegeben. Leider setzt er aber nicht den ausgegebenen Dateinamen ein.
Mein Typoscript sieht so aus (Auszug):
page.includeLibs.random_seite = fileadmin/random.php
page = PAGE
page {
typeNum = 0
# bodyTag = <body bgcolor ="#99CB00" topmargin="0" leftmargin="0">
10 = TEMPLATE
10.template = FILE
10.template.file.import.stdWrap.postUserFunc = random_seite
PHP Script random.php
<?php
function random_seite()
{
$page = rand(1, 2);
return "template".$page.".php";
}
?>
achja habs einmal mit StdWrap und auch ohne versucht. Komischerweise gibt er auch nicht "no template file found" oder so aus was er ja sonst auch macht oder?
Liegen den die Templates direkt im root-Verzeichnis von TYPO ? Denn du gibst ja keinen Pfad mit an für die Templates.
Hast recht.
waren im fileadmin. hat aber trotzdem nichts verändert *grübel*
<?php
function random_seite()
{
$page = rand(1, 2);
return "fileadmin"."/"."template".$page.".php";
}
?>
sieht nun so aus meine random.php
bin gerade auch etwas ratlos, hast du nochmal mit und ohne stdWrap probiert?
ja *seufz* hat aber nicht geklappt.
Hat evtl. jemand eine Idee für eine andere Lösung?
*nach oben schieb*
hab jetzt leider keine Lösung, aber wollte nur mal eines anmerken: Ist dir bewusst, dass das Caching ausgeschaltet sein muss und das Konsequenzen hat? > viel langsamer, indexed_search geht nicht
lg georg