it-swarm.dev

Modo corretto per aggiungere attributi al tag HTML della pagina Joomla?

Sto usando AngularJS per aggiungere alcune funzionalità più avanzate a molte delle mie pagine di articoli su Joomla. In queste pagine devo aggiungere l'attributo ng-app a <HTML> tag sulla mia pagina. Attualmente il normale tag HTML per le mie pagine Joomla (v3.3) è simile al seguente;

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

e ne ho bisogno per assomigliare a questo;

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

Questo deve essere un po 'dinamico poiché pagine diverse potrebbero aver bisogno di una diversa direttiva ng-app. C'è un modo corretto per farlo in Joomla?

Attualmente sto importando AngularJS usando quanto segue:

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

Grazie per l'aiuto che puoi dare.

11
drobertson

Puoi creare un plugin system in questo modo:

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

Puoi utilizzare PHP per aggiungere contenuto dinamico a ng-app attributo.

Nel tuo \templates\yourtemplate\index.php file, modifica

<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