Предполагая, что приведенный вами пример работает для вывода первого автора, наиболее прямым решением для получения всех авторов в списке через запятую будет следующее:
foreach($node->field_author as $author) {
$authors[] = $author[view];
}
$author_list = implode(', ', $authors);
Тогда вы 'd выведите $author_list
вместо $node->field_author[0][view]
Более "Drupal" способ сделать это - скопировать модули / cck / theme / content-field.tpl.php в каталог вашей темы, а затем сделатьего копия также называется content-field-field_author.tpl.php .Затем вы можете внести изменения в новый файл, которые переопределяют то, как значения отображаются специально для поля «автор».Затем вы можете вывести тематическое значение field_author в любом месте в пользовательском файле node- [node_type] .tpl.php.(Вам может потребоваться очистить кэшированные данные с помощью кнопки на Администрирование> Конфигурация сайта> Производительность для пользовательских шаблонов, загружаемых в первый раз.)
Если ваш«Row style» представления установлен на «Node», тогда он будет также использовать шаблоны узла и поля.Если у вас установлено значение «Поля», вам нужно будет разделить тему поля в представлении отдельно.См. «Тема: Информация» вашего представления для шаблонов представлений, которые вы можете переопределить в своей теме.
Редактировать:
Пропустил тот факт, что вы хотели список естественного языка.Это займет немного больше, но вот функция Drupalized, которая сделает именно это:
function implode_language($array = array()) {
$language_string = '';
if (count($array)) {
// get the last element
$last = array_pop($array);
// create a natural language list of elements if there are more than one
if (count($array)) {
$language_string = implode(', ', $array) .' '. t('and') .' '. $last;
}
else {
$language_string = $last;
}
}
return $language_string;
}
Затем, конечно, используйте следующую строку вместо последней строки моего первого блока кода выше:
$author_list = implode_language($authors);