TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

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 icon_smile.gif


[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 23.05.2012 um 19:27.]
ProfilWWWICQAIM
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.



ProfilWWWSkype
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 icon_smile.gif
ProfilWWWICQAIM
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 icon_smile.gif
ProfilWWWICQAIM