Изменить вывод $rendered?
В узле я получаю значения полей CCK в виде $array или $_rendered в качестве отображаемого представления поля. Как я могу изменить $<field_name>_rendered
от способа отображения по умолчанию?
3 answers
Drupal удивителен во многих отношениях, он позволяет вам переопределять окончательный отрисованный HTML. Я хочу отметить, что вы также можете переопределить способ отображения поля на уровне темы.
Просто скопируйте файл...contrib/cck/theme/content-field.tpl.php в вашу личную папку тем. и переименуйте его в
Содержимое-поле -[имя_поля].tpl.php где [имя_поля] - идентификатор/имя поля cck, которое вы хотите переопределить.
Просто отредактируйте этот файл по своему вкусу. И убедитесь, что вы реконструируйте таблицы тем, чтобы Drupal распознал новый файл шаблона.
Модуль Пользовательские форматеры поможет вам быстро и элегантно. Вот цитата об этом (со страницы проекта модуля):
... позволяет пользователям легко создавать пользовательские формататоры CCK/полей без необходимости написания пользовательского модуля. Пользовательские форматеры затем могут быть экспортированы как Экспортируемые/функции CTools или форматеры API Drupal.
Поля CCK используют нечто, называемое форматерами полей, для управления выводом. Это также то, как поля делают это в Drupal 7. Формататоры полей - это на самом деле просто вызываемая функция темы.
В настройках типа контента: Поля отображения можно выбрать форматер для обычного режима просмотра и режима просмотра тизера. Если форматеры по умолчанию не используются, вам необходимо создать свой собственный форматер для поля и функцию темы, которая будет управлять тем, как это отображенный.
Я написал сообщение в блоге: Создание средства форматирования полей для CCK давным-давно, иногда я все еще использую его сам для справки, чтобы это могло вам помочь.
В качестве альтернативы вы можете использовать свою тему для перезаписи функции темы по умолчанию для средства форматирования. Однако это изменит все поля на вашем сайте с помощью выбранного средства форматирования.