Eigen Joomla head-include maken

Status
Niet open voor verdere reacties.

ErickD

Nieuwe gebruiker
Lid geworden
10 nov 2009
Berichten
4
Op deze pagina staat dat het mogelijk is om een eigen head-include aan te maken door de bestaande head.php te kopieren en die je vervolgens kunt aanpassen.

Ik zou graag een javascript laten aanroepen vanuit die head-include, maar ik kan niet uit de code opmaken waar de andere javascripts die gebruikt worden, worden aangeroepen. Wie kan mij daar meer inzicht in/duidelijkheid over geven? Of wie weet een andere manier om in Joomla een nieuw javascript op te roepen?

Tenx, Erick.


De code in de head.php ziet er op dit moment als volgt uit:

PHP:
?php
/**
* @version $Id: head2.php 11917 2009-05-29 19:37:05Z ian $
* @package Joomla.Framework
* @subpackage Document
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/


// Check to ensure this file is within the rest of the framework
defined('JPATH_BASE') or die();

/**
* JDocument head renderer
*
* @package Joomla.Framework
* @subpackage Document
* @since 1.5
*/
class JDocumentRendererHead2 extends JDocumentRenderer
{
/**
* Renders the document head and returns the results as a string
*
* @access public
* @param string $name (unused)
* @param array $params Associative array of values
* @return string The output of the script
*/
function render( $head = null, $params = array(), $content = null )
{
ob_start();

echo $this->fetchHead($this->_doc);

$contents = ob_get_contents();
ob_end_clean();

return $contents;
}

/**
* Generates the head html and return the results as a string
*
* @access public
* @return string
*/
function fetchHead(&$document)
{
// get line endings
$lnEnd = $document->_getLineEnd();
$tab = $document->_getTab();

$tagEnd = ' />';

$strHtml = '';

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

$strHtml .= $tab.'<meta name="description" content="'.$document->getDescription().'" />'.$lnEnd;
$strHtml .= $tab.'<meta name="generator" content="'.$document->getGenerator().'" />'.$lnEnd;

$strHtml .= $tab.'<title>'.htmlspecialchars($document->getTitle()).'</title>'.$lnEnd;

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

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

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

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

$strHtml .= $content . $lnEnd;

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

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

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

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

$strHtml .= $content.$lnEnd;

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

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

return $strHtml;
}
}
 
Laatst bewerkt door een moderator:
Je zult het in je template moeten aangeven, het is niet wijs om in het Joomla framework te gaan lopen "rommelen".

Dat levert je bij updates alleen maar problemen op.

In je template kun je zaken als extra JS-includes maken
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan