Zum Inhalt springen

Das leidige <p>-Thema

Erstellt am 5. Juli 2006 · 8 Antworten · letzte Antwort am 14. Juli 2006

Tags: Frage

diede ·

Hallo zusammen,

häufig diskutiert wurde, wie man die Generierung des <p>-Tags, das im RTE eingegeben wurde, im Frontend weg bekommt. Ich habe das Problem, dass die einfachen <p>-Tags im Frontend nicht erscheinen!? Leider würde ich gerne das, was der RTE darstellt, auch im Frontend wiederfinden.

Meine TSCOnfig:

RTE.classes {
        leftalign {
                name = leftalign
                value = text-align: left;
        }
        centeralign {
                name = leftalign
                value = text-align: center;
        }
        rightalign {
                name = leftalign
                value = text-align: right;
        }
}

RTE.default {
        # assign CSS-file
        contentCSS = fileadmin/templates/css.css
        showTagFreeClasses = 1

        ## Markup options
        enableWordClean = 1
        removeTrailingBR = 1
        removeComments = 1
        removeTags = center, sdfield
        removeTagsAndContents = style,script

        # which buttons to show/hide
        showButtons (
           class, blockstylelabel, blockstyle, textstylelabel, textstyle,
           formatblock, bold, italic, underline, subscript, superscript,
           left, center, right, outdent, indent, textindicator, orderedlist, unorderedlist,
           insertcharacter, link, findreplace, chMode, removeformat, undo, redo, about,
           chMode, line, removeformat, showhelp, copy, cut, paste
        )

        hideButtons (
           image, toggleborders, table, tableproperties,
           rowproperties, rowinsertabove, rowinsertunder, rowdelete, rowsplit,
           columninsertbefore, columninsertafter, columndelete, columnsplit,
           cellproperties, cellinsertbefore, cellinsertafter, celldelete, cellsplit, cellmerge
           
        )
        
        keepButtonGroupTogether = 1
        ## Use stylesheet file rather than the above mainStyleOverride and inlineStyle properties to style the contents (htmlArea RTE only)
        ignoreMainStyleOverride = 1

        hidePStyleItems=pre, address, h5, h6

        ## Add styles Left, center and right alignment of text in paragraphs and cells.
        inlineStyle.text-alignment (
                p.leftalign, h1.leftalign, h2.leftalign, h3.leftalign, h4.leftalign
                p.rightalign, h1.rightalign, h2.rightalign, h3.rightalign, h4.rightalign
        )
        
        # Classes: Ausrichtung
        classesParagraph (
                leftalign, rightalign
        )

        classesImage (
            leftalign, rightalign
        )

        classesAnchor (
            leftalign, rightalign
        )

        classesCharacter (
           leftalign, rightalign
        )

        allowedClasses = leftalign, rightalign

        proc {
          # List all class selectors that are allowed on the way to the database
          allowedClasses < RTE.default.allowedClasses    
          
          allowTags (
             div,img,hr,b,i,u,a,br,pre,strong,em,li,ul,ol,h1,h2,h3,h4,span,p,b,th
          )

          dontConvBRtoParagraph=1
#          remapParagraphTag = p

          # Content to database
          entryHTMLparser_db {
              # tags die erlaubt/verboten sind
              allowTags < RTE.default.proc.allowTags
              denyTags < RTE.default.proc.denyTags

              # CLEAN TAGS
              noAttrib = b, i, u, strike, sub, sup, strong, em, quote, blockquote, cite, tt, br, center

              rmTagIfNoAttrib = 
                  #span,div,font

              # htmlSpecialChars = 1
         
              ## align attributes are allowed
              tags {
                  #p.fixAttrib.align.unset >
                  #p.allowedAttribs = class,style,align
                  #p.fixAttrib.align.unset = 1

                  div.fixAttrib.align.unset >

                  hr.allowedAttribs = class

                  # replace b and i by strong and em
                  b.remap = strong
                  i.remap = em

                  ## img tags are allowed
                  img {
                     allowedAttribs = alt,class,style,src,title
                     rmTagIfNoAttrib = 1
                  }
              } ## tags
          } ## entryHTMLparser_db
       } ## proc

} ## RTE.default

Leider möchte ich keine Workarounds einsetzen, so wie SHIFT+ENTER, um <br /> Tags zu erzeugen (das soll er sowieso können). Scheinbar fehlt was in der TSConfig oder es ist zuviel...

Für jeden Tipp wäre ich Euch dankbar.

Gruß,

diede

tobias-digital ·

Habe das gleiche Problem. Im RTE eingegebene <p>-Tags erscheinen nicht Frontend. <h3>-Tags erscheinen z. B. ganz normal. Außerdem werden Hyperlinks im Frontend als <link>-Tags ausgegeben. In der Quelltext-Ansicht des RTEs erscheinen alle Tags wie gewünscht.

Grüße, Tobias

polarizer ·

Auszug aus dem Const-Bereich des Templates

###############################
########## Constants ##########
###############################


# cat=advanced/enable; type=boolean; label=Render content RTE compliant?: When this is set, the content will be rendered with each line wrapped in <p>-tags regardless of using stylesheets or not. This is necessary in order to make the content compliant with the Rich Text Editors align-ment functions.
content.RTE_compliant = 1
diede ·

Hallo zusammen,

>> content.RTE_compliant = 1 << hat leider nichts verändert. Die Inhalte werden nach wie vor ohne <p>-Tags in die Datenbank hineingeschrieben.

Ich habe darüber hinaus in TS-Setup folgendes geschrieben:

