2012-11-24 20 views
5

Joomla 2.5でカスタムプラグイン拡張を使用しています。このプラグインは、サイトの1ページを対象としています。しかし何らかの理由で私はそれがすべての単一ページのcssファイルをロードすることに気づいた。joomlaプラグイン拡張ですべてのページにCSSファイルがロードされる

プラグインをロードこのcssファイルのコードは:

$doc->addStyleSheet($pluginAssetsUrl . '/css/aecuserpage.css'); 

私はこれが一般的であると仮定していないが、私は、プラグインについてはよく分かりません。すべての単一ページではなく、必要なページのみを適用できるようにすることはできますか。どのようにこれをデバッグするかについての任意の考えは高く評価されるだろう。番号「1」どんなメニュー項目のページへ

$application = JFactory::getApplication(); 
$menu = $application->getMenu(); 
$item = $menu->getItem(1); 
if ($item == 1){ 
    $doc = JFactory::getDocument(); //Remove it you already have this line 
    $doc->addStyleSheet($pluginAssetsUrl . '/css/aecuserpage.css'); 
} 

変更:

プラグインがonContentPrepare

+0

プラグインは何をしているのですか?たとえば、特定のクラス/ IDをターゲットとしている場合は、クラス/ IDを検索し、存在する場合はcssファイルをインクルードします。 –

答えて

5

はあなたの問題を管理するために、これらのスニペットを使用します。

1)ロードCSSをチェックすることにより、アクティブなメニュー項目

$menu = &JSite::getMenu(); 
$menuItem = $menu->getActive(); 
$Itemid = $menuItem->id; 
if($Itemid!=1) 
{ 
$doc->addStyleSheet($pluginAssetsUrl . '/css/aecuserpage.css'); 
} 

2)成分

の負荷のCSS 210
if (JRequest::getCmd('option') == 'com_k2'){ 
     $doc->addStyleSheet($pluginAssetsUrl . '/css/aecuserpage.css'); 
} 

3)ロードCSSのみホームページで

<?php if(JRequest::getInt('Itemid') == $menu->getDefault()) { 
    $doc->addStyleSheet($pluginAssetsUrl . '/css/aecuserpage.css'); 
}?> 

4)アクティブなメニューIDに負荷CSS

<?php 
$menuID = JSite::getMenu()->getActive()->id ; 
    if ($menuID == '6') 
    { 
    $doc->addStyleSheet($pluginAssetsUrl . '/css/aecuserpage.css'); 
    } 
?> 

5)アクティブな言語の負荷のCSS:

$lang =& JFactory::getLanguage(); 
switch ($lang) { 
case 'en-gb': 
$doc->addStyleSheet($pluginAssetsUrl . '/css/aecuserpage.css'); 
break; 
} 

6)ユーザにCSSをロードする

URLの際に

7)ロードCSS

$u =& JFactory::getURI(); 
if($u=="http://www.example.com/joomla/index.php?task=view&id=12&Itemid=29") 
{ 
$doc->addStyleSheet($pluginAssetsUrl . '/css/aecuserpage.css'); 
} 
+0

Aha!#1それを行った。ありがとう。 – Tom

+0

グラシアスメイト、私が手伝ってくれてうれしい – Theodore

0

次のようなものを使用してみてください記事のページに簡単な表を印刷し、プラグイン機能を使用しています属する。

ご注意私はこれをテストしていないので、動作しているかどうか教えてください。それがなければ、私は何を掘り起こすことができるかを見ます。

+0

閉じる、ありがとう。このコードは大部分が読み込み中であることを明確に示しています(奇妙なことに、サイトのルートにはまだ表示されています)。私はメニュー項目のIDを使って遊んでいます。私はそれがうまく動作するようにしたいページでも動作しません。 'getMenu'や' getItem'が想定していることをやっているなら、もっと調べてみましょう。 – Tom

+0

すべてのことを試し、運がない。少なくとも何かを返すgetItems( 'menutype'、 'mymenu') 'を試してみました。 'getItem'はしません。他のアイデア? – Tom

0

Itemidの中にpluginが入るとは思いません。テンプレートindex.phpでCSSコードを移動し、そこで動作するitemid条件を確認することをお勧めします。

0

プラグインがどのようなイベントに応答していますか?それはどんなグループですか?多くのイベントでは、ページの$コンテキストを確認できます。特定のページにのみロードされることがわかっている場合は、これらの識別子を使用します。

場合($ params-> GET( 'show_item_navigation')& &($コンテキスト==「com_content:ここにページネーションプラグインからのラインがあります。LoadModuleのからの記事 ')& &($ビュー== '記事')){

またはこの

$canProceed = $context == 'com_content.article'; 
    if (!$canProceed) { 
     return; 
    } 
+0

イベントは次のとおりです: 'onContentPrepare' – Tom

+0

これはすべての単一ページで発生します。あなたがしたいことは、if($ context!=何でも){return;}他のコンテンツプラグインを見てみると、基本的にあなたはURLをチェックしています。 – Elin

+0

「何でも」の部分が何であるか分かりません。他のプラグインはあなたの答えを入力するときにいくつかのものがありますが、私はそれらが何を意味するのか分かりません。たとえば、loadmodule私は 'com_content.article'が何であるか分かりません。 – Tom

関連する問題