[TYPO3-german] Userfunction fürs FE wird nur ausgeführt, wenn im BE eingeloggt??
Johannes Konert
johanneskonert at gmx.de
Tue Jul 18 18:33:39 CEST 2006
gelöst.
Christoph Köhler gab mir auf typo3.english den entscheidenden Tip:
Für reine FrontendAusführung wird bei loadTCA() nicht das ganze Array
geladen, sondern nur ein kleiner Teil. (Für 'pages' siehe bspw
http://www.studimate.de/1.png)
Um das gesamte TCA zu bekommen hilft
$GLOBALS['TCA']->includeTCA(1)
Leider kann man damit nur das komplette TCA-Array laden, aber es geht
endlich ;-)
Johannes Konert schrieb:
> okay,
> ich habe es soweit eingeschränkt, dass diese Schleife nicht ordentlich
> läuft, sobald ~keine~ Admin-BE-Session existiert:
>
> global $GLOBALS;
> t3lib_div::loadTCA('pages');
> foreach
> ($GLOBALS['TCA']['pages']['columns']['doktype']['config']['items'] as
> $item){
> // search for doktype-keys for the pagetypes
> }
>
> So wies aussieht ist das Array leer, wenn nur im FE ein eingeloggter
> User auf den Seiten browst und die Funktion der Extension im TypoScript
> aufgerufen wird....
> führt dann zu >>>"Warning: Invalid argument supplied for foreach() in.."
> ..ist der Admin im Backend, so funktioniert es im FE mit dem foreach
> einwandfrei..
>
> Steht $GLOBALS['TCA'] nur instanzierten FE-Extension-Klassen zur
> Verfügung???
>
> Danke für ~jede~ Hilfe. Wie ihr seht, kämpfe ich an dem Ding schon ne
> Woche :)
> Grüße
> Johannes
>
> Johannes Konert schrieb:
>> ...es ist sogar so, dass der ADMIN im BE eingeloggt sein muss, damit
>> das Script FE-Content produziert. Loggt sich ein Redakteur ein, kommt
>> auch nur eine 0 im FE raus....
>> Hat jemand nicht irgendeine Idee, wieso dieses in ein
>> HMENU-eingebundene User-Skript einer Extension nur dann die richtigen
>> Menüeinträge liefert, wenn der Admin eingeloggt ist???
>> Muss man irgendwo explizit Tabellen-Rechte für Skripte im FE-Modus
>> setzten?
>> Danke & Grüße
>> Johannes
>>
>> Johannes Konert schrieb:
>>> Hi Tolleiv,
>>> danke für die Hinweise.
>>> Also wenn ich den FE-Cache lösche, mich aus dem BE auslogge und die
>>> Seite neu lade, wird das entsprechende Skript (via TypoScript im
>>> Template eingebunden) NICHT ausgeführt.
>>>
>>> Wenn ich im BE eingeloggt bleibe und den FE-Cache lösche, dann wird
>>> es bei einem Refresh der FE-Seite ausgeführt.
>>>
>>> Daher denke ich, dass es NICHT mit dem caching zusammenhängt, da auch
>>> ein leerer FE-Cache dazu führt, dass das Skript nicht ausgeführt wird
>>> (wenn man nicht im BE eingeloggt ist).
>>>
>>> Als COA_INT, USER_INT würde die Ausgabe ja garnicht gecached, was ich
>>> nicht will. Es soll halt einmal richtig ausgeführt werden und die
>>> Ausgabe dann gespeichert/gecached werden....doch der erste
>>> Cache-füllende Aufruf bleibt irgendwie aus, wenn man nicht auch im BE
>>> eingeloggt ist. ????
>>> Danke für weitere Tipps.
>>> Grüße
>>> Johannes
>>>
>>> Tolleiv Nietsch schrieb:
>>>> Hallo,
>>>> ob dein Script überhaupt ausgeführt wird kannste ja mit einer
>>>> einfachen Debug-Ausgabe prüfen dann siehst du wann was ausgeführt
>>>> wird -
>>>>
>>>> Wie sieht es aus wenn du den FE-Cache löscht und dann das FE neu
>>>> lädst wird dein Script dann ausgeführt?
>>>>
>>>> Allgemein solltest du dich mal mit COA_INT, USER_INT und dem cHash
>>>> beschäftigen (Docu auf Typo3.org) da findest du vieles zum Thema
>>>> Caching...
>>>>
>>>> Gruß Tolleiv
>>>
>>>
More information about the TYPO3-german
mailing list