Hallo Thomas,
danke für den follow up. Aber da sieht es ja auch nicht besser aus als hier.
Am 21.08.2012 13:33, schrieb Thomas Deuling:
Hi Florian,
ich bin Thomas - habe beim posten nicht weiter über meine Identität nach
gedacht.
Ich finde es einfach angenehmer mit RN.
Also, hier schon mal der Link zu meinem anderen Posting:
http://www.typo3forum.net/forum/extbase/56963-reihenfolge-verwendeten-extensions-beeinflussen.html
Leider gibt es dort noch nichts neues.
Habe ich nun auch gesehen schade das von dort auch nichts kam.
Ich versuche Deine antworten auch mal zwischen den Zeile zu schreiben:
Das hat ja wunderbar geklappt. Ich kürze jetzt einfach mal ein wenig
Am 21. August 2012 13:10 schrieb FIorian Zimmermann <fzim...@mailinator.com>
:
Ich versuche mal gerade die Umgebung zu beschreiben.
Also, ich habe mehrere Extbase-Extensions:
1. Eine Basis-Extension die immer wiederkehrende Funktionalitäten
bereitstellt. Diese Extension ist einfach da, und stellt Klassen
(ViewHelper, Services, etc.) bereit.
2. Eine Client-Extension die spezielle Plugins für den Kundenauftritt
beinhaltet (bspw. eine rudimentäre Warenkorbfunktion und eine spezielle
Umfrage). Diese werden einfach auf verschiedenen Seiten als
ContentElemente/Plugins eingebunden.
3. Eine Flash-Message Extension, die lediglich dafür da ist Meldungen
aus dem FlashMessanger auszugeben. Diese wird über TypoScript
eingebunden, damit diese auf allen Seiten verfügbar ist und ich sie
nicht überall per Hand einsetzen muss:
Die Extension enhält lediglich einen leeren Controller/Action und dann das
folgende Template:
<div class="tx-coding-ms-base-flashMessages flashMessages">
<f:flashMessages></f:flashMessages>
</div>
<div class="tx-coding-ms-base-formErrors formErrors">
<f:render partial="FormErrors"></f:render>
</div>
Hier das Partial:
{namespace flmsg = Tx_CodingMsFlmsg_ViewHelpers}
<f:form.errors>
<div class="errors">
<f:if condition="{error.propertyName}">
<f:for each="{error.errors}" as="errorDetail">
<span>
<flmsg:ErrorMessageTranslator
errorNo="{errorDetail.code}"
errorMessage="{errorDetail.message}"></flmsg:ErrorMessageTranslator>
</span>
<br />
</f:for>
</f:if>
</div>
</f:form.errors>
Dann wird das ganze ja mit dem folgenden TS geladen:
Code:
lib.flashMessage = USER
lib.flashMessage {
userFunc = tx_extbase_core_bootstrap->run
pluginName = Flashmessage
pluginKey = tx_codingmsflmsg
extensionName = CodingMsFlmsg
controller = FlashMessage
action = display
settings =< plugin.tx_codingmsflmsg.**settings
persistence =< plugin.tx_codingmsflmsg.**persistence
view =< plugin.tx_codingmsflmsg.view
}
Hier wäre anstatt lib.flashMessage = USER
einfach
lib.flashMessage = USER_INT
zu schreiben und schon ist das Caching von der Typoscript Seite aus
deaktiviert. Was Du noch in der Extension abschalten muss weiß ich
gerade nicht. Dafür habe ich noch zuwenig mit fluid + extbase gemacht.
In den "alten" pi1 Konstrukten war es noch
die variablen
$pi_checkCHash = false
und
$this->pi_USER_INT_obj=1;
zu setzen.
Ich kann mir momentan nicht vorstellen das es daran liegt, da es ja in
den Extension die vorher geschrieben worden sind ja alles klappt.
Und dann in meinem Layout platziert/ausgegeben:
<div id="flashMessage">
<f:cObject typoscriptObjectPath="lib.flashMessage" />
</div>
Das Problem ist nun, das anscheinend nicht immer die Reihenfolge der
Extensions stimmt. Bei dem Warenkorb-Plugin funktioniert alles richtig:
0-> Seitenaufruf -> Warenkorb-Logik -> Warenkorb-Messages ->
Flash-Message Ausgabe -> Seite wird angezeigt
Bei der Umfrage ist nun das Problem das die Flash-Messages immer einen
Seitenaufruf später angezeigt werden:
0-> Seitenaufruf -> Flash-Message Ausgabe -> Warenkorb-Logik ->
Warenkorb-Messages -> Seite wird angezeigt
Meine Frage nun: Wie kann ich die Reihenfolge der Ausführung der
Extensions beeinflussen!?
In der localconf.php unter $TYPO3_CONF_VARS['EXT']['**extList'] wird ja
nur die include-Reihenfolge angegeben (wenn ich das richtig sehe), die
auch so stimmen sollte.
Sollte die Reihenfolge stimmen oder stimmt Sie wirklich wie Du sie haben
möchtest?
Die Client-Extension enthält ja mehrere Plugins, und da dieses
Fehlverhalten nur bei den zuletzt erstellten auftritt, muss diese Reihen
folge in der extList ja stimmen.
Daran könnte es aber liegen. Hast Du die extension keys in der List
einfach mal umgeordnet oder wenn du es dich nicht traust die Keys von
hand zu ändern.
Dann über den Extension Manager die flash Extension deinstallieren und
wieder installieren.
Hast du probiert das Element als USER_INT laufen zulassen?
Nein, habe ich noch nicht. Wie mache ich denn soetwas? Hast Du vielleicht
ein Snippet?
Siehe jetzt oben
Die Extension die ich via TypoScript einbinde muss immer als letztes
ausgeführt werden.
Da könnte das Problem drin liegen. Da TypoScript Code, der im TYPO3 cms
Template steht, immer vor den Extension geladen und ausgeführt wird.
Wie gesagt, bei mehr als der hälfte der Client-Extension Plugins
funktioniert es ja, nur bei den zuletzt erstellten nicht. Als Hinweis noch,
es könnte sein das all die Plugins funktionieren die ich schon integriert
hatte zu dem Zeitpunkt wo ich die FlashMessages das erste mal über TS
eingebunden habe. Danach habe ich weiter entwickelt und die neueren haben
anscheinend diesen Fehler.
Lädst Du den den TS Code der anderen Extension vor oder nach dem TS Code
der FlashMessage Extension? Daran könntest Du auch nochmals drehen.
Freue mich über jeden Tipp! :)
Vielen Dank für Deine Hilfe,
Hoffe wir kommen weiter
Bis dann
Florian
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german