我正在尝试为Joomla的类别列表输出中的每个列表项添加自定义样式,它给出了以下html
<div class="blog">
<div class="cat-children">
<ul>
<li class="first">
<span class="item-title"><a href="/hyt-hand-held-license-free">HYT</a>
</span>
</li>
<li></li>
</ul>
</div>
</div>
我认为我需要做的是添加以下内容:
<li id="myID<?php echo $this->item->catid; ?> ">
麻烦的是我无法找到要覆盖的文件。我查看了/templates/mytemplate/html/com_content/category/
以及/components/com_content/views/category/tmpl
但是这些文件中似乎没有一个与cat-chidren
相关的无序列表。
所以我的第一个问题是我应该编辑哪个文件?我的第二个是this->item->[correct'Method'?]
的最佳语法(方法正确的术语或变量,我对此有点不稳定!)使用,以便每个列表项都有id="myID[nameofarticle/subcatagory]"
< / p>
答案 0 :(得分:1)
你会在/components/com_content/views/category/tmpl/default.php中看到cat-children
ul是另一个加载的子模板,loadTemplate('children'); ?&GT; ,即
/components/com_content/views/category/tmpl/default_children.php
如果你想修改li类,你可以在第26行(你的覆盖而不是核心文件)中粘贴类似这样的内容 - 但只需在核心文件上测试就可以了。
<?php $class = ' class="cmyId' . $this->escape($child->title) . '"';?>
这会使每个李显示为
所以这个
<li<?php echo $class; ?>>
<?php $class = ''; ?>
变成这个
<?php $class = ' class="cmyId' . $this->escape($child->title) . '"';?>
<li<?php echo $class; ?>>
<?php //$class = ''; ?>
已在2.5安装上测试过。
答案 1 :(得分:0)
你应该覆盖存储在components / com_content / views /中的几个文件 根据您要编辑的列表,您应该查看文件夹: - 文章 - 类别 - 类别 - 特色 在每个文件夹中,您将看到一个名为“tmpl”的子文件夹,其中有一个“default.php”文件。这就是你要找的东西。
如果要覆盖文件,请记住最佳做法是将替代文件放在模板的文件夹中,构建与原始文件相似的路径(例如,对于文章文件夹:templates / YOURTEMPLATEFOLDER / html / com_content / article / default.php - 不需要tmpl文件夹,也没有视图文件夹。)
另一种选择,在我看来,更简单的方法是为每个类别设置不同的模板,然后为每个类别分配您喜欢的列表样式。
或者,更简单的是,您可以简单地编辑模板文件夹中的index.php文件,以便根据$ catId回显特定的css样式表。
答案 2 :(得分:0)
当您的HTML代码显示您正在使用类别博客视图时,该类别中的每个文章实例都由blog_children.php文件呈现,因为它显示/components/com_content/views/category/tmpl/blog.php
<?php echo $this->loadTemplate('children'); ?>
所以/components/com_content/views/category/tmpl/blog_children.php是你需要在模板html目录中编辑或覆盖的文件。
然后,您可以使用$ child-&gt; id为每篇文章应用自定义样式添加ID或类。