# ------------------------
## RTE
# ------------------------
nonTypoTagStdWrap.encapsLines.nonWrappedTag >
nonTypoTagStdWrap.encapsLines.wrapNonWrappedLines = | <br />
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class >
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.nonWrappedTag = p
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.encapsTagList = p,div,h1,h2,h3,h4
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.innerStdWrap_all.ifEmpty =

... aber dennoch...

Ich habe die TSConfig der Root-Seite komplett entfernt... die <p>-Tags werden immer noch entfernt. Ideen? Danke für jeden Tipp!

Grüße,
diede

Nachtrag: ich verwende TV 1.0.1...
Der Inhalt "normaler" Content-Elemente mit RTE wird ohne <p>-Tags in die DB geschrieben und mit <p>-Tags herausgeneriert. Verwende ich FCEs mit Feldern, die per RTE bearbeitet werden, werden in die DB auch keine <p>-Tags geschrieben (Feld: tx_templavoila_flex). Nur beim Auslesen werden die <p>-Tags nun encoded, so dass sie als <p> im Quelltext stehen. Zudem wird ein(!) <p>-Tag um die komplette Ausgabe gesetzt, also:

<p>& lt;p >Lorem ipsum& lt;/p& gt;
& lt;p& gt;Lorem ipsum& lt;/p& gt;
& lt;p& gt;Lorem ipsum& lt;/p& gt;</p>

Nachtrag#2 (Lösung!!!!):
Ich habe intensiver mal im Forum "TemplaVoila" gesucht, weil ich vermutete, dass dieses Problem mit der Konfiguration der Elemente einhergeht.... siehe da... in den Data Structures muss(!) man händisch den Eintrag der Standardeinstellung für ein RTE-Feld von

   <proc type="array">
      <hsc type="integer">1</hsc>
   </proc>

auf

   <proc type="array">
      <hsc type="integer">0</hsc>
   </proc>

einstellen.

Damit wird das RTE-Feld des FCE genauso behandelt, wie in einem "typischen" Inhaltselement.

Die Ausgabe im Frontend ist nun korrekt. Die Frage bleibt nur: warum ist diese Einstellung (HSC=1) standard?

Vielleicht hilft es jemandem weiter....

Danke für's Lesen!

Grüße,
diede

polarizer schrieb

Auszug aus dem Const-Bereich des Templates

###############################
########## Constants ##########
###############################


# cat=advanced/enable; type=boolean; label=Render content RTE compliant?: When this is set, the content will be rendered with each line wrapped in <p>-tags regardless of using stylesheets or not. This is necessary in order to make the content compliant with the Rich Text Editors align-ment functions.
content.RTE_compliant = 1

[/b]

Typo3_4.​0_User ·

Das selbe Problem hab ich auch!
Oft gehen die Formatierungen einfach weg.

Wie löse ich das Prob?
Muss mich z.zt. ohne Handbuch und Einweisung in Typo 3 V4 einarbeiten.

... Noch zusätzlich zum Tagesgeschäft

diede ·

Hallo Typo3_4.0_User,

wenn Du also mit Templavoila arbeitest, musst Du in den Datenstrukturen (DS) Deiner Flexible Content Elements (FCE) die Änderungen (s.o.) einpflegen.
Dazu
1. "Web->Templavoila" anwählen
2. "Reiter FCE" wählen
3. FCE identifizieren und ersten Bleistift wählen, so dass die XML-Ansicht der DS gezeigt wird.
4. im XML das Feld identifizieren, dessen Inhalt mit einem RTE editiert werden soll
5. Suchen nach

 <proc type="array">
   <hsc type="integer">1</hsc>
 </proc>

6. Ersetzen durch

 <proc type="array">
   <hsc type="integer">0</hsc>
 </proc>

7. Änderungen speichern

Die Ausgabe sollte nun i.O. sein.

Siehe bitte auch
http://wiki.typo3.org/index.php/TemplaVoila#Enabling_RTE_in_FCEs

Ich hoffe, Dir hilft das weiter.

Grüße,
diede

Typo3_4.0_User schrieb

Das selbe Problem hab ich auch!
Oft gehen die Formatierungen einfach weg.

Wie löse ich das Prob?
Muss mich z.zt. ohne Handbuch und Einweisung in Typo 3 V4 einarbeiten.

... Noch zusätzlich zum Tagesgeschäft

diede ·

Hallo !

Programmieren würde ich das nicht nennen!!! 😉

Du musst - um das Problem zu beheben - die XML-Datei des FCE verändern; TypoScript verwendest Du sicherlich auch. Sicherlich bist Du bei der Verwendung von TemplaVoila über die XML-Dateien gestolpert. Ich weiss, dass das haarig ist, aber scheinbar ist dies die einzige Möglichkeit, den RTE in FCE-Elementen verwenden zu können.

Grüße,
diede

Typo3_4.0_User schrieb

Ich arbeite mit Typo3 V4.
Von Programmieren hab ich null Plan.

helge ·

Moin,

ich verwende zwar auch TemplaVoila, aber keine FCEs. Trotzdem zeigen auch bei mir die RTE's das "leidige <p>-Problem", das ich gerne los waere.

Ich muss zugeben, dass ich die Lösung, die hier angegeben wurde, nur ansatzweise verstehe. Da ich keine FCEs verwende, kann ich sie so nicht anwenden, und in den Page Templates findet sich das Tag <proc type="array"> nicht.

Kann mir jemand dabei helfen, die Lösung anzupassen?

Danke

Helge