Fixed bug #236: Rendered pages do not validate if no doctype is set.
authorSusanne Moog <typo3@susannemoog.de>
Sat, 1 May 2010 13:49:52 +0000 (13:49 +0000)
committerSusanne Moog <typo3@susannemoog.de>
Sat, 1 May 2010 13:49:52 +0000 (13:49 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@7484 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_pagerenderer.php
typo3/sysext/cms/tslib/class.tslib_pagegen.php

index fae61f3..bb2d6d3 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-05-01  Susanne Moog  <typo3@susanne-moog.de>
+
+       * Fixed bug #236: Rendered pages do not validate if no doctype is set. (thanks to Christian Buelter)
+
 2010-04-30  Benjamin Mack  <benni@typo3.org>
 
        * Added feature #12502: Use HMACs for authencity and integrity checks (Thanks to Marcus Krause and the TYPO3 Security Team)
index 7126c10..4751ab5 100644 (file)
@@ -966,7 +966,7 @@ class t3lib_PageRenderer implements t3lib_Singleton {
                $jsFooterFiles = '';
                $noJS = FALSE;
 
-               
+
 
                // preRenderHook for possible manuipulation
                if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_pagerenderer.php']['render-preProcess'])) {
@@ -986,7 +986,7 @@ class t3lib_PageRenderer implements t3lib_Singleton {
                }
 
                $jsLibs = $this->renderJsLibraries();
-               
+
                if ($this->compressCss || $this->compressJavascript) {
                                // do the file compression
                        $this->doCompress();
@@ -998,6 +998,18 @@ class t3lib_PageRenderer implements t3lib_Singleton {
 
                $metaTags = implode(LF, $this->metaTags);
 
+                       // remove ending slashes from static header block
+                       // if the page is beeing rendered as html (not xhtml)
+                       // and define variable $endingSlash for further use
+               if ($GLOBALS['TSFE']->xhtmlVersion) {
+                       $endingSlash = ' /';
+               } else {
+                       $this->metaCharsetTag = str_replace(' />', '>', $this->metaCharsetTag);
+                       $this->baseUrlTag = str_replace(' />', '>', $this->baseUrlTag);
+                       $this->shortcutTag = str_replace(' />', '>', $this->shortcutTag);
+                       $endingSlash = '';
+               }
+
                if (count($this->cssFiles)) {
                        foreach ($this->cssFiles as $file => $properties) {
                                $file = t3lib_div::resolveBackPath($file);
@@ -1005,7 +1017,7 @@ class t3lib_PageRenderer implements t3lib_Singleton {
                                $tag = '<link rel="' . $properties['rel'] . '" type="text/css" href="' .
                                        htmlspecialchars($file) . '" media="' . $properties['media'] . '"' .
                                        ($properties['title'] ? ' title="' . $properties['title'] . '"' : '') .
-                                       ' />';
+                                       $endingSlash . '>';
                                if ($properties['allWrap'] && strpos($properties['allWrap'], '|') !== FALSE) {
                                        $tag = str_replace('|', $tag, $properties['allWrap']);
                                }
@@ -1387,4 +1399,4 @@ class t3lib_PageRenderer implements t3lib_Singleton {
 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_pagerenderer.php']) {
        include_once ($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_pagerenderer.php']);
 }
-?>
\ No newline at end of file
+?>
index 7b828ce..b0dd7a4 100644 (file)
@@ -776,7 +776,10 @@ See <a href="http://wiki.typo3.org/index.php/TYPO3_3.8.1" target="_blank">wiki.t
                        $pageRenderer->setTitle($titleTagContent);
                }
 
-               $pageRenderer->addMetaTag('<meta name="generator" content="TYPO3 ' . TYPO3_branch . ' CMS" />');
+                       // add ending slash only to documents rendered as xhtml
+               $endingSlash = $GLOBALS['TSFE']->xhtmlVersion ? ' /' : '';
+
+               $pageRenderer->addMetaTag('<meta name="generator" content="TYPO3 ' . TYPO3_branch . ' CMS"' . $endingSlash . '>');
 
                $conf = $GLOBALS['TSFE']->pSetup['meta.'];
                if (is_array($conf)) {
@@ -792,7 +795,7 @@ See <a href="http://wiki.typo3.org/index.php/TYPO3_3.8.1" target="_blank">wiki.t
                                                if (strtolower($key) == 'refresh') {
                                                        $a = 'http-equiv';
                                                }
-                                               $pageRenderer->addMetaTag('<meta ' . $a . '="' . $key . '" content="' . htmlspecialchars(trim($val)) . '" />');
+                                               $pageRenderer->addMetaTag('<meta ' . $a . '="' . $key . '" content="' . htmlspecialchars(trim($val)) . '"' . $endingSlash . '>');
                                        }
                                }
                        }
@@ -1171,4 +1174,4 @@ class FE_loadDBGroup extends t3lib_loadDBGroup {
        var $fromTC = 0;        // Means that everything is returned instead of only uid and label-field
 }
 
-?>
\ No newline at end of file
+?>