Механизм выражений - для списка записей отображать только последнюю категорию в дереве? - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть такая структура категорий:

cat1
cat2
-catA
-catB
cat3

Для списка записей я показываю названия категорий для каждого с этим: {category show_group = «1»} {category_name} {/ category}

Как я могу ограничить имена категорий, чтобы они отображались только в дереве, если их несколько? Например, если запись является частью "cat2", а также "catA", я хочу отображать только "catA".

Спасибо

Обновление - я пробовал следующее, но total_results возвращает количество записей, а не количество категорий для каждой записи.

{exp:channel:entries channel="news|blog" category="<?php echo $cat_id ?>" orderby="date" sort="desc" disable="member_data|pagination" dynamic="no"}
    {categories show_group="1"}{if count == total_results}{category_name}{/if}{/categories}     
{/exp:channel:entries}

1 Ответ

1 голос
/ 22 ноября 2011

Эффективным способом было бы написать запрос SQL, чтобы получить именно то значение, которое вы хотите.Неэффективным, но простым способом было бы скрыть все результаты, кроме последнего.

{!-- requires PHP parsed on output --}
<?php $lastCat = ""; ?>
{categories}
    <?php $lastCat = "{category_name}"; ?>
{/categories}
<?php echo $lastCat; ?>

Оказывается, {count} и {total_results} не поддерживаются в паре тегов {category}.Вы можете использовать PHP для замены.

Достаточность неэффективности зависит от того, сколько у вас категорий и насколько эффективно будет кэширование страницы.

...