diff --git a/administrator/templates/atum/index.php b/administrator/templates/atum/index.php index a3d988cfc0a14..681f1a1fbca5a 100644 --- a/administrator/templates/atum/index.php +++ b/administrator/templates/atum/index.php @@ -62,7 +62,9 @@ - + + + diff --git a/libraries/joomla/document/renderer/html/head.php b/libraries/joomla/document/renderer/html/head.php index dc31ea72c7b60..d1017f36eb0e0 100644 --- a/libraries/joomla/document/renderer/html/head.php +++ b/libraries/joomla/document/renderer/html/head.php @@ -9,8 +9,6 @@ defined('JPATH_PLATFORM') or die; -use Joomla\Utilities\ArrayHelper; - /** * JDocument head renderer * @@ -31,335 +29,11 @@ class JDocumentRendererHtmlHead extends JDocumentRenderer */ public function render($head, $params = array(), $content = null) { - return $this->fetchHead($this->_doc); - } - - /** - * Generates the head HTML and return the results as a string - * - * @param JDocumentHtml $document The document for which the head will be created - * - * @return string The head hTML - * - * @since 3.5 - * @deprecated 4.0 Method code will be moved into the render method - */ - public function fetchHead($document) - { - // Convert the tagids to titles - if (isset($document->_metaTags['name']['tags'])) - { - $tagsHelper = new JHelperTags; - $document->_metaTags['name']['tags'] = implode(', ', $tagsHelper->getTagNames($document->_metaTags['name']['tags'])); - } - - if ($document->getScriptOptions()) - { - JHtml::_('behavior.core'); - } - - // Trigger the onBeforeCompileHead event - $app = JFactory::getApplication(); - $app->triggerEvent('onBeforeCompileHead'); - - // Get line endings - $lnEnd = $document->_getLineEnd(); - $tab = $document->_getTab(); - $tagEnd = ' />'; - $buffer = ''; - $mediaVersion = $document->getMediaVersion(); - - // Generate charset when using HTML5 (should happen first) - if ($document->isHtml5()) - { - $buffer .= $tab . '' . $lnEnd; - } - - // Generate base tag (need to happen early) - $base = $document->getBase(); - - if (!empty($base)) - { - $buffer .= $tab . '' . $lnEnd; - } - - // Generate META tags (needs to happen as early as possible in the head) - foreach ($document->_metaTags as $type => $tag) - { - foreach ($tag as $name => $content) - { - if ($type == 'http-equiv' && !($document->isHtml5() && $name == 'content-type')) - { - $buffer .= $tab . '' . $lnEnd; - } - elseif ($type != 'http-equiv' && !empty($content)) - { - $buffer .= $tab . '' . $lnEnd; - } - } - } - - // Don't add empty descriptions - $documentDescription = $document->getDescription(); - - if ($documentDescription) - { - $buffer .= $tab . '' . $lnEnd; - } - - // Don't add empty generators - $generator = $document->getGenerator(); - - if ($generator) - { - $buffer .= $tab . '' . $lnEnd; - } - - $buffer .= $tab . '' . htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8') . '' . $lnEnd; - - // Generate link declarations - foreach ($document->_links as $link => $linkAtrr) - { - $buffer .= $tab . '_styleSheets as $src => $attribs) - { - // Check if stylesheet uses IE conditional statements. - $conditional = isset($attribs['options']) && isset($attribs['options']['conditional']) ? $attribs['options']['conditional'] : null; - - // Check if script uses media version. - if (isset($attribs['options']['version']) && $attribs['options']['version'] && strpos($src, '?') === false - && ($mediaVersion || $attribs['options']['version'] !== 'auto')) - { - $src .= '?' . ($attribs['options']['version'] === 'auto' ? $mediaVersion : $attribs['options']['version']); - } - - $buffer .= $tab; - - // This is for IE conditional statements support. - if (!is_null($conditional)) - { - $buffer .= ''; - } - - $buffer .= $lnEnd; - } - - // Generate stylesheet declarations - foreach ($document->_style as $type => $content) - { - $buffer .= $tab . 'isHtml5() || !in_array($type, $defaultCssMimes))) - { - $buffer .= ' type="' . $type . '"'; - } - - $buffer .= '>' . $lnEnd; - - // This is for full XHTML support. - if ($document->_mime != 'text/html') - { - $buffer .= $tab . $tab . '/*_mime != 'text/html') - { - $buffer .= $tab . $tab . '/*]]>*/' . $lnEnd; - } - - $buffer .= $tab . '' . $lnEnd; - } - - // Generate scripts options - $scriptOptions = $document->getScriptOptions(); - - if (!empty($scriptOptions)) - { - $buffer .= $tab . '' . $lnEnd; - } - - $defaultJsMimes = array('text/javascript', 'application/javascript', 'text/x-javascript', 'application/x-javascript'); - $html5NoValueAttributes = array('defer', 'async'); - $mediaVersion = $document->getMediaVersion(); - - // Generate script file links - foreach ($document->_scripts as $src => $attribs) - { - // Check if script uses IE conditional statements. - $conditional = isset($attribs['options']) && isset($attribs['options']['conditional']) ? $attribs['options']['conditional'] : null; - - // Check if script uses media version. - if (isset($attribs['options']['version']) && $attribs['options']['version'] && strpos($src, '?') === false - && ($mediaVersion || $attribs['options']['version'] !== 'auto')) - { - $src .= '?' . ($attribs['options']['version'] === 'auto' ? $mediaVersion : $attribs['options']['version']); - } - - $buffer .= $tab; - - // This is for IE conditional statements support. - if (!is_null($conditional)) - { - $buffer .= ''; - } - - $buffer .= $lnEnd; - } - - // Generate script declarations - foreach ($document->_script as $type => $content) - { - $buffer .= $tab . 'isHtml5() || !in_array($type, $defaultJsMimes))) - { - $buffer .= ' type="' . $type . '"'; - } - - $buffer .= '>' . $lnEnd; - - // This is for full XHTML support. - if ($document->_mime != 'text/html') - { - $buffer .= $tab . $tab . '//_mime != 'text/html') - { - $buffer .= $tab . $tab . '//]]>' . $lnEnd; - } - - $buffer .= $tab . '' . $lnEnd; - } - - // Output the custom tags - array_unique makes sure that we don't output the same tags twice - foreach (array_unique($document->_custom) as $custom) - { - $buffer .= $tab . $custom . $lnEnd; - } + $buffer = ''; + $buffer .= (new JDocumentRendererHtmlMetas($this->_doc))->render($head, $params, $content); + $buffer .= (new JDocumentRendererHtmlStyles($this->_doc))->render($head, $params, $content); + $buffer .= (new JDocumentRendererHtmlScripts($this->_doc))->render($head, $params, $content); - return ltrim($buffer, $tab); + return $buffer; } } diff --git a/libraries/joomla/document/renderer/html/metas.php b/libraries/joomla/document/renderer/html/metas.php new file mode 100644 index 0000000000000..d9c2287d0e706 --- /dev/null +++ b/libraries/joomla/document/renderer/html/metas.php @@ -0,0 +1,121 @@ +_doc->_metaTags['name']['tags'])) + { + $tagsHelper = new JHelperTags; + $this->_doc->_metaTags['name']['tags'] = implode(', ', $tagsHelper->getTagNames($this->_doc->_metaTags['name']['tags'])); + } + + if ($this->_doc->getScriptOptions()) + { + JHtml::_('behavior.core'); + } + + // Trigger the onBeforeCompileHead event + $app = JFactory::getApplication(); + $app->triggerEvent('onBeforeCompileHead'); + + // Get line endings + $lnEnd = $this->_doc->_getLineEnd(); + $tab = $this->_doc->_getTab(); + $buffer = ''; + + // Generate charset when using HTML5 (should happen first) + if ($this->_doc->isHtml5()) + { + $buffer .= $tab . '' . $lnEnd; + } + + // Generate base tag (need to happen early) + $base = $this->_doc->getBase(); + + if (!empty($base)) + { + $buffer .= $tab . '' . $lnEnd; + } + + // Generate META tags (needs to happen as early as possible in the head) + foreach ($this->_doc->_metaTags as $type => $tag) + { + foreach ($tag as $name => $contents) + { + if ($type == 'http-equiv' && !($this->_doc->isHtml5() && $name == 'content-type')) + { + $buffer .= $tab . '' . $lnEnd; + } + elseif ($type != 'http-equiv' && !empty($contents)) + { + $buffer .= $tab . '' . $lnEnd; + } + } + } + + // Don't add empty descriptions + $documentDescription = $this->_doc->getDescription(); + + if ($documentDescription) + { + $buffer .= $tab . '' . $lnEnd; + } + + // Don't add empty generators + $generator = $this->_doc->getGenerator(); + + if ($generator) + { + $buffer .= $tab . '' . $lnEnd; + } + + $buffer .= $tab . '' . htmlspecialchars($this->_doc->getTitle(), ENT_COMPAT, 'UTF-8') . '' . $lnEnd; + + // Generate link declarations + foreach ($this->_doc->_links as $link => $linkAtrr) + { + $buffer .= $tab . '_doc->_getLineEnd(); + $tab = $this->_doc->_getTab(); + $buffer = ''; + $mediaVersion = $this->_doc->getMediaVersion(); + + $defaultJsMimes = array('text/javascript', 'application/javascript', 'text/x-javascript', 'application/x-javascript'); + $html5NoValueAttributes = array('defer', 'async'); + + // Generate script file links + foreach ($this->_doc->_scripts as $src => $attribs) + { + // Check if script uses IE conditional statements. + $conditional = isset($attribs['options']) && isset($attribs['options']['conditional']) ? $attribs['options']['conditional'] : null; + + // Check if script uses media version. + if (isset($attribs['options']['version']) && $attribs['options']['version'] && strpos($src, '?') === false + && ($mediaVersion || $attribs['options']['version'] !== 'auto')) + { + $src .= '?' . ($attribs['options']['version'] === 'auto' ? $mediaVersion : $attribs['options']['version']); + } + + $buffer .= $tab; + + // This is for IE conditional statements support. + if (!is_null($conditional)) + { + $buffer .= ''; + } + + $buffer .= $lnEnd; + } + + // Generate script declarations + foreach ($this->_doc->_script as $type => $contents) + { + $buffer .= $tab . '_doc->isHtml5() || !in_array($type, $defaultJsMimes))) + { + $buffer .= ' type="' . $type . '"'; + } + + $buffer .= '>' . $lnEnd; + + // This is for full XHTML support. + if ($this->_doc->_mime != 'text/html') + { + $buffer .= $tab . $tab . '//_doc->_mime != 'text/html') + { + $buffer .= $tab . $tab . '//]]>' . $lnEnd; + } + + $buffer .= $tab . '' . $lnEnd; + } + + + // Output the custom tags - array_unique makes sure that we don't output the same tags twice + foreach (array_unique($this->_doc->_custom) as $custom) + { + $buffer .= $tab . $custom . $lnEnd; + } + + return ltrim($buffer, $tab); + } +} diff --git a/libraries/joomla/document/renderer/html/styles.php b/libraries/joomla/document/renderer/html/styles.php new file mode 100644 index 0000000000000..bcd08156cb67d --- /dev/null +++ b/libraries/joomla/document/renderer/html/styles.php @@ -0,0 +1,151 @@ +_doc->_getLineEnd(); + $tab = $this->_doc->_getTab(); + $tagEnd = ' />'; + $buffer = ''; + $mediaVersion = $this->_doc->getMediaVersion(); + + $defaultCssMimes = array('text/css'); + + // Generate stylesheet links + foreach ($this->_doc->_styleSheets as $src => $attribs) + { + // Check if stylesheet uses IE conditional statements. + $conditional = isset($attribs['options']) && isset($attribs['options']['conditional']) ? $attribs['options']['conditional'] : null; + + // Check if script uses media version. + if (isset($attribs['options']['version']) && $attribs['options']['version'] && strpos($src, '?') === false + && ($mediaVersion || $attribs['options']['version'] !== 'auto')) + { + $src .= '?' . ($attribs['options']['version'] === 'auto' ? $mediaVersion : $attribs['options']['version']); + } + + $buffer .= $tab; + + // This is for IE conditional statements support. + if (!is_null($conditional)) + { + $buffer .= ''; + } + + $buffer .= $lnEnd; + } + + // Generate stylesheet declarations + foreach ($this->_doc->_style as $type => $contents) + { + $buffer .= $tab . '_doc->isHtml5() || !in_array($type, $defaultCssMimes))) + { + $buffer .= ' type="' . $type . '"'; + } + + $buffer .= '>' . $lnEnd; + + // This is for full XHTML support. + if ($this->_doc->_mime != 'text/html') + { + $buffer .= $tab . $tab . '/*_doc->_mime != 'text/html') + { + $buffer .= $tab . $tab . '/*]]>*/' . $lnEnd; + } + + $buffer .= $tab . '' . $lnEnd; + } + + // Generate scripts options + $scriptOptions = $this->_doc->getScriptOptions(); + + if (!empty($scriptOptions)) + { + $buffer .= $tab . '' . $lnEnd; + } + + return ltrim($buffer, $tab); + } +} diff --git a/templates/aurora/index.php b/templates/aurora/index.php index e60b55b7d03f7..c8971183d932c 100644 --- a/templates/aurora/index.php +++ b/templates/aurora/index.php @@ -89,7 +89,9 @@ - + + + -