2014-04-19 128 views

回答

2

一個簡單的方法是讓您的模板監聽查詢並從url中獲取頁面類參數。 假設形式的網址:

example.com?index.php&pageclass=blablaclass 

內模板index.php把下面:

<?php 
    $jinput = JFactory::getApplication()->input; 
    $pageclass = $jinput->get('pageclass', 'default_value', 'cmd'); 
?> 

<body class="<?php echo $pageclass; ?>"> 
-2

虛構網址:

http://www.mysite.com?body_tag_param=blah1; 

PHP:

$param = ''; 
if(isset($_GET['body_tag_param'])) { 
    $param = $_GET['body_tag_param']; 
} 
switch ($param) { 
    case 'blah1' : 
     $classname = 'hello1'; 
    break; 
    case 'blah2' : 
     $classname = 'hello2'; 
    break; 
    default : 
     $classname = 'default_class'; 
    break; 
} 
$script = <<<SCRIPT 
    <script> 
     $(document.body).addClass('{$classname}'); 
    </script> 
SCRIPT; 
$document = JFactory::getDocument(); 
$document->addCustomTag($script); 

我有一段時間沒有與Joomla或Mootools混淆,因爲它們體積龐大,但應該這樣做。請注意,另一個答案建議改變入口點index.php文件,這是一個可怕的想法。如果您不確定Joomla框架是如何放在一起的,您可以嘗試將它添加到您的模板中。無論採用哪種方式,您都不應該混淆index.php文件。

+0

這也是一個壞主意。它使用不應該在Joomla中使用的$ _GET,並且需要使用jQuery庫來實現這樣一個小功能。至於其他答案,代碼可以簡單地放在屬於模板文件夾的index.php中,而不是根。如果這不是Joomla網站,那麼我會說這將是一個很好的答案,但對Joomla來說,這有點矯枉過正:) – Lodder

+0

不,$ _GET是PHP。 Joomla是PHP。我沒有使用jQuery,addClass()是mootools。 –

+0

是的,但Joomla有自己的方法,他們正在儘快擺脫mootools – Lodder

相關問題