TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

Image Tags im RTE werden beim ausgeben nicht geschlossen


Autor Nachricht
Verfasst am: 12. 02. 2010 [11:22]
GoSnA
Themenersteller
Dabei seit: 18.01.2010
Beiträge: 28
Ich hab ein tolles Phenomän welches ich mir nicht erklären kann...

Wenn ich bilder im "TEXT" Bereich einfüge, werden diese geschlossen in der Datenbank gespeichert (<img alt="" />icon_wink.gif, wenn ich allerdings im Frontend mir den Quellcode anschaue, bzw. den Code von w3c validieren lassen will, sind dies Slashes wieder weg und das Image Tag somit wieder offen.

Andererseits werden Bilder die durch die Typo3 funktionen erstellt werden ordnungsgemäß geschlossen.

Was mach ich da falsch?

Habe folgens Template eingerichtet: (für die übersicht gekürzt)

TYPOSCRIPT
# Keine p tags in tds zulassen
lib.parseFunc_RTE.externalBlocks = ul,ol,table
lib.parseFunc_RTE.externalBlocks.table.stdWrap.HTMLparser.tags.table.fixAttrib.class.list >
lib.parseFunc_RTE.externalBlocks.table.HTMLtableCells.default.callRecursive = 0
lib.parseFunc_RTE.externalBlocks.table.HTMLtableCells.default.stdWrap.parseFunc {
  makelinks = 1
  makelinks.http.keep = scheme,path,query
  makelinks.mailto.keep = path
  tags < lib.parseFunc_RTE.tags
}
 
plugin.tx_indexedsearch.templateFile = fileadmin/template/search.html
 
### Standardsprache deutsch wird festgelegt ###
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
 
page = PAGE
page.config.baseURL = http://www.meinedomain.de/
[globalString = ENV:HTTP_HOST=sub.meinedomain.de]
    page.config.baseURL = http://sub.meinedomain.de/
[global]
 
page {
  config {
    doctype = xhtml_trans
    xhtml_cleaning = all
    htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"
    disablePrefixComment = 1
    tx_cooluri_enable = 1
    redirectOldLinksToNew = 0 # if you want to redirect index.php?id=X to a new URI
    spamProtectEmailAddresses = 4
    spamProtectEmailAddresses_atSubst = <span>@</span>
    admPanel = 0
    index_enable = 1
  }
 
  ## Enable apache-style logging into a file
  config.stat = 1
  config.stat_apache = 1
  config.stat_apache_logfile = seitenaufrufe.log
  config.stat_apache_pagenames = [request_uri]
 
  bodyTag = <body>
 
  includeCSS {
    file1 = fileadmin/template/css/style.css
    file1.media = all
  }
 
  meta {
    keywords.field = keywords
    author.field = author
    description.field = description
    abstract.field = abstract
    robots = all
    content_language = de
  }
 
  10 = TEMPLATE
  10.template = FILE
  10.workOnSubpart = DOKUMENT  
  10.marks {
	...
  }
}
 
page.10.template.file = fileadmin/template/standart.html


TYPOSCRIPT
xhtml_cleaning = all


Scheint auch soweit zu funktionieren, wenn ich dieses weg nehme kommen statt 29 Fehler (aufgrund des img tags mit folgefehlern) noch einige dazu icon_wink.gif

Was mach ich falsch? Irgendwie verstehe ich nicht das die Slashes zum schließen des Image Tags einfach verschwinden....

LG
René
Profil
Verfasst am: 15. 02. 2010 [16:16]
GoSnA
Themenersteller
Dabei seit: 18.01.2010
Beiträge: 28
So... einen Schritt weiter in der Fehleranalyse ... Anscheind betrifft dies nur Bilder die mit einem Link umgeben sind...

Weiß zufällig wer gerade auf anhieb welche Klasse für diese umwandlung zuständig ist?
Profil
Verfasst am: 16. 02. 2010 [09:59]
GoSnA
Themenersteller
Dabei seit: 18.01.2010
Beiträge: 28
Nach weiterem Debuggen bin ich nun soweit:

die Datei class.tslib_content.php macht mit der funktion '_parseFunc' die Ausgabe.
Das Klappt soweit auch alles bis folgender Code aufgerufen wird:

PHP
if (is_array($conf['nonTypoTagStdWrap.']))	{$contentAccum[$a] = $this->stdWrap($contentAccum[$a],$conf['nonTypoTagStdWrap.']);}


das TS für $conf['nonTypoTagStdWrap.'] sieht wie folgt aus:

TYPOSCRIPT
nonTypoTagStdWrap.HTMLparser = 1
nonTypoTagStdWrap.HTMLparser {
  keepNonMatchedTags = 1
  htmlSpecialChars = 2
  tags.img.fixAttrib {
    clickenlarge.unset = 1
    clickenlargesrc.unset = 1
  }
  encapsTagList = p,pre,h1,h2,h3,h4,h5,h6
  remapTag.DIV = P
  nonWrappedTag = P
  innerStdWrap_all.ifBlank = & nbsp ;
  addAttributes.P.class = bodeytext
  addAttributes.P.class.setOnly = blank
}


... hoffe habe das TS richtig Abgebildet icon_wink.gif ...

Was ist nun an diesem TS Schuld das er das Image Tag wieder geöffnet ausgibt, was kann ich da eintragen damits nicht mehr geöffnet bleibt?

Mach ich in meinem Template den Eintrag

TYPOSCRIPT
lib.parseFunc_RTE.nonTypoTagStdWrap.HTMLparser = 0


Funktionierts soweit, die Seite wird Valide und alles wird soweit ich feststellen konnte noch richtig dargestellt icon_rolleyes.gif

Wird dort nun irgendwas wichtiges vollzogen? Was bewirkt dieser TS was wesentliches?

Ich interpretiere das so, das dieses TS eigentlich aussagt das er die P Tags der Klasse "bodytext" zuweist, aber selbst nach dem leeren des Caches haben alle seiten noch den <p class="bodytext"> drinne ... Clickenlarge funktioniert ebenfalls noch und auch die beiden Tags die im TS stehen wurden entfernt...

Wäre schön wenn sich jemand vielleicht mal die mühe machen würde und mir sagen könnt wo das Problem oder nicht problem liegt, was geht da ab? wieso bewirkt das ausschalten des HTMLParsers das nun alles funktioniert. Das würde doch bedeuten das das TS unsinnig und ohne funktion (außer dem entfernen des / beim Image Tag) ist...

LG
René
Profil