Oder gibt es vielleicht generell die möglichkeit den kompletten Dateikopf auf HTML umzustellen?
Metatags
Weiß denn wirklich niemand wie man Typo beibringen kann, kein XHTML zu verwenden?
config.doctype heisst das Zauberwort
Viele Grüße
Niki
Danke für deine Antwort.
Allerdings ist das Problem nicht wie ich den Doctype verändere. Das habe ich mit
page.config.doctype = <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Bereits getan.
Allerding sind alle Metaangben und alle angaben di ich bereits oben genannt habe XHTML konform.
DAS passt aber nicht zum DOCTYPE.
Die Seite auf XHTML umzustellen wäre ein unglaubliches Maß an Arbeit. Außerdem gibt es mit dem IE mehr als viele Probleme mit XHTML.
Ich möchte also das der Gesammte Dateikopf auf HTML umgestellt wird, so dass es zum DOCTYPE passt. Ansonsten ist es nicht möglich eine TYPO-Seite mit einem DOCTYPE den ich eingestellt habe überhaupt valide zu bekommen...
Das sollte mich doch ehrlich gesagt wundern...
Oderhabe ich dich einfach falsch verstanden? Ich habs gerade in der Typoscript refferenz nachgelesen. Dort sehe ich ausschließlich Einstellungen für XHTML. Da müsste ich doch sagen, dass das echt bitter ist. Vor allem weil XHTML noch gar keinen echten Vorteil bringt.
Also helft mir bitte. Wäre wirklich sehr wichtig!
poste mal alle Deine config Einstellungen bitte dann schau ich mir die mal an
Viele Grüße
Niki
P.S.: XHTML ist eine äusserst gute Sache, wir machen seit über einem Jahr nix anderes mehr.
page.config.doctype = <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Das habe ich zum Doctype eingetragen
meintest du das?
Hier mal das ganze Setup:
######## email urlmode zum kuerzen des Bestätigungslink #
config.notification_email_urlmode = 76
page.headerData.10 = TEXT
page.headerData.10.value = <link rel="alternate" type="application/rss+xml" title="Borons-Reich News" href="fileadmin/stefan/test/news.xml">
page.config.doctype = <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
### Nav-Path ###
temp.rootline = HMENU
temp.rootline.special = rootline
temp.rootline.special.range = 0|-1
temp.rootline.excludeUidList =
temp.rootline.wrap = |
temp.rootline.1 = TMENU
temp.rootline.1 {
noBlur = 1
wrap = |
NO {
wrapItemAndSub = <img src="fileadmin/stefan/test/pic/listbullet_navpath.gif" alt="" style="vertical-align:middle"> |
ATagParams = class="nav_path"
stdWrap = upper
}
ACT < .NO
ACT.stdWrap.wrap = <span class="nav_pathActive">|</span>
CUR < .ACT
CUR.stdWrap.wrap = <span class="nav_pathActive">|</span>
CUR.doNotLinkIt = 1
CUR = 1
}
}
### Neues MENU ###
temp.menu = HMENU
temp.menu.special = list
temp.menu.special.value = 399,393,605,1014,751,1026,396
temp.menu.1 = GMENU
temp.menu.1.expAll=1
temp.menu.1.NO {
wrap= |
XY = [10.w]+25,20
transparentColor = black
backColor = black
10 = TEXT
10.text.field = title
10.fontSize = 14
10.offset = 10,15
10.fontFile = fileadmin/stefan/test/Creed_Masonreg.TTF
10.fontColor = white
10.niceText = 1
10.maxWidth = 600
}
temp.menu.1.RO < temp.menu.1.NO
temp.menu.1.RO.10.fontColor = #DAD186
temp.menu.1.RO=1
temp.menu.1.ACT < temp.menu.1.NO
temp.menu.1.ACT.10.fontColor = #DAD186
temp.menu.1.ACT=1
################
config.stat = 1
config.stat_apache = 1
config.stat_apache_logfile =dsa.log
config.stat_mysql = 0
config.extTarget = _blank
config.spamProtectEmailAddresses = 2
config.spamProtectEmailAddresses_atSubst = (at)
RTE.default.proc.overruleMode = ts_css
tt_content.text.20.parseFunc.allowTags = q,td,b,i,u,a,img,br,div,center,pre,font,hr,sub,sup,p,strong,em,li,ul,ol,blockquote,strike,span,h1,h2,h3,h4,h5,h6,split
config.admPanel = 1
tt_content.textpic.20.1.imageLinkWrap.width >
tt_content.textpic.20.1.imageLinkWrap.height >
tt_content.image.20.1.imageLinkWrap.width >
tt_content.image.20.1.imageLinkWrap.height >
tt_content.stdWrap.append >
config.index_enable = 1
config.index_externals = 1
PAGE_TARGET = _self
styles.content.links.extTarget = _self
config.simulateStaticDocuments = 1
lib.stdheader.10.stdWrap.wrap =
tt_content.stdWrap.dataWrap = <A name="{field:uid}"></a>
page = PAGE
page.typeNum = 0
page.bodyTag = <body>
page.stylesheet = fileadmin/stefan/test/main.css
config.simulateStaticDocuments = 1
config.simulateStaticDocuments_addTitle = 0
config.simulateStaticDocuments_noTypeIfNoTitle = 1
page.10 = TEMPLATE
page.10 {
template = FILE
template.file = fileadmin/stefan/test/index_new.html
workOnSubpart = DOCUMENT_BODY
subparts.CONTENT < styles.content.get
subparts.LINKS < styles.content.getLeft
subparts.MENU < temp.menu
marks.HELP_NAV < temp.rootline
################ DIV Menu #########################
subparts.MENU2 = HMENU
subparts.MENU2.wrap = <div align="left">|</div>
subparts.MENU2.1 = TMENU
subparts.MENU2.1 {
expAll = 1
NO {
allWrap = <div class="br-Tmenu-FirstLine"><div class="br-Tmenu-FirstLine-Padding">|</div></div>
ATagParams = class="supper2"
beforeImg = fileadmin/stefan/test/pic/nav.gif
}
ACT < .NO
ACT {
beforeImg = fileadmin/stefan/test/pic/nav2.gif
}
ACT = 1
}
subparts.MENU2.2 = TMENU
subparts.MENU2.2 {
entryLevel = 0
expAll = 1
NO{
allWrap = <div class="br-Tmenu-SecondLine-Subpart">|</div>
ATagParams = class="supper3"
beforeImg = fileadmin/stefan/test/pic/nav.gif
}
ACT < .NO
ACT {
beforeImg = fileadmin/stefan/test/pic/nav2.gif
}
ACT = 1
}
################################################
tt_links {
wrap = <table border="0" cellpadding="0" cellspacing="0" width="{$plugin.tt_links.tablewidth}"><tr><td> </td>| </table><br>
10 = TEXT
10.field = title
10.wrap = <td bgcolor="{$plugin.tt_links.databgcolor}" align="center" width="{$plugin.tt_links.datawidth}"><font face="{$plugin.tt_links.titlefont}" size="{$plugin.tt_links.titlefontsize}">|</font></td>
15 = IMAGE
15.file.import = uploads/pics/
15.file.import.field = image
15.file.import.listNum = 0
15.file.width = {$plugin.tt_links.imagewidth}
15.wrap = <td rowspan="4" align="center"><img src="clear.gif" width="{$plugin.tt_links.clearwidth}" height="1">|</td></tr>
20 = TEXT
20.field = note
20.wrap = <tr><td align="center" width="1"><font face="{$plugin.tt_links.labelfont}" size="{$plugin.tt_links.labelfontsize}"></font><br><img src="clear.gif" width="1" height="1"></td><td align="center" bgcolor="{$plugin.tt_links.databgcolor}" width="{$plugin.tt_links.datawidth}"><font face="{$plugin.tt_links.datafont}" size="{$plugin.tt_links.datafontsize}">|</font></td></tr>
30 = TEXT
30.if.isTrue.field = url
30.dataWrap = <tr><td width="1"><font face="{$plugin.tt_links.labelfont}" size="{$plugin.tt_links.labelfontsize}"></font><br><img src="clear.gif" width="1" height="1"></td><td align="center" bgcolor="{$plugin.tt_links.databgcolor}" width="{$plugin.tt_links.datawidth}"><font face="{$plugin.tt_links.datafont}" size="{$plugin.tt_links.datafontsize}"><a href="http://{field:url}"> {field:url}</a></font></td></tr>
}
}
tt_content.table.20.default.tableStyle.style = width:"100%"
tt_content.table.20.default.tableStyle.style = style="width:100%"
tt_content.table.20.default.tableStyle.style >
tt_content.table.20.default.tableStyle.style = style="width:100%"
tt_content.table.20.default.tableStyle.style =
tt_content.table.20.default.tableStyle.style.1 = style="width:100%"
tt_content.table.20.default.tableStyle.style = style="width:100%"
tt_content.textpic.20.captionSplit.stdWrap.spaceBefore = 2
tt_content.textpic.20.caption.1.spaceBefore = 2
tt_content.image.20.captionSplit.stdWrap.spaceBefore = 2
tt_content.image.20.caption.1.spaceBefore = 2
tt_content.image.20.caption.1.wrap = |
tt_content.image.20.caption.1.br =
tt_content.image.20.captionSplit.stdWrap.wrap = |
tt_content.image.20.captionSplit.stdWrap.br =
tt_content.textpic.20.caption.1.wrap = |
tt_content.textpic.20.caption.1.br =
tt_content.textpic.20.captionSplit.stdWrap.wrap = |
tt_content.textpic.20.captionSplit.stdWrap.br =
includeLibs.ts_cmw_linklist = EXT: cmw_linklist/pi1/class.tx_cmwlinklist_pi1.php
plugin.tx_cmwlinklist_pi1 >
plugin.tx_cmwlinklist_pi1 = USER_INT
plugin.tx_cmwlinklist_pi1{
userFunc = tx_cmwlinklist_pi1->main
templateFile = {$plugin.cmw_linklist.file.templateFile}
adminEmail = {$plugin.cmw_linklist.adminEmail}
iconCategory = {$plugin.cmw_linklist.file.iconCategory}
iconLink = {$plugin.cmw_linklist.file.iconLink}
imagePopup{
file.maxW = {$plugin.cmw_linklist.image.maxW}
file.maxH = {$plugin.cmw_linklist.image.maxH}
wrap = |
imageLinkWrap = 0
imageLinkWrap {
enable = 1
bodyTag = <body>
wrap = <a href="javascript:close()">|</a>
width = {$plugin.cmw_linklist.image.width}
JSwindow = 1
JSwindow.newWindow = 1
JSwindow.expand = 17,20
}
}
}
plugin.feadmin.dmailsubscription >
plugin.feadmin.dmailsubscription = USER_INT
plugin.feadmin.dmailsubscription {
userFunc = user_feAdmin->init
includeLibs = media/scripts/fe_adminLib.inc
templateFile ={$plugin.feadmin.dmailsubscription.file.templateFile}
wrap1.wrap = {$plugin.feadmin.dmailsubscription.wrap1}
wrap2.wrap = {$plugin.feadmin.dmailsubscription.wrap2}
color1.wrap = {$plugin.feadmin.dmailsubscription.color1}
color2.wrap = {$plugin.feadmin.dmailsubscription.color2}
color3.wrap = {$plugin.feadmin.dmailsubscription.color3}
table = tt_address
setfixed=1
setfixed.approve {
_FIELDLIST = uid
hidden = 0
}
setfixed.DELETE = 1
setfixed.DELETE._FIELDLIST = uid
delete = 1
defaultCmd=create
infomail = 1
infomail.default {
label = FORGOTPASSWORD
}
edit = 1
edit.fields = name, email, module_sys_dmail_category, module_sys_dmail_html
edit.required = name, email
edit.evalValues {
email = uniqueLocal, email
}
create = 1
create.preview = 0
create.fields = name, hidden, email, module_sys_dmail_category, module_sys_dmail_html
create.required = name, email
create.noSpecialLoginForm = 1
create.overrideValues.hidden = 1
create.evalValues {
email = uniqueLocal, email
}
authcodeFields = uid
authcodeFields.addKey =
authcodeFields.addDate =
evalErrors.email.uniqueLocal = Sie sind bereits mit dieser eMail-Adresse gespeichert
evalErrors.email.email = Dies ist keine gültige eMail-Adresse
parseValues.module_sys_dmail_category = checkArray,setEmptyIfAbsent
parseValues.module_sys_dmail_html = setEmptyIfAbsent
pid = {$plugin.feadmin.dmailsubscription.pid}
email.from = {$plugin.feadmin.dmailsubscription.email}
email.fromName = {$plugin.feadmin.dmailsubscription.emailName}
email.admin = {$plugin.feadmin.dmailsubscription.email}
email.field = email
}
Also so siehts aus...
Scheinbar gibt es wirklich keine Möglichkeit Typo abzugewöhnen den gesammten Kopfbereich XHTML konform darzustellen...
Einzige Möglichkeit die ich gefunden habe, die PHP-Dateien direkt zu bearbeiten.
Dazu habe ich die meta.php des Plugin-Meta direkt bearbeitet und die ganzen " /" rausgestrichen.
Ebenso die Datei: /typo3/typo3/sysext/cms/tslib/class.tslib_pagegen.php
dort steht die meta-Angabe zum Generator, sowie die Definition des Content-Type
und dort steht auch wie das Stylesheet eingebunden wird...
ich hab alles geändert und jetzt ist es so wie es sein sollte.
Danke dir Niki für deine Hilfe. Wenn du eine bessere Lösung weißt bin ich natürlich ganz Ohr.
Du könntest über
page.config.disableAllHeaderCode = 1
den gesamten Header rausschmeissen und diesen dann über TypoScript manuell neu erstellen. Dann musst Du zumindest nicht in den php Dateien herumfuhrwerken, was Dir spätestens bei künftigen updates graue Haare bereiten wird.
Ansonsten glaube ich schon dass Meta nicht-xhtml konform dargestellt werden könnte. Da wir aber alles in XHTML machen hab ich auch kein gutes Testobjekt zur Verfügung. Evtl. musst Du einen Standard Doctype von Typo3 verwenden (gibt auch welche für normales HTML) damit Typo3 genauer weiss was Du für einen doctype ausgeben willst. Musst mal bissl testen, in der config ist auf jeden Fall nix drin was typo3 zu xhtml verleiten könnte.
Viele Grüße!
Niki
P.S: Deinen Code solltest Du mal bissl aufräumen 😉
Ja stimmt, bei Updates wird die PHP Dateien die ich geändert habe wieder überschrieben.
Ich habe aber eine kleine Datei in der alle Änderungen an solchen Dateien genau notiert sind. Ansonsten würde ich beim nächsten Update wieder anfangen müssen zu suchen.
Die Meta-PHP bleibt aber von einem Update unberührt.
Den kompletten Dateikopf mit dem von dir angegebenen Code rauszunehmen habe ich schon probiert.
Es ist aber einfacher und schneller die PHP Datei zu ändern. Daher werde ich das so lassen. Sonst müsste man nicht nur die metaangaben, sondern auch stylsheet-Angaben und die JavaScripte alle von Hand einbauen...
Das macht auch nicht unbedingt Sinn, wäre aber dennoch eine Möglichkeit.
Ich habe auf jeden Fall erreicht was ich wollte, wenn auch auf eine eher unschöne Art und Weise.