ExpressionEngine: просмотр всех записей в одной категории

Я использую expressionengine для создания сайта документации, используя модуль блога. У меня есть несколько категорий, которые содержат подкатегории. Категории и подкатегории содержат записи.

Я хочу создать страницу для каждой категории, которая выводит вложенный список всех дочерних записей и подкатегорий в этой родительской категории. Вверху должна быть навигационная цепочка, показывающая иерархию категорий со ссылками на родительские категории.

Вот мой код:

<!-- url /docs/category/category_id -->

<!-- Breadcrumb -->
<!-- This works on the page template, but on the category template it shows all the categories -->
{exp:weblog:entries weblog="docs" }
    {categories}
        <a href="{path='/category'}?category_id={category_id}&category_name={category_name}&category_description={category_description}">{category_name}</a> >
    {/categories}
    {title}
{/exp:weblog:entries}

<!-- List of Categories -->
<!-- This shows ALL of the categories. I want it to only show the parent category and its children -->

{exp:weblog:categories style="nested"}
    <h1><a href="{path='weblog/category'}"{category_name}</a></h1> 
    {exp:weblog:entries category="{category_id}"}
        <a href="{path='weblog/page'}">{title}</a>
    {/exp:weblog:entries}
{/exp:weblog:categories}

person Adam    schedule 18.03.2011    source источник


Ответы (3)


У меня нет времени писать код для вас, но у меня есть время указать вам (надеюсь) правильное направление. Разработчик ExpressionEngine по имени Laisvunas создал несколько надстроек EE, которые имеют дело с категориями EE и их связями с другими категориями и записями.

Я не буду ссылаться на них всех, но его страница разработчика на Devot:ee перечисляет их все. . Самая популярная надстройка категории, которую он создал, — это Дочерние категории. многое из того, что вы хотите сделать. Если его (и другие) надстройки не могут помочь вам с вашей проблемой, сообщите нам об этом.

Удачи!

person Ray Brown    schedule 21.03.2011
comment
Спасибо. Проверим это и сообщим, работает ли это для меня. - person Adam; 21.03.2011
comment
Это не отвечает на мой вопрос. Я искал способ писать код в движке выражений, а не платный аддон. Если есть способ написать надстройку, я смогу написать ее сам, но я, конечно, не буду за это платить. -1 - person Adam; 22.03.2011
comment
Прости, что разочаровал, Адам! В качестве «предупреждения» вы должны знать, что многие надстройки EE являются коммерческими (как и сама EE). Хотя вы можете ознакомиться с документацией по EE API и при необходимости создать свои собственные надстройки, зачастую намного дешевле потратить ‹ 100 долларов на надстройку, чем потратить десятки часов на создание той же функциональности. Теги основных категорий EE оставляют желать лучшего, отсюда и существование и популярность надстроек, на которые я ссылался. Желаем удачи в вашем проекте! - person Ray Brown; 24.03.2011

---ИЗМЕНИТЬ---

С тех пор я написал плагин, решающий эту проблему:
https://github.com/adambom/Category-Inheritance-Plugin-for-ExpressionEngine

-------------

Вот как я это сделал.

Чтобы получить список подкатегорий, я передаю параметр строки запроса URL-адреса category_id и запускаю это:

<ul>
    {exp:query sql="SELECT cat_id as child_category_id, cat_name AS child_category_name FROM exp_categories WHERE parent_id = '<?php echo addslashes($_GET['category_id']) ?>' ORDER BY category_name ASC"}
        <li><a href="{path=/category/}?category_id={child_category_id}">{child_category_name}</a></li>
    {/exp:query}
</ul>

Он идет только на один уровень вглубь, но это лучшее, что я мог сделать.

Этот код выводит все записи (пришлось жестко закодировать URL):

{exp:weblog:entries category="<?php echo $_GET['category_id'] ?>"}
    <p><a href="/simulate/docs2/index.php/page/{entry_id}">{title}</a></p>
{/exp:weblog:entries}

В качестве примечания, я бы не рекомендовал использовать expressionengine для чего-либо. Для блога используйте Wordpress. Для сайта документации используйте вики. Я думаю, мы собираемся перейти на сайт рельсов.

person Adam    schedule 24.03.2011

Наилучший плагин для обработки категорий вывода (сколько угодно уровней) — это GWcode CatMenu. который бесплатный.

person raymosley    schedule 15.01.2012