Drupal 7: скрытие меток с пустыми полями при просмотре узла - PullRequest
3 голосов
/ 16 августа 2011

Как скрыть метки с пустыми полями при просмотре фактического узла определенного типа контента?

Буду очень признателен за помощь, спасибо за ваше время.

Ответы [ 3 ]

2 голосов
/ 16 августа 2011

Другим способом достижения этого является использование файла пользовательского шаблона, который будет применяться ко всем узлам этого типа контента.

Убедитесь, что node.tpl.php существует в вашем каталоге sites/all/themes/[mytheme]. Этот шаблон должен существовать до вызова других пользовательских шаблонов.

Сделайте копию вашего node.tpl.php и назовите его node--[contenttype].tpl.php (без скобок).

Если у вас включен модуль Devel , вы можете добавить dpm($content); в файл, чтобы узнать название поля, которое вы пытаетесь скрыть. Или вы можете посмотреть на сам тип контента.

Когда у вас есть имя поля, теперь вы можете вставить этот код перед оператором print render($content);:

if (empty($content['my_field'])) {
  unset($content['my_field']);
}

Очистите кеш, и ваше поле появится, только если сохранено значение.

1 голос
/ 16 августа 2011

По умолчанию метки пустых полей скрыты, может быть, в поле все еще есть «неразрывный пробел» или какой-то другой остаток? Вы должны проверить разницу между существующим узлом, где возникает проблема, и новым узлом, где вы не касаетесь определенного поля.

Установить отображение нежелательных меток, скрытых в nl / admin / structure / types / manage / selected_content_type / display

0 голосов
/ 23 августа 2014

Я хотел бы исправить первый ответ. В файле node.tpl.php мы должны проверить #markup вместо массива полей:

if (empty($content['field_vac_req'][0]['#markup'])) {
  unset($content['field_vac_req']);
}

вместо

if (empty($content['my_field'])) ...
...