Hallo,
ich habe folgendes Problem, und zwar moechte ich die Ausgabe eines bestimmten Plugins als 'response Text' fuer ein AJAX-Script nutzen, damit das ganze von Typo3 generiert HTML-Geruest nicht mitgeschickt wird habe ich die config variablen des Templates wie folgt gesetzt :
page.config.disableAllHeaderCode = 1
page.config.disablePrefixComment = 1
damit ist schonmal ein Teil der ganzen ungewollten Sachen weg, nur eines bekomme ich einfach nicht verborgen und zwar taucht bei mir immernoch folgendes im Quelltext auf :
<!--
BEGIN: Content of extension "user_plcommunity", plugin "user_plcommunity_pi11"
-->
<div class="user-plcommunity-pi11">
HIER DER GEWOLLTE INHALT
</div>
<!-- END: Content of extension "user_plcommunity", plugin "user_plcommunity_pi11" -->
Wie bekomem ich nun diese Ausgabe unterdrueckt?
Danke fuer jede Hilfe.
Willkommen im Forum,
Ich mag mich täuschen, aber Du suchst eventuell zu weit. Sollte glaube ich
config.disablePrefixComment = 1
lauten. Wie möchtest Du Ajax genau nutzen? Gibt unter typo3.org vielleicht schon Extensions dafür. Bevor Du das Frontend Stück für Stück abstrahierst, hilft eventuell ein XML-Output des Frontends für dein Vorhaben weiter.
grüsse
Hallo,
also ich brauch um meinen AJAX output generieren zu koennen unbedingt das typo3-Framework (Klassen Methoden usw) deshalb muss das Plugin was den AJAX Output erzeugen soll nur das ausgeben was ich benoetige , ich habe schon einige Funktionen (JS) geschrieben die den AJAX responseTEXT wunderbar auswerten und wuerde nur ungern auf diese verzichten.
Ich habe es gerade mit deienr Variante versucht, leider ohne sichtbaren unterschied 🙁
Grueße aus Franken!
die Zeile von toyde ist korrekt und entfernt die Kommentare - lösch mal cache und schau im Object Browser, ob die Einstellung bei der entsprechenden Seite auch gilt.
Hallo,
also laut Object Browser ist die Einstellung gesetzt, sie bewirkt ja auch was :
ein Bsp. ohne config.disablePrefixComment = 1 :
<!-- CONTENT ELEMENT, uid:133/list [begin] -->
<!-- Plugin inserted: [begin] -->
<!--
BEGIN: Content of extension "user_pluser", plugin "user_pluser_pi3"
-->
<div class="user-pluser-pi3">
</div>
<!-- END: Content of extension "user_pluser", plugin "user_pluser_pi3" -->
<!-- Plugin inserted: [end] -->
<!-- CONTENT ELEMENT, uid:133/list [end] -->
und ein Bsp. mit config.disablePrefixComment = 1 an der gleichen Stelle im Quelltext :
<!--
BEGIN: Content of extension "user_pluser", plugin "user_pluser_pi3"
-->
<div class="user-pluser-pi3">
</div>
<!-- END: Content of extension "user_pluser", plugin "user_pluser_pi3" -->
man sieht es sind weniger Kommentare ,aber die die ich weg haben moechte sind trotzdem da?
🙂
versuchs mal mit
tt_content.stdWrap.dataWrap =
Du mußt in der Extension
return $this->pi_wrapInBaseClass($content);
durch
return $content;
ersetzen,
weder
config.disablePrefixComment = 1
noch
tt_content.stdWrap.dataWrap =
haben darauf Einfluß.
das ist nicht korrekt, da dies in Abhängigkeit von 'disablePrefixComment' gesetzt wird:
if(!$GLOBALS['TSFE']->config['config']['disablePrefixComment']) {
$content = '
<!--
BEGIN: Content of extension "'.$this->extKey.'", plugin "'.$this->prefixId.'"
-->
'.$content.'
<!-- END: Content of extension "'.$this->extKey.'", plugin "'.$this->prefixId.'" -->
';
}
Also reicht es aus
config.disablePrefixComment=1
zu setzen.
Ich bin mir nicht sicher ob ein Unterschied zwischen config und page.config was ausmacht.
Lieber steffenk,
um die Ausgabe des DIV-tags um die PlugIn-Ausgabe zu unterbinden,
reicht "disablePrefixComment" eben nicht aus.
Lies bitte nochmal genau nach,
um was es in diesem thread geht.
Lieber jenses,
genau das reicht aus. Der obige Ausschnitt stammt aus der Funktion pi_wrapInBaseClass und zeigt, das dort der Wert 'disablePrefixComment' abgefragt wird und der Kommentar nur gesetzt wird, wenn dieser Wert nicht gesetzt ist.
Ich habe genau gelesen worum es geht 😉
jenses schrieb
... um die Ausgabe des DIV-tags um die PlugIn-Ausgabe zu unterbinden ...
der gute Mann will nur seinen Plugin-Inhalt ausgeben (als Plaintext, ohne div außendrum)
und nun schau nochmal in pi_wrapInBaseClass 😉
Hallo,
obwohl mir das Bsp. von steffenk auch einleutet scheint es trotdem allein mit
config.disablePrefixComment=1
nicht zu funktionieren was es hingegen mit dem Beispiel von jensen tatsaechlich tut!
Ich habe mir jetzt die Klasse pi_wrapInBaseClass nicht nochmal angeschaut aber
1.
if(!$GLOBALS['TSFE']->config['config']['disablePrefixComment']) {
2.
$content = '
3.
4.
5.
<!--
6.
7.
BEGIN: Content of extension "'.$this->extKey.'", plugin "'.$this->prefixId.'"
8.
9.
-->
10.
'.$content.'
11.
<!-- END: Content of extension "'.$this->extKey.'", plugin "'.$this->prefixId.'" -->
12.
13.
';
14.
}
dieser Auszug muesste doch eigtl. wirklich die Ausgabe des ungewuenschten Codes bei
config.disablePrefixComment=1
verhindern?!?
Totzdem schonmal
Danke Danke!
Vor dem if-Part steht noch :
$content = '<div class="'.str_replace('_','-',$this->prefixId).'">
'.$str.'
</div>
';
Dieser Code wird ausgeführt, wenn config.disablePrefixComment=0 ist.
ich glaub, wir verstehen uns falsch.
Um das div zu verhindern, muss man die wrapInBaseClass weglassen.
Um sie zu benutzen, aber den Kommentar auszuschalten, muss man
config.disablePrefixComment=1
nutzen.
Wenn Du das hast und die Kommentare erscheinen trotzdem, dann greift die Anweisung nicht, ich vermute, das Du das hast mit
page.config.disablePrefixComment=1
Lass das page mal weg und schaus Dir nach Cache löschen nochmal an.
Hab auch dieses Problem.
mit config.disablePrefixComment=1 bekommt man das definitiv nicht hin.
Ich hab versucht, dafür eine Extension zu schreiben, die die Function pi_wrapInBaseClass in tslib überschreibt, aber da sind keine Hooks oder XCLASS um das zu realisieren.
Weiß jemand vielleicht, wie man die Funktion überschreiben kann?
Gruß Daniel
Die Funktion sollte so aussehen:
function pi_wrapInBaseClass($str) {
$content = $str;
if(!$GLOBALS['TSFE']->config['config']['removePluginDivs']) {
$content = '<div class="'.str_replace('_','-',$this->prefixId).'">'.$str.'</div>';
}
if(!$GLOBALS['TSFE']->config['config']['disablePrefixComment']) {
$content = '
<!-- BEGIN: Content of extension "'.$this->extKey.'", plugin "'.$this->prefixId.'" -->
'.$content.'
<!-- END: Content of extension "'.$this->extKey.'", plugin "'.$this->prefixId.'" -->
';
}
return $content;
}
Aber ich will ja net im Source rumfummeln, sondern das sauber über ne Extension einbinden. :-)
Hallo,
habe den Thread vor kurzem gefunden und dafür eine Extension geschrieben, die jetzt im TER verfügbar ist: Better pibase (better_pibase).
Dies überwacht die Datei class.tslib_pibase.php und ersetzt, sobald diese geändert wurde (beispielsweise durch update) diese Funktion wieder (und nur diese).
Viel Spaß damit und lasst etwas von euch hören.
Nicole