AngularJSを使用して、いくつかのJoomla記事ページにさらに高度な機能を追加しています。これらのページで、ページの<HTML>
タグにng-app属性を追加する必要があります。現在、Joomla(v3.3)ページの通常のHTMLタグは次のようになっています。
<html prefix="og: http://ogp.me/ns#" xml:lang="en-gb" lang="en-gb">
このように見えるようにする必要があります。
<html prefix="og: http://ogp.me/ns#" xml:lang="en-gb" lang="en-gb" ng-app="dataManager">
ページによって異なるng-appディレクティブが必要になる場合があるため、これは少し動的である必要があります。 Joomlaでこれを行う適切な方法はありますか?
現在、AngularJSを以下を使用してインポートしています。
<?php
$document = JFactory::getDocument();
$urlAngular = "http://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.min.js";
$document->addScript($urlAngular);
?>
あなたが与えることができるあらゆる助けをありがとう。
次のようにsystem
プラグインを作成できます。
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());
}
}
PHPを使用して、動的コンテンツをng-app
属性。
あなたの\templates\yourtemplate\index.php
ファイル、変更
<html prefix="og: http://ogp.me/ns#" xml:lang="en-gb" lang="en-gb" ng-app="dataManager">
に
<?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 ?>">