it-swarm-es.tech

¿Forma correcta de agregar atributos a la etiqueta HTML de la página de Joomla?

Estoy usando AngularJS para agregar una funcionalidad más avanzada a varias de mis páginas de artículos de Joomla. En estas páginas necesito agregar el atributo ng-app al <HTML> etiqueta en mi página. Actualmente, la etiqueta HTML normal para mis páginas de Joomla (v3.3) tiene este aspecto;

<html prefix="og: http://ogp.me/ns#" xml:lang="en-gb" lang="en-gb">

y necesito que se vea así;

<html prefix="og: http://ogp.me/ns#" xml:lang="en-gb" lang="en-gb" ng-app="dataManager">

Esto debe ser un poco dinámico, ya que diferentes páginas pueden necesitar una directiva ng-app diferente. ¿Hay una manera adecuada de hacer esto en Joomla?

Actualmente estoy importando AngularJS usando lo siguiente:

<?php 
    $document = JFactory::getDocument();
    $urlAngular = "http://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.min.js";
    $document->addScript($urlAngular); 
?>

Gracias por cualquier ayuda que pueda dar.

11
drobertson

Puede crear un plugin system como este:

class plgSystemAddAttr extends JPlugin
{
    public function onAfterRender()
    {
        $document = JFactory::getApplication();
        $htmlString = $document->getBody();

        $dom = new DOMDocument();
        libxml_use_internal_errors(true);
        $dom->loadHTML($htmlString);
        libxml_use_internal_errors(false);
        $htmlTag = $dom->getElementsByTagName('html')->item(0);

        $domAttribute = $dom->createAttribute('ng-app');
        $domAttribute->value = 'dataManager';
        $htmlTag->appendChild($domAttribute);

        $document->setBody($dom->saveHtml());
    }
}
5
Farahmand

Puede usar PHP para agregar contenido dinámico a la ng-app atributo.

En tus \templates\yourtemplate\index.php archivo, cambio

<html prefix="og: http://ogp.me/ns#" xml:lang="en-gb" lang="en-gb" ng-app="dataManager">

a

<?php
if ( condition ) {
   $ngapp = "dataManager";
} else {
   $ngapp = "somethingElse";
}
?>
<html prefix="og: http://ogp.me/ns#" xml:lang="en-gb" lang="en-gb" ng-app="<?php echo $ngapp ?>">
1
johanpw