[TYPO3-german] RTE und der <p>-Tag.

Stefano Kowalke blueduck at gmx.net
Tue Jul 22 18:52:56 CEST 2008


Habe mich heute den ganzen Tag damit beschäftigt und nun macht der RTE keine
<p>-Tags mehr um <span>-Tag im Frontend.

Was ich allerdings noch nicht mit TypoScript hinbekommen habe, ist die
Transformation von der Datenbank zum RTE.

Hier wird auf dem Weg von der DB zum RTE um jedes <span> ein <p> gewrappt
und um jeden Text, in einem <div>-Paar ebenfalls.

So sieht der Eintrag in der DB und im FE aus:
<div class="vcard">
    <h3 id="max_mustermann" class="title">1.Vorstand</h3>
    <span class="fn">Max Mustermann</span>
    <div class="adr">
        <div class="street-address">Dorfstr. 1</div> 
        <div class="country-name">Deutschland</div>
    </div>
</div>

und so im RTE

<div class="vcard">
    <h3 id="max_mustermann" class="title">1.Vorstand</h3>
    <p><span class="fn">Max Mustermann</span><p>
    <div class="adr">
        <div class="street-address"><p>Dorfstr. 1<p></div> 
        <div class="country-name"><p>Deutschland<p></div>
    </div>
</div>


Das sind die Einstellung im TSConfig:

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines {
    // die Klasse 'bodytext' in P-Tags entfernen
  addAttributes.P.class =
  addAttributes.P.class.setOnly = 
    // den P-Tag, der im FE immer um alles geschrieben wird, entfernen 
  nonWrappedTag >
    // SPAN wird P, DIV,... gleichgestellt und gilt somit als umschließendes
Tag
  encapsTagList := addToList(span)
    // DIV wird nicht mehr durch P ersetzt
  remapTag.DIV =
    // steuert die Ausgabe im FE - es werden alle umgebenden Tags gelöscht
  removeWrapping = 0
    
  wrapNonWrappedLines = | 
}

Und hier sind die Einstellungen im PageTS der Rootseite

###
# Inhalt DB -> RTE
# Zusätzliche Einstellungen, die nur bei der Transformation von der
Datenbank zum RTE greifen
#
HTMLparser_rte {
    // Kopiert die erlaubten/verbotenen HTML-Tags
  allowTags < RTE.default.proc.allowTags
  denyTags < RTE.default.proc.denyTags

    // Diese HTML-Tags sind außerhalb von p und div erlaubt
  allowTagsOutside = img, hr, span, a
      
  // HTML-Tags, die entfernt werden sollen
  removeTags <  RTE.default.removeTags

  // HTML-Kommentare sollen entfernt werden
  removeComments = 1

  keepNonMatchedTags = protect
      
}

Nun, das hat nicht den erhofften Effekt erbracht.

Dann habe ich in der TYPO3 Core API unter Transformations den folgenden
Absatz gefunden:

1. Sections by the tags TABLE,PRE,UL,OL,H1,H2,H3,H4,H5,H6 are not processed
and thus just passed on to the RTE.

...Snip...

5. All content outside the tags already mentioned are now processed as
follows:

5.1 Every line is wrapped in <P>-tags (configurable to DIV), if a line is
empty a &nbsp; is set and if the line happens to be wrapped in DIV/P-tags
already, it's not wrapped again (this might be the case if align or class
parameters has been set).


Dies wird in der Klasse /t3lib/class.t3lib_parsehtml_proc von der Funktion
TS_transform_rte gemacht.

Dort wird eine Liste definiert, für die Tags, die als Blockelemente
angesehen werden (PRE,UL,OL,H1,H2,H3,H4,H5,H6,HR,ADDRESS,DL,DD).

Füge ich dort das SPAN hinzu, wird das <span> nicht mehr von einem <p>-Tag
umschlossen.

So, nach der langen Erklärung, kommt nun meine Frage ;-)

Muß ich dafür extra den Code anpassen, oder geht das irgendwie mit TS?

Liebe Grüsse
Stefano 
-- 
Seit dem 1.1.2008 werden Daten zu jeder E-Mail verdachtsunabhängig gespeichert! 
Weitere Informationen: www.vorratsdatenspeicherung.de
GPG-ID: 0x2B08936D
Key-Fingerprint: 7F31 BCF0 70C0 B3B1 1235 07E9 1777 D7A0 2B08 936D


More information about the TYPO3-german mailing list