Есть CCK поле с множественным выбором чекбоксов. Юзер отмечает несколько чекбоксов и получается что каждый из выбранных вариантов начинается с новой строки. Как вывести их все в одну строчку, разделенные запятой, типа:
Жанр: комедия, фантастика, романтика
Комментарии
больной вопрос, тоже интерессно.. наверное как-то через вьюс... но хотелось бы попрооще, просто каким-то параметром.
А еще очень интерессно, как расположить более компактней множество чекбоксов при создании новости? То есть создан новый тип документа "Музыкальный альбом" и поле "Жанр" задается выбором разных чекбоксов (Core, Punk, Metal...etc), и все они выводятся один за другим... очень много в столбец - ужос неудобно. Как их разместить в строчку? чтобы не занимали много места.
больной вопрос, тоже интерессно.. наверное как-то через вьюс... но хотелось бы попрооще, просто каким-то параметром.
А еще очень интерессно, как расположить более компактней множество чекбоксов при создании новости? То есть создан новый тип документа "Музыкальный альбом" и поле "Жанр" задается выбором разных чекбоксов (Core, Punk, Metal...etc), и все они выводятся один за другим... очень много в столбец - ужос неудобно. Как их разместить в строчку? чтобы не занимали много места.
Тыдж определенно жанры лучше таксономией определять, при просмотре будет одной строкой ) и само название словаря тоже несложно вывести
дабл (нас снова колбасит)
темизировать ноду.
А можно немного поподробнее? А то я совсем еще новичок, а вы тут какими-то страшными словами кидаетесь.
Почитайте о темизации нод в поиске. Если кратко - вам, например, надо темизировать ноды, у которых тип материала, например, mycck.
Создаете в папке вашей темы файл node-mycck.tpl.php
В нём пишите print_r($node) и смотрите что получилось. Но лучше использовать модуль devel - на странице ноды жмете dev render и видите $node в "разобранном виде". Затем можете выводить ваши чекбоксы как душа пожелает.
Как простой пример. В node-mycck.tpl.php этот простой скрипт будет выводить список терминов для ноды, термины принадлежат словарю с номером $vid
if ($term->vid == $vid){
$link_set[] = l($term->name, taxonomy_term_path($term));
}
if (!empty($link_set1)){
$link_set = implode(',', $link_set1); /*Разделяем список запятыми*/
}
print $link_set;
Ваши чекбоксы будут храниться в $node->машинное_имя_поля
В этом массиве будут содержаться выбранные пользователем чекбоксы, их вывод можно менять.
Нужно использовать только таксономию, никакие чекбоксы не нужны. Создаете словарь с множественным выбором. Тогда можно будет выбирать несколько терминов. А разместить их в строку можно как я писал в камментсе выше.
Спасибо, помогло. Вывел все как положено через запятую, но...
Дело в том, что получается что этот пункт (Жанр) выводится отдельно от всех остальных (типа год выпуска и т.д.), то есть в node-film.tpl.php оно выглядит вот так:
Жанр: <?php print $link_set; ?>
<?php print $content ?>
</div>
А как его впихнуть вовнутрь к остальным CCK полям? Подскажите плиз.
-----------------------------------------------------------------------
Проблему решил следующим образом - в файл content-field.tpl.php добавил:
<b>Жанр: </b><?php print $link_set; endif; ?>
Где field_count - последнее из выводимых полей, к которому просто добавляется вывод поля из таксономии. Но мне *очень* не нравится такая реализация, может кто-нибудь предложит что-то покрасивее? Заранее спасибо.
Покрасивее модуль contemplate, там весь вывод для cck ноды (тизера и полного представления отдельно) задается руками
не скажу что красивее, просто удобнее, хотя тоже самое можно и через devel в еще более удобном виде смотреть. а тематизация через файлы рулит еще лучше.