Zum Inhalt springen

überfluessige von Typo3 generierte HTML Elemente im Quelletext entfernen

Erstellt am 28. Dezember 2006 · 16 Antworten · letzte Antwort am 18. September 2007

Tags: JavaScript & AJAX, Frage

steffenk ·

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.

smoo ·

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?

🙂

jenses ·

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ß.

steffenk ·

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.

jenses ·

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.

steffenk ·

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 ·
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 😉

smoo ·

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!

jenses ·

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.

steffenk ·

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.

dooz ·

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

dooz ·

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. :-)

nicki4lu ·

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