API16

JDocumentRendererHead/fetchHead: Difference between revisions

From Joomla! Documentation

Doxiki (talk | contribs)
New page: ===Description=== Generates the head html and return the results as a string <span class="editsection" style="font-size:76%;"> <nowiki>[</nowiki>[[Description:JDocumentRendererHead/fe...
 
m preparing for archive only
 
(2 intermediate revisions by 2 users not shown)
Line 2: Line 2:
Generates the head html and return the results as a string
Generates the head html and return the results as a string


<span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>[[Description:JDocumentRendererHead/fetchHead|Edit Descripton]]<nowiki>]</nowiki>
</span>


{{Description:JDocumentRendererHead/fetchHead}}
 
 


===Syntax===
===Syntax===
Line 17: Line 15:
!Description
!Description
|-
|-
|  
| &$document
|  
|  
|   
|   
Line 153: Line 151:
</source>
</source>


<span class="editsection" style="font-size:76%;">
 
<nowiki>[</nowiki>[[SeeAlso:JDocumentRendererHead/fetchHead|Edit See Also]]<nowiki>]</nowiki>
 
</span>
{{SeeAlso:JDocumentRendererHead/fetchHead}}


===Examples===
===Examples===
<CodeExamplesForm />
=== Code Examples ===
<dpl>
<dpl>
  noresultsheader=\n
  noresultsheader=\n
  category=fetchHead
  category=fetchHead
  category=JDocumentRendererHead
  category=JDocumentRendererHead
  category=CodeExample
  namespace=CodeExample
  category=MethodExample
  category=MethodExample
  include=*
  include=*
  format= ,,,
  format= ,,,
</dpl>
</dpl>

Latest revision as of 01:33, 25 March 2017

Description

Generates the head html and return the results as a string



Syntax

fetchHead(&$document)
Parameter Name Default Value Description
&$document

Returns

string

Defined in

libraries/joomla/document/html/renderer/head.php

Importing

jimport( 'joomla.document.html.renderer.head' );

Source Body

public function fetchHead(&$document)
{
        // get line endings
        $lnEnd  = $document->_getLineEnd();
        $tab    = $document->_getTab();
        $tagEnd = ' />';
        $buffer = '';

        // Generate base tag (need to happen first)
        $base = $document->getBase();
        if (!empty($base)) {
                $buffer .= $tab.'<base href="'.$document->getBase().'" />'.$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') {
                                $buffer .= $tab.'<meta http-equiv="'.$name.'" content="'.$content.'"'.$tagEnd.$lnEnd;
                        }
                        else if ($type == 'standard') {
                                $buffer .= $tab.'<meta name="'.$name.'" content="'.$content.'"'.$tagEnd.$lnEnd;
                        }
                }
        }

        $buffer .= $tab.'<meta name="description" content="'.$document->getDescription().'" />'.$lnEnd;
        $buffer .= $tab.'<meta name="generator" content="'.$document->getGenerator().'" />'.$lnEnd;
        $buffer .= $tab.'<title>'.htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8').'</title>'.$lnEnd;

        // Generate link declarations
        foreach ($document->_links as $link) {
                $buffer .= $tab.$link.$tagEnd.$lnEnd;
        }

        // Generate stylesheet links
        foreach ($document->_styleSheets as $strSrc => $strAttr)
        {
                $buffer .= $tab . '<link rel="stylesheet" href="'.$strSrc.'" type="'.$strAttr['mime'].'"';
                if (!is_null($strAttr['media'])){
                        $buffer .= ' media="'.$strAttr['media'].'" ';
                }
                if ($temp = JArrayHelper::toString($strAttr['attribs'])) {
                        $buffer .= ' '.$temp;;
                }
                $buffer .= $tagEnd.$lnEnd;
        }

        // Generate stylesheet declarations
        foreach ($document->_style as $type => $content)
        {
                $buffer .= $tab.'<style type="'.$type.'">'.$lnEnd;

                // This is for full XHTML support.
                if ($document->_mime == 'text/html') {
                        $buffer .= $tab.$tab.'<!--'.$lnEnd;
                } else {
                        $buffer .= $tab.$tab.'<![CDATA['.$lnEnd;
                }

                $buffer .= $content . $lnEnd;

                // See above note
                if ($document->_mime == 'text/html') {
                        $buffer .= $tab.$tab.'-->'.$lnEnd;
                } else {
                        $buffer .= $tab.$tab.']]>'.$lnEnd;
                }
                $buffer .= $tab.'</style>'.$lnEnd;
        }

        // Generate script file links
        foreach ($document->_scripts as $strSrc => $strType) {
                $buffer .= $tab.'<script type="'.$strType.'" src="'.$strSrc.'"></script>'.$lnEnd;
        }

        // Generate script declarations
        foreach ($document->_script as $type => $content)
        {
                $buffer .= $tab.'<script type="'.$type.'">'.$lnEnd;

                // This is for full XHTML support.
                if ($document->_mime != 'text/html') {
                        $buffer .= $tab.$tab.'<![CDATA['.$lnEnd;
                }

                $buffer .= $content.$lnEnd;

                // See above note
                if ($document->_mime != 'text/html') {
                        $buffer .= $tab.$tab.'// ]]>'.$lnEnd;
                }
                $buffer .= $tab.'</script>'.$lnEnd;
        }

        // Generate script language declarations.
        if (count(JText::script())) {
                $buffer .= $tab.'<script type="text/javascript">'.$lnEnd;
                $buffer .= $tab.$tab.'(function() {'.$lnEnd;
                $buffer .= $tab.$tab.$tab.'var strings = '.json_encode(JText::script()).';'.$lnEnd;
                $buffer .= $tab.$tab.$tab.'if (typeof Joomla == \'undefined\') {'.$lnEnd;
                $buffer .= $tab.$tab.$tab.$tab.'Joomla = {};'.$lnEnd;
                $buffer .= $tab.$tab.$tab.$tab.'Joomla.JText = strings;'.$lnEnd;
                $buffer .= $tab.$tab.$tab.'}'.$lnEnd;
                $buffer .= $tab.$tab.$tab.'else {'.$lnEnd;
                $buffer .= $tab.$tab.$tab.$tab.'Joomla.JText.load(strings);'.$lnEnd;
                $buffer .= $tab.$tab.$tab.'}'.$lnEnd;
                $buffer .= $tab.$tab.'})();'.$lnEnd;
                $buffer .= $tab.'</script>'.$lnEnd;
        }

        foreach($document->_custom as $custom) {
                $buffer .= $tab.$custom.$lnEnd;
        }

        return $buffer;
}



Examples

Code Examples