подскажите, как донастроить contemplate

Главные вкладки

Аватар пользователя poe poe 31 августа 2007 в 17:13

Использую модуль contemplate для оформления разных типов материала.
Один из этих типов представляет собой статьи с возможностью выбора не одного, а сразу нескольких разделов, к которым они будут относиться.

Поле, выводящее заголовок-название раздела (ов), к которому относится статья, офомляется следующим образом:

<?php foreach ((array)$field___0 as $item) { ?>

 <?php print $item['view'] ?> ,

<?php } ?>

В итоге, допустим, если наша статья относится к двум разделам, на странице заголовок выглядит так:

Политика, Бизнесс,

Текст статьи бла-бла-бла...
Проблема в том, что в русском языке фраза или заголовок не может заканчиваться запятой.

Большая просьба, подскажите не-программисту, как сформулировать для этого фрагмента шаблона условие или , возможно, задать цикл, благодаря которому последняя (ненужная) запятая не выводилась бы?
Логически я понимаю (если пунктов <-n/число пунктов, то вышеприведенный код), но не умею писать это.

Комментарии

Аватар пользователя poe poe 31 августа 2007 в 20:58

Огромное спасибо! Оказывается , довольно просто.
А вы не в курсе, можно ли средствами этого content template сделать название раздела ссылкой, ведущей, соответственно, в данный раздел таксономии?
Поставить перед <?php
print $item['view']
?>
taxonomy as $item) {
...
?>

?

Аватар пользователя edhel edhel 31 августа 2007 в 21:06

мб вместо print $item['view'] написать print l($item['name'], "taxonomy/term/$item[tid").

Только не пойму откуда VIEW у вас вылезло, в $node->taxonomy название термина нахоидся в индексе name...

Аватар пользователя poe poe 1 сентября 2007 в 16:33

За подсказку спасибо!
Вот такой вариант работает:
<?php foreach ((array)$field___0 as $item) { ?>

  
<?php print l($item['view'], "taxonomy/term/$item[tid]") ?>
<?php if (++$n < count((array)$field___0)) print ", "; ?>

<?php } ?>
Именно так - $item['view'] a не $item['name'] - последнее ничего не выводит...
Не очень понимаю, правда, что означает это
l после print перед скобкой? -
(<?php print l( ... ит.д.)

Аватар пользователя edhel edhel 1 сентября 2007 в 16:58

Жутко написано) Ваш код равносилен:

<?php
foreach ((array)$field___0 as $item) {
print l($item['view'], "taxonomy/term/$item[tid]")
if (++$n < count((array)$field___0)) print ", ";
}
?>

l - это функция Drupal-а.

Аватар пользователя poe poe 5 сентября 2007 в 16:56

так а в чем разница-то? лишние открывающие-закрывающие тэги "?php" , так там пропущены куски html'a... я их не стал здесь приводить...