Вывод нескольких значений поля ССК в одну строку

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

Аватар пользователя Dimitrei Dimitrei 8 февраля 2010 в 1:04

Здравствуйте. Относительно недавно стал изучать веб-программирование в целом и в частности cms/cmf Drupal и поэтому появляется много примитивных вопросов и проблем, которые не удается решить самому... Иногда гугл помогает, а иногда и нет)

В общем суть в следующем: потребовалось организовать вывод терминов таксономии из словаря в одну строку. Поставил модуль cck и content_taxonomy, добавил соответствующее поле к типу материала, создал ноду, указал в ней несколько терминов из словаря, сохранил - все прекрасно, но только каждый термин словаря отображается с новой строки. Как сделать так чтобы все эти термины выводились в одну строку или через разделитель (например "|")?

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

Заранее спасибо

Комментарии

Аватар пользователя Dimitrei Dimitrei 8 февраля 2010 в 12:18

iNFerNo wrote:
В настройках полей есть
выводить не выводить
в линейку или нет

и тд


Это интересно... В настройках отображения поля есть только As text и As link. Эм... Возможно я не там смотрю конечно, но в таком случае можно поподробнее?

Аватар пользователя romsk1983 romsk1983 25 февраля 2010 в 12:45

Попробуйте в CSS файле темы прописать .Your-field {float:left}. И так для каждого поля, которые должны выводиться в строчку.

Аватар пользователя Upgrader Upgrader 4 сентября 2012 в 1:51

romsk1983 wrote:
Попробуйте в CSS файле темы прописать .Your-field {float:left}. И так для каждого поля, которые должны выводиться в строчку.
Нет, это не помогает. Дело в другом - каждый термин таксономии реально отображается с новой строки, какой-бы там css небыл.
Как же решить проблему?
Да, я уже создал свой tpl.php и вывел в нем так: <?php print render($content['field_tags']);?>
Но как избавится от переноса на новую строку? И как указать разделитель (запятая, точка и т.п.)?

В настройках полей никакого выбора нет - только в виде ссылки, потому что нужно в виде ссылки (а не чистого текста), без вариантов.
Модуль Field Delimiter (и к нему Field formatter settings) тоже не решает проблемы - разделитель меняется, а вывод в каждой строке остаётся.

РЕШЕНО! Текст решения в другой теме: http://www.drupal.ru/node/74569 Пост: Опубликовано vaplas в вс, 15/01/2012 - 12:11. Способ 2:
Но это скорее костыль, чем решение.
Ищу более вменяемый способ.

Аватар пользователя Antoniy Antoniy 4 июля 2013 в 11:06

"Upgrader" wrote:
Ищу более вменяемый способ

Уже почти год прошел, но все равно отвечу - может кому пригодится.
Вывод нескольких терминов поля типа term_reference можно сделать с помощью модуля Taxonomy Formatter (если мне память не изменяет).

Аватар пользователя Antoniy Antoniy 4 июля 2013 в 12:48

Разобрался, как вывести программно несколько значений поля через запятую в блоке (в моем случае множественное текстовое поле для внесения номеров телефонов (field_phone)):

<?php
$node 
menu_get_object();
$phone = array();
foreach (
$node->field_phone['und'] as $phone) {
  
$phone_list[] = $phone['value'];
}
print 
implode(', '$phone_list);
?>

Подсмотрел тут