Переопределение списка категорий joomla для добавления идентификатора к каждому элементу списка

Я пытаюсь добавить собственный стиль к каждому элементу списка в выводе списка категорий 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]"


person happilyUnStuck    schedule 10.10.2012    source источник


Ответы (3)


arrow_upward
1
arrow_downward

Вы увидите детей-котов в /components/com_content/views/category/tmpl/default.php.

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.

person Trev    schedule 10.10.2012
comment
Замечательно. Работает как шарм в обоих случаях. : ) немного изменил ваш код и заменил дочерний-›название дочерним-›псевдонимом, и теперь это даже лучше, так как у меня есть один класс с дефисом вместо разбитого. огромное спасибо!! - person happilyUnStuck; 10.10.2012
comment
Отлично - не подумал об использовании псевдонима для этого. намного лучше. - person Trev; 10.10.2012

arrow_upward
0
arrow_downward

Вы должны переопределить несколько файлов, хранящихся в компонентах/com_content/views/. В зависимости от списка, который вы хотите отредактировать, вам следует просмотреть папки: - статьи - категории - категории - избранные В каждой из этих папок вы увидите подпапку с именем tmpl, внутри которого находится файл default.php. Это то, что вы ищете.

Если вы хотите переопределить файлы, помните, что лучше всего поместить альтернативные файлы в папку вашего шаблона, создав путь, аналогичный тому, в котором находится исходный файл (например, для папки статьи: templates/YOURTEMPLATEFOLDER/html/com_content /article/default.php — ни папка tmpl, ни папка представлений не нужны).

Альтернативным и, на мой взгляд, более простым способом может быть установка разных шаблонов для каждой категории, а затем назначение каждой из стилей списка, которые вы предпочитаете.

Или, что еще проще, вы можете просто отредактировать файл index.php в папке шаблона, чтобы он повторял определенную таблицу стилей css в зависимости от $catId.

person don    schedule 10.10.2012

arrow_upward
0
arrow_downward

Как видно из вашего 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.

person marcanuy    schedule 10.10.2012