Content Element in Extension (wirklich) rändern
| Autor | Nachricht |
|---|---|
|
Verfasst am: 23. 05. 2012 [19:24]
|
|
|
MrLight
Themenersteller
Dabei seit: 12.11.2006
Beiträge: 25
|
Hallo Forum, hallo Mitstreiter.. (Ja ich weiss dass das schon zich mal besprochen wurde) Was ich machen möchte: Ein (oder mehrere) Content Elemente Laden, doch bevor diese ausgegeben werden nachbearbeiten, zB, mit einem str_replace, doch das funktioniert nicht. Egal ob ich es mit PHP $content = $this->cObj->RECORDS($tt_content_conf); oder mit: PHP $content = $this->cObj->cObjGetSingle('RECORDS', $conf);beides liefert mir nur so etwas: HTML <!--INT_SCRIPT.1fab6de44e5349f0127d846c53edaa4e-->ganz einfach zu überprüfen mit: PHP $content = str_replace("<!--", "<!-- ", $content);Doch da kann ich nichts machen oder modifizieren. Zwar wird dieser String von typo3 in das gewünschte Content Element ersetzt, doch für mich unerreichbar. Ich suchte schon cObj irgendeine Funktion um dies selber zu rendern, doch ohne erfolg ... Um paar Tips währe ich dankbar .. LG MrLight [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 23.05.2012 um 19:27.] |
|
Verfasst am: 24. 05. 2012 [00:03]
|
|
|
aemka
Dabei seit: 23.07.2009
Beiträge: 339
|
USER_INT Plugins kannst du in php meines Wissens nicht mit cObjGetSingle rendern. Du könntest das aber vlt. auch mit einem Frontend-Core-Hook erreichen, insgesamt hört sich die ganze Idee, so etwas zu tun, aber nach "von hinten durch die Brust" an. |
|
Verfasst am: 24. 05. 2012 [00:28]
|
|
|
MrLight
Themenersteller
Dabei seit: 12.11.2006
Beiträge: 25
|
Irgendwie hast Du recht. Doch ich schreiben eine WhiteLabel Extension, in der man Conten Elemente, JS und CSS Dokumente, wie eich einen Zusatz-String angibt, welcher im htaccess benutzt wird um per rewriteRule die Elemente zum zweiten Server umzubiegen. (Ich weiss, es klingt kompliziert) Zurück zu meinem Problem. (Frontend-Core-Hook) Ich probier gerade die Ausgabe per TS an eine Funktion umzulenken, doch es funktioniert nicht richtig. Irgendwie interpretier ich die gefundenen Infos falsch ... Ich füge TS hinzu: TYPOSCRIPT page = PAGE page.typeNum = 0 includeLibs.irgendwas = typo3conf/ext/nao_white_label_plugin/pi1/class.tx_naowhitelabelplugin_pi1.php page.10 = RECORDS page.10.stdWrap.postUserFunc = tx_naowhitelabelplugin_pi1->prepareRootJokerTS Meine Extension sieht (Ausschnitt wie folgt aus: PHP class tx_naowhitelabelplugin_pi1 extends tslib_pibase {
...
function prepareRootJokerTS ($content, $conf) {
$search = '<!--';
$replace = "<!-- ";
$newBody = str_replace($search, $replace, $content);
return $newBody;
}
...
}Doch irgendwie wird die Seite nicht durch die Funktion geschleust. LG MrLight |
|
Verfasst am: 25. 05. 2012 [14:42]
|
|
|
MrLight
Themenersteller
Dabei seit: 12.11.2006
Beiträge: 25
|
Korrektur: im TS:Setup: TYPOSCRIPT tt_content.stdWrap.postUserFunc = tx_naowhitelabelplugin_pi1->prepareRootJokerTS wobei tx_naowhitelabelplugin_pi1 mein Plugin ist, und prepareRootJokerTS die auszuführende Funktion ist. und die Funktion: PHP function prepareRootJokerTS ($content, $conf) {
$search = array('<!--');
$replace = array('<!--x');
$newBody = str_replace($search, $replace, $content);
return $newBody;
}so funktioniert zwar der Zugriff, aber das Problem bleibt das Selbe, der Content ist in diesem Moment noch nicht gerendert. Also bleibt mir anscheinend nur noch der Weg über das Hook. Was verstehst Du unter: "Frontend-Core-Hook"? Ich habe ein wenig gesucht und gelesen, und fand nur Hooks: callUserFunction und getUserObj Welches meinst Du nun? Ich komm auch nich mit den gefundenen Anleitungen nich ganz klar, wo ich was ändern soll. Sagen wir mal, ich habe zwei eigene Plugins: tx_plugin1_p1: Die Extension die "Ge-hookt" werden soll (d.h.: dessen Ausgabe soll nachbearbeitet werden) und tx_plugin2_p1: Die Extension die den Hook durchführt (d.h. diese bekommt den gerenderten Content von tx_plugin1_p1, und verändert diesen bevor er ausgegeben wird.. Hast Du ein Beispiel, wo ich nachlesen kann? L.G. Mr Light |



