Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Joomla 以编程方式更改body类_Joomla_Joomla3.0 - Fatal编程技术网

Joomla 以编程方式更改body类

Joomla 以编程方式更改body类,joomla,joomla3.0,Joomla,Joomla3.0,我需要能够根据查询字符串向body标记添加一个类。没有可以设置页面类后缀的菜单项。有没有一种方法可以通过编程实现这一点?一种简单的方法是让模板侦听查询并从url获取页面类参数。 假设表单的url为: example.com?index.php&pageclass=blablaclass 在模板index.php中放入以下内容: <?php $jinput = JFactory::getApplication()->input; $pageclass = $jin

我需要能够根据查询字符串向body标记添加一个类。没有可以设置页面类后缀的菜单项。有没有一种方法可以通过编程实现这一点?

一种简单的方法是让模板侦听查询并从url获取页面类参数。 假设表单的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; ?>">

虚构网址:

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

$param='';
if(isset($\u GET['body\u tag\u param')){
$param=$\u GET['body\u tag\u param'];
}
交换机($param){
案例“blah1”:
$classname='hello1';
打破
“废话”一案:
$classname='hello2';
打破
违约:
$classname='default_class';
打破
}

$script=这也是个坏主意。它使用了不应该在Joomla中使用的
$\u GET
,并且需要jQuery库来实现如此小的功能。至于另一个答案,代码可以简单地放在属于模板文件夹的index.php中,而不是放在根目录中。如果这不是一个Joomla站点,那么我会说这是一个很好的答案,但是对于Joomla来说,这有点过分:)不,$\u GET是PHP。Joomla是PHP。我没有使用jQuery,addClass()是mootools。是的,但是Joomla有自己的方法,他们正在完全摆脱mootoolssoon@Lodder,不知道是什么问题。现在joomla使用mootools。我个人讨厌mootools。但这是预先安装的。如果您有更好的解决方案,请提供它(因为是堆栈溢出点)。。谢谢使用API。只需创建一个JInput实例并从请求中获取数据。
$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);