将css更改为index.php
我只想将templete.css应用于index.php或joomla中的home,并将mycss.css应用于其他文件。我怎样才能做到这一点。请帮助我在您的“index.php”或“joomla主页”中只包含“template.css”文件将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 ) {?>
在“其他文件”中,仅包含“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'; ?>">