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
将css更改为index.php_Css_Joomla - Fatal编程技术网

将css更改为index.php

将css更改为index.php,css,joomla,Css,Joomla,我只想将templete.css应用于index.php或joomla中的home,并将mycss.css应用于其他文件。我怎样才能做到这一点。请帮助我在您的“index.php”或“joomla主页”中只包含“template.css”文件 在“其他文件”中,仅包含“mycss.css”文件 希望我正确理解了这个问题你可以通过两种方式做到这一点 1)创建两个不同的Joomla模板: <?php if(JRequest::getCmd('Itemid') == 1 ) {?>

我只想将templete.css应用于index.php或joomla中的home,并将mycss.css应用于其他文件。我怎样才能做到这一点。请帮助我

在您的“index.php”或“joomla主页”中只包含“template.css”文件


在“其他文件”中,仅包含“mycss.css”文件



希望我正确理解了这个问题

你可以通过两种方式做到这一点

1)创建两个不同的Joomla模板:

<?php if(JRequest::getCmd('Itemid') == 1 ) {?>
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/mycss.css" type="text/css" />
<?php } ?>
一个使用template.css,另一个使用mycss.css,然后将其分配给您想要的任何页面

2)添加此代码以将CSS文件包含在所需页面中:

<?php if(JRequest::getCmd('Itemid') == 1 ) {?>
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/mycss.css" type="text/css" />
<?php } ?>


这很简单,如果你不想太多的话。Joomla已经在菜单项中提供了一个页面类后缀,允许您根据页面后缀控制页面上的CSS。这使您能够最终控制每个页面,而不必加载不同的样式表。您只需要向index.php文件中添加一点代码,就可以完成所有工作

在头部的某个地方添加以下php代码-

   $menu = &JSite::getMenu();
   $active = $menu->getActive();

   if (is_object( $active )) :
     $params = new JParameter( $active->params );
     $pageclass = $params->get( 'pageclass_sfx' );

   endif;
然后用这个替换你的身体标签-

<body id="<?php echo $pageclass ? $pageclass : 'default'; ?>">

在Joomla中,模板中只有index.php,没有“其他文件”可以放入不同的样式表。这会起作用,但将参数硬编码到模板文件中从来都不是一个好主意。如果主页菜单被另一个itemid替换,那么代码将停止工作。它也不允许在加载特定样式时有任何灵活性,而无需进入并硬编码更多的ItemID。。。我将发布另一种使用模块的方法。您可以在模板中添加:然后从模块管理器将添加到样式表中。这将涉及最小的编码和更大的灵活性。坦率地说,这是最好的解决方案!很好,我一直希望“页面类后缀”应用于“正文”而不是内容级别。。。这将直接进入我的最爱!谢谢。我一直想知道为什么更多的模板开发人员不这么做。它简单、灵活,并且易于教授非技术管理员。这是我们所有模板的标准功能。
   $menu = &JSite::getMenu();
   $active = $menu->getActive();

   if (is_object( $active )) :
     $params = new JParameter( $active->params );
     $pageclass = $params->get( 'pageclass_sfx' );

   endif;
<body id="<?php echo $pageclass ? $pageclass : 'default'; ?>">