Hallo zusammen,
ich steh vor einem Rätsel: ich habe eine debug-Ausgabe in der init-Funktion meiner Extension gepackt und bekomme den Wert 2x ausgegeben.
Wird die Extension 2x geladen?
Ich kam auf das Problem, da ich ein Redirect auf eine Seite mache, eine Fehlermeldung in der Session speichere und diese später ausgebe - dummerweise ist die Meldung leer (da ich nach der Ausgabe auch die Variable aus der Session lösche) - eigentlich logisch, wenn die init() 2x aufgerufen wird...
Hat jemand schon mal ähnliche Probleme gehabt...?
Gruß,
Manu
Bindest Du die extension 2 mal auf der Seite ein, beides mal in versch. modis wie listview und detailview oder ähnliches?
wie schaut das debug aus? t3lib_div::debug($var)?
Gruß!
Hallo & danke für Deine Antwort,
t3lib_div::debug gibt mir jegliche Variablen 2x aus...
Meine Extension ist mit Flexforms ausgestettet, so dass ich im BE die Position bestimmen kann, um dann in der pi1-Klasse per switch zu entscheiden, was ausgegeben werden soll.
Seitenstruktur:
Startseite (MainTemplate)
Unterseite
Unterseite
Extensionseite (Ext. Template)
Unterseite Extension etc.
Zuerst hatte ich ein Problem mit meinem Ext.-Template, ich hatte unter Basis-Template einschließen mein Maintamplate eingeschlossen, was dann auch zweimal eingebunden wurde. Jetzt sollte es aber passen, der Template Analyzer zeigt jedenfalls zuerst das Maintemplate, darunter das Ext-Template.
Hier mußte ich etwas tricksen, um in meiner Extension vom zweispalten-Layout wegzukommen und nicht den kompletten TS in mein Ext-Template zu kopieren: im HTML-Template habe ich einen neuen subpart angelegt, der das zweispalten-Layout umschließt, um es mit der neuen Extension zu überschreiben.
HTML:
<!-- ###CONTENT_PROFILE### -->
<div id="sidebar">
<!-- ###MINI_CART### -->
<!-- ###MINI_CART### -->
<!--###RIGHTNAVI###-->
<!--###RIGHTNAVI###-->
</div>
<div id="left_column">
###BACK_LINK###
###TITLE###
<!--###CONTENT###-->
<!--###CONTENT###-->
</div>
<!-- ###CONTENT_PROFILE### -->
Maintemplate:
temp.content = COA
temp.content.10 = TEXT
temp.content.10 {
text = GROSS
if.value.numRows {
table = tt_content
select {
pidInList = this
}
}
if.isGreaterThan = 10
}
temp.content.15 = COA
temp.content.15 {
stdWrap.preCObject = LOAD_REGISTER
stdWrap.preCObject {
Counter.cObject = TEXT
Counter.cObject.data = register:Counter
Counter.cObject.wrap = |+1
Counter.prioriCalc = intval
}
}
temp.content.20 < styles.content.get
tt_content.stdWrap.wrap = <div class="box"><div class="box_padding">|</div></div>
temp.rightContent < styles.content.getRight
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
template = FILE
template.file = fileadmin/templates/main.tpl.html
workOnSubpart = DOCUMENT
subparts.LOGINLINK < temp.loginlogout
subparts.LOGINAREA < temp.loginarea
marks.TITLE < temp.pagetitle
marks.BACK_LINK < temp.backlink
subparts.NAVIGATION < plugin.tx_extmainmenu_pi1
subparts.CONTENT < temp.content
subparts.MINI_CART < temp.minicart
subparts.RIGHTNAVI < plugin.tx_extnavigation_pi1
}
page = PAGE
...
page.10 < temp.mainTemplate
Extension-Template:
temp.profile = COA
temp.profile.10 < temp.myMenu
temp.profile.20 < temp.content.20
tt_content.stdWrap.wrap = |
temp.mainTemplate.subparts.CONTENT_PROFILE < temp.profile
page.10 < temp.mainTemplate
(myMenu habe ich der Übersichtlichkeit wegen weggelassen.)
Könnte ich durch diese Struktur das Problem hervorrufen?
Gruß,
Manu
DHabs herausgefunden.
Anscheinend wird mit dem Aufruf
temp.profile.20 < temp.content.20
die Extension zum zweiten Mal afgerufen. Ich hatte erwartet, dass temp.content.20 eine Referenz ist, scheint aber nicht so zu sein.