[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