Zum Inhalt springen

Leere <p> werden entfernt

Erstellt am 16. Juni 2006 · 4 Antworten · letzte Antwort am 19. Juli 2006

Tags: Frage

bh_shiva ·

Hallo,

folgendes Problem, wenn ich im RTE (1.3.7) einen Absatz mache und diesem keinen Inhalt gebe, weil der Absatz nur als Abstandshalter dient, dann wird dieser im Frontend nicht angezeigt. Der RTE allerdings speichert es korrekt. Konkret: sobald da nur <p></p> steht, kommt das auf der Homepage net an, steht aber so trotzdem im RTE drin.

Habe schon verschiedenes versucht und bin mir sicher, dass es an der TSConfig liegt. Kopiere ich eine andere rein, funktioniert es wieder. Hab mir daraufhin mal die verschiedenen Konfigs mit meiner verglichen, aber komme nicht drauf, wo bei mir da der Fehler liegt.

Poste hier einmal meine Config:

#*** RTE Classe des Interface (Ausrichtung)
RTE.classes {
        align-left {
                name = LLL:EXT:rtehtmlarea/htmlarea/locallang_tooltips.xml:justifyleft
                value = text-align: left;
        }
        align-center {
                name = LLL:EXT:rtehtmlarea/htmlarea/locallang_tooltips.xml:justifycenter
                value = text-align: center;
        }
        align-right {
                name = LLL:EXT:rtehtmlarea/htmlarea/locallang_tooltips.xml:justifyright
                value = text-align: right;
        }
}

#
# *** Entfernt das Bild vor den Links
RTE.classesAnchor {
        internalLink {
                class = internal-link
                type = page
                image >
        }
        externalLink {
                class = external-link
                type = url
                image >
        }
        externalLinkInNewWindow {
                class = external-link-new-window
                type = url
                image >
        }
        internalLinkInNewWindow {
                class = internal-link-new-window
                type = page
                image >
        }
        download {
                class = download
                type = file
                image >
        }
        mail {
                class = mail
                type = mail
                image >
        }
}


## RTE Konfiguration
RTE.default {

        # Zuweisung der CSS-Datei
        contentCSS = fileadmin/bh_style/bhstyle.css
        useCSS = 1

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

        # Buttons die gezeigt/versteckt werden
        showButtons = textstyle, textstylelabel, blockstyle, blockstylelabel, bold, italic, left, center, right, orderedlist, unorderedlist, insertcharacter, line, link, image, removeformat, table, toggleborders, findreplace, insertcharacter, undo, redo, chMode, subscript, superscript, bgcolor, textcolor, tableproperties, rowproperties, rowinsertabove, rowinsertunder, rowdelete, rowsplit, columninsertbefore, columninsertafter, columndelete, columnsplit, cellproperties, cellinsertbefore, cellinsertafter, celldelete, cellsplit, cellmerge, underline, justifyfull
        hideButtons = fontstyle, formatblock, fontsize, strikethrough,lefttoright, righttoleft, textindicator, emoticon, user, spellcheck, inserttag, outdent, indent, acronym, copy, cut, paste, about, showhelp




        # Hält die RTE Icons gegroupt zusammen
        keepButtonGroupTogether = 1

        # blendet Statusbar in htmlarea aus
        showStatusBar =  1

        ## Add styles Left, center and right alignment of text in paragraphs and cells.
        inlineStyle.text-alignment (
                p.align-left, td.align-left { text-align: left; }
                p.align-center, td.align-center { text-align: center; }
                p.align-right, td.align-right { text-align: right; }
        )

        ## Use stylesheet file rather than the above mainStyleOverride and inlineStyle properties to style the contents (htmlArea RTE only)
        ignoreMainStyleOverride = 1

        proc {
                # tags die erlaubt / verboten sind
                allowTags = table, tbody, tr, th, td, div, p, br, span, ul, ol, li, re, blockquote, strong, em, b, i, u, sub, sup, strike, a, img, nobr, hr, tt, q, cite, abbr, acronym, center
                denyTags = font

                # br wird nicht zu p konvertiert
                dontConvBRtoParagraph = 1

                # tags sind erlaubt außerhalt von p, div
                allowTagsOutside = img, hr, span

                # erlaubte attribute in p, div tags
                keepPDIVattribs = align, class, style

                # List all class selectors that are allowed on the way to the database
                allowedClasses = font1, font2, font3, caption01, caption02, newcap01

# alte allowedClasses = external-link, external-link-new-window, internal-link, internal-link-new-window, download, mail, 

                # html parser einstellungen
                HTMLparser_rte {

                        # tags die erlaubt/verboten sind
                        allowTags < RTE.default.proc.allowTags
                        denyTags < RTE.default.proc.denyTags

                        # tags die untersagt sind
                        removeTags = font

                        # entfernt html-kommentare
                        removeComments = 1

                        # tags die nicht übereinstimmen werden nicht entfernt (protect / 1 / 0)
                        keepNonMatchedTags = 1
                }


                # Content to database
                entryHTMLparser_db = 1
                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 = 0

                        ## align attribute werden erlaubt
                        tags {
                                p.fixAttrib.align.unset >
                                p.allowedAttribs = style, class, align
                                #p >

                                #div.fixAttrib.align.unset >
                                div >

                                hr.allowedAttribs = class

                                # b und i tags werden ersetzt (em / strong)
                                b.remap = strong
                                i.remap = em

                                ## img/span tags werden erlaubt
                                img >
                                span >
                        }
                }

        }

        # Classes: Ausrichtung
        classesParagraph = caption01, caption02, newcap01

        # Classes: Eigene Stile
        #classesTables = center
        #classesTD { align-justify }
        classesCharacter = font1, font2, font3
        #classesImage = rte_image


        # Classes für Links (These classes should also be in the list of allowedClasses)
        classesAnchor = external-link, external-link-new-window, internal-link, internal-link-new-window, download, mail
        classesAnchor.default {
                page = internal-link
                url = external-link-new-window
                file = download
                mail = mail
        }

        # zeigt alle CSS-Klassen die in formate.css vorhanden sind
        showTagFreeClasses = 0

        # Do not allow insertion of the following tags
        hideTags = font

        # Tabellen Optionen in der RTE Toolbar
        hideTableOperationsInToolbar = 1
        keepToggleBordersInToolbar = 1

        # Tabellen Editierungs-Optionen (cellspacing/ cellpadding / border)
        disableSpacingFieldsetInTableOperations = 0
        disableAlignmentFieldsetInTableOperations = 0
        disableColorFieldsetInTableOperations = 0
        disableLayoutFieldsetInTableOperations = 0
        disableBordersFieldsetInTableOperations = 0
}

# Use same processing as on entry to database to clean content pasted into the editor
RTE.default.enableWordClean.HTMLparser < RTE.default.proc.entryHTMLparser_db

# FE RTE configuration (htmlArea RTE only)
RTE.default.FE < RTE.default
RTE.default.FE.userElements >
RTE.default.FE.userLinks >
RTE.config.tt_content.bodytext >

# Breite des RTE in Fullscreen-Ansicht
TCEFORM.tt_content.bodytext.RTEfullScreenWidth= 750

Bin für jede Hilfe dankbar,

Shiva

polarizer ·

Diese Einstellung im Seiten-TSConfig sorgt dafür, das Zeilenumbruchs-Tags (<br /> bzw. <br /> nicht in Paragraphen konvertiert werden.)

# br wird nicht zu p konvertiert
dontConvBRtoParagraph = 1

Dann im Editor einfach bei gedrückter Shift-Taste ENTER drücken und es wird ein Zeilenvorschub respektive Platzhalter eingefügt.

Hoffe das hilft?!

bh_shiva ·

Danke Polarizer.

Habe es auch so ähnlich gelöst.
Wenn ich jetzt den Editor starte, drücke ich zu aller erst, die Eingabetaste, erzeuge dadurch ein leeres <p> und dann drücke ich links ausrichten, was, durch aktivierte CSS Formatierung dann in einem <p style="text-align: left;">   </p> endet. Das wird dann nicht mehr gelöscht und wenn ich danach nur noch die Eingabetaste drücke, werden automatisch alle folgenden <p>s auch links ausgerichtet. Dadurch ist keines mehr leer und es wird alles schön angezeigt . . .

Trotzdem nochmals danke für den Hinweis,

Grüße

Shiva

michelfontaine ·

Hi zusammen,

technisch natürlich ok, aber inhaltlich Unsinn. HTML soll ja (immer mehr) dazu dienen, Inhalt zu strukturieren. Was Ihr wollt, ist ein Abstand zwischen Absätzen. Dazu entweder per CSS Abstände definieren oder aber <br /> einfügen.

Dass das keine Haarspalterei ist, sieht man daran, dass Textbrowser und Screenreader von Absatz zu Absatz springen können. Wenn da (wie in manchen Layouts) machmal zehn leere Absätze aufeinander folgen, erschwert dies das Browsen erheblich. Nach BITV sollte das deshalb vermieden werden. Auch im Sinne von sauberem Code!

Grüße,
Mic.