2011-02-23 19 views
0

私はmu Joomlaテンプレートでいくつかの変更を行っています。テンプレート用の完全に異なるホームページ(フロントページ)を作成したいと思います。ユーザーがフロントページをナビゲートしていることを確認するにはどうすればよいですか?

これはjoomlaテンプレートの変更に関する私の最初の経験です。そのため、IFのステートメントをテンプレートのindex.phpファイルに配置して、ユーザーがフロントページをナビゲートしているかどうかを確認します。 trueで、コードは自分のコード(私の一番上のページ)を生成し、ユーザーが他のページをナビゲートしている場合、ifステートメントはfalseになり、組み込みのテンプレートが生成されます。

しかし、問題は "if文"でしょうか?

//begining of the code.... 

if (this is the front page){ 
    //my template code containing some installed modules 
}else { 
    //run as normal 
} 

ORケースのみのためのホームページ、私は完全に間違って仕事をしていた場合、私に笑い、良いアイデアに

おかげ

+1

本当にそうしたくありません。 Joomlaでは個々のモジュールとコンテンツ、および個々のノードのカスタムテーマを表示できるメニューを提供しています。テンプレート内にある必要はありません。あなたに正当な理由がないなら、それをしないでください。 – Kissaki

答えて

2
$option = JRequest::getVar('option', ''); 
$view = JRequest::getVar('view', ''); 
$task = JRequest::getVar('task', ''); 

if($option == 'com_content' && $view =='frontpage' && $task=='') 
{ 
    //your template code 
} 
else 
{ 
    //run as normal 
} 
+0

ありがとう!いくつかの間違いを訂正してください '$($ option == 'com_content' && $ view == 'frontpage' && $ task == '')あなたが$を逃した............ありがとうございました – Alireza

+0

@サファリ:ありがとう – Gaurav

0

をお願いのGauravの答えが正しいですかcom_contentを通じてレンダリングされます。より一般的な解決策は次のとおりです。

global $Itemid; 

$db =& JFactory::getDBO(); 
$db->setQuery('SELECT `id` FROM `#__menu` WHERE `home`=1'); 
$frontpageItemid = $db->loadResult(); 

if($Itemid == $frontpageItemid) 
{ 
    //your template code 
} 
else 
{ 
    //run as normal 
} 
関連する問題