Zum Inhalt springen

Extension main wird zweimal aufgerufen

Erstellt am 17. März 2013 · 3 Antworten · letzte Antwort am 22. Februar 2016

Tags: Frage

Thomas27 ·

Hallo, ich habe mir eine fe_plugin Extension mit dem Kickstarter erstellt. Habe aber das Problem, dass zweimal die main Function gecalled wird. Ich verwende Version 4.5.25. Meine erste Vermutung war, dass eventuell in der localconf.php die Extension doppelt eingetragen ist, also habe ich alle Extension Einträge auskommentiert und händich nocheinmal sauber nach installiert, leider tritt das Problem immer noch auf. Es ist ziemlich unschön, da Datenbank Einträge jedesmal doppelt gemacht werden, oder Emails doppelt versendet werden. Bin für jede Idee dankbar!

toifel ·

Durchsuche mal Dein Typoscript, ob dort styles.content.get an verschiedene Marker übergeben wird.
Typo3 ist es in dem Fall egal, ob im HTML-Template auch beide Marker existieren - das Plugin wird immer 2x ausgeführt, auch wenn der Inhalt nur in einem Marker gerendert wird.

Thomas27 ·

Danke für den Hinweis!

Nach langer suche hab ich den Fehler gefunden, ich hatte warum auch immer folgenden Konstrukt im Script:

// eingelogter user template
[usergroup=*]
page.10 = TEMPLATE
page.10  {
  template = FILE
  template.file = fileadmin/...
  workOnSubpart = DOKUMENT
  marks.ROOTLINE < rootline
}
[else]
page.10 = TEMPLATE
page.10  {
  template = FILE
  template.file = fileadmin/...
  workOnSubpart = DOKUMENT
  marks.ROOTLINE < rootline
}
[usergroup]

Wahrscheinlich hatte ich mal etwas mit dem login getestet. Vielleicht hilft es ja jemanden seinen Fehler schneller zu finden!

Fazit, die [Usergroup] Weiche mit dem [else] Zweig brauche ich gar nicht, jetzt wird das Template auch nur noch einmal initialisiert und der doppelte main Aufruf tritt nicht mehr auf.

proandriy ·

Die Antwort von Martin war genau das richtige für mich. Habe im TypoScript an 2 Stellen "styles.content.get" gehabt. Gleiches Verhalten kann auftreten auch wenn man eine Erweiterung zwei mal auf der gleichen Seite hat. z.B. im Inhaltsbereich und in der Seitenleiste 🙂.