Zum Inhalt springen

Metatags

Erstellt am 14. Oktober 2005 · 12 Antworten · letzte Antwort am 18. Oktober 2005

Tags: Frage

SLAng ·

Noch eine Frage:

Meine Metaangaben sind XHTML konform geschrieben, also z.B.
<meta name="robots" content="index,follow" />

Es soll aber lieber so aussehen:
<meta name="robots" content="index,follow">
Also HTML konform

Dadurch wird nämlich ein Fehler im Validator erzeugt, der meinen öffnenden head nicht mehr findet und ebenso den body-Tag

Kann man das irgendwie ausschalten, oder umändern?

SLAng ·

Also die PHP Datei habe ich gefunden und abgeändert..

Aber ich will nicht glauben, dass das wirklich korrekt war. Gibt es nicht eine Möglichkeit global zu sagen, das Typo3 alles als HTML einbaut und nicht XHTML

SLAng ·

Zurzeit erscheint immernoch

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="fileadmin/stefan/test/main.css" />
<meta name="generator" content="TYPO3 3.8 CMS" />

es soll aber so aussehen:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="fileadmin/stefan/test/main.css">
<meta name="generator" content="TYPO3 3.8 CMS">

Wäre wirklich nett wenn mir jemand helfen könnte

SLAng ·

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!

Unbekannter Benutzer ·

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.

SLAng ·
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?

SLAng ·

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 = &nbsp;|
temp.rootline.1 = TMENU
temp.rootline.1 {
      noBlur = 1
      wrap = |
      NO {
      wrapItemAndSub = &nbsp;<img src="fileadmin/stefan/test/pic/listbullet_navpath.gif" alt="" style="vertical-align:middle">&nbsp;|
      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>&nbsp;</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
}
SLAng ·

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.

Unbekannter Benutzer ·

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 😉

SLAng ·

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.