Решено: Как скрыть логическое поле по условию?

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

Аватар пользователя dimapv dimapv 15 июля 2012 в 22:51

Добрый день,

Вопрос на первый взгляд простой - есть вывод ноды, в ноде несколько логических полей. Как сделать так, чтобы выводились только поля со значением 1 (true) и другие просто скрывались? Понятно, что это можно сделать CSS, но где проставить нужные классы?
Поиском пользовался, ничего не нашел.

Комментарии

Аватар пользователя dimapv dimapv 16 июля 2012 в 8:15

По условию обернуть поле дивом и скрыть этот див в css. Не самый удачный вариант, поскольку яндекс, например, не любит скрытого контента.

Аватар пользователя dimapv dimapv 16 июля 2012 в 17:53

Ну да, так я об этом и спрашивал.. Спасибо за наводку.

Я правильно понял, что ye;yj сделать так
if (!$content['field_name']):
hide($content['field_name']);
endif;

??

Аватар пользователя dimapv dimapv 16 июля 2012 в 23:45

Не знаю почему, но конструкция

hide($content['field_name']);

у меня не работает вообще. Даже без условий. Имена полей посмотрел в Devel.

upd. Не знаю, правильно, или не очень, открыл новую тему
http://www.drupal.ru/node/84729

Аватар пользователя dimapv dimapv 17 июля 2012 в 23:55

C hide разобрался, был глюк fieldgroup. C Drupal только разбираюсь, поэтому такой вопрос -
А как должно работать стандартное логическое поле? Если в настройках отображения установить отображение ключа - отображается 0 или 1 (или то, что установишь для значений Да и Нет) а если установить отображение По умолчанию, то просто выводятся метки с двоеточием вне зависимости от значения поля. sq85 в соседней ветке предположил, что поле со значением поля 0 (false), по умолчанию должно скрываться. Может у меня еще какой глюк?

Аватар пользователя dimapv dimapv 19 июля 2012 в 13:25

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

Все работает...

Аватар пользователя WebFamily WebFamily 6 октября 2012 в 0:22

"dimapv" wrote:
Все работает...

Покажи свой код пожалуйста. Тоже делаю что-то подобное и незнаю как правильно скрыть второе поле. Можно конечно все через better_exposed_filters, но я использую еще views_dependent_filters, а имея дело с ним нельзя во вьюсе ставить в настройках раскрытых фильтров лимит, иначе будет выводиться ноль.

Аватар пользователя dimapv dimapv 6 октября 2012 в 12:22
<?php      if ($node->field_prop['und'][0]['value']==0):
          
hide ($content['field_prop_electricity']);
        endif;
?>

Ну вот так, например, проверка для поля field_prop. Если оно имеет значение 0, скрывается. Не большой специалист по php, поэтому лучше, если код посмотрят специалисты на предмет безопасности и корректности.