5

我正在尝试为 Joomla!s 类别列表输出中的每个列表项添加自定义样式,这给了我以下 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]"

4

3 回答 3

1

您将在 /components/com_content/views/category/tmpl/default.php 中看到 cat-children

ul 在另一个加载的子模板 loadTemplate('children'); ?> ,即

/components/com_content/views/category/tmpl/default_children.php

如果你想修改 li 类,你可以在第 26 行粘贴这样的东西(你的覆盖不是核心文件 - 但可以只测试核心文件)

<?php $class = ' class="cmyId' . $this->escape($child->title) . '"';?>

这将使每个 li 显示为

所以这

<li<?php echo $class; ?>>
    <?php $class = ''; ?>

变成这个

<?php $class =  ' class="cmyId' . $this->escape($child->title) . '"';?>
    <li<?php echo $class; ?>>
    <?php //$class = ''; ?>

已在 2.5 安装上对其进行了测试。

于 2012-10-10T15:45:07.720 回答
0

您应该覆盖存储在 components/com_content/views/ 中的几个文件 根据您要编辑的列表,您应该查看文件夹: - 文章 - 类别 - 类别 - 特色 在每个文件夹中,您都会看到一个名为的子文件夹'tmpl',里面有一个'default.php'文件。这就是你要找的。

如果您想覆盖文件,请记住最佳做法是将替代文件放在模板的文件夹中,构建与原始文件所在的路径相似的路径(例如,对于文章文件夹:templates/YOURTEMPLATEFOLDER/html/com_content /article/default.php - 不需要 tmpl 文件夹,也不需要 views 文件夹)。

另一种方法,在我看来,更简单的方法可能是为每个类别设置不同的模板,然后为每个您喜欢的列表样式分配。

或者,更简单的是,您可以简单地编辑模板文件夹中的 index.php 文件,以便它根据 $catId 回显特定的 css 样式表。

于 2012-10-10T15:35:30.397 回答
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->id 为每篇文章添加 id 或类。

于 2012-10-10T15:47:33.017 回答