Скрыть поле на отдельной странице

Аватар пользователя vtnn vtnn 16 апреля в 15:32

Здравствуйте!
Есть ли модуль для скрытия конкретного поля на отдельной странице?

Есть материал, админ должен зайти и скрыть поле, а на других страницах этого материала поле должно остаться как есть, тоесть отображаться.

Просьба дать совет.

Лучший ответ

Аватар пользователя VasyOK VasyOK 17 апреля в 12:44

Я не против если получится, через Conditional Fields, но можно с гораздо большей вариативностью через viewfield + views_conditional.

Выводим нужные поля на ноде через вьюху и в ней же указываем условия вывода одних полей от других.

Комментарии

Аватар пользователя y-vo y-vo 16 апреля в 18:51

Ну я бы делал через какое то дополнительное поле с типом boolean, написал бы шаблон для этого типа записи и если в админке отмечено показывал бы, если нет, то нет. Но это кривоватый наверное вариант, скорее всего есть что то попроще.

Аватар пользователя Andruxa Andruxa 16 апреля в 22:36
1

Попроще - Conditional Fields
Те же 2 поля, только не надо ничего кодить в шаблонах - видимость одного поля настраивается в зависимости от значения другого.

Аватар пользователя OldWarrior OldWarrior 16 апреля в 20:03

y-vo wrote: скорее всего есть что то попроще

Да нет ничего, насколько мне известно. Возможно, только какие-то связки модулей типа PathAccess + FieldAccess.

Проще сделать костыль - например, добавить в материал дополнительное multiple-поле типа text, в значениях которого перечислить страницы, на которых конечное поле на должно отображаться. А в шаблоне (или в препроцессе) этого поля проверять совпадает ли текущий путь с любым из вбитых значений. Если совпадает, то выводить конечное поле. Или вместо multiple-поля можно обычный textarea, в котором каждая строка - отдельный "запрещённый" адрес. А в препроцессе explod'ить и сверять с текущим путём. Как-то так.

Аватар пользователя marassa marassa 16 апреля в 21:07

vtnn wrote: а на других страницах этого материала

А что такое "другие страницы этого материала"? Другие ноды этого же типа? То есть под страницами Вы по сути подразумеваете ноды - для каких-то нод поле отображается, а для других, произвольно отмеченных админом - нет?

Аватар пользователя vtnn vtnn 18 апреля в 14:08

Да, именно так. Нужно чтобы в ноде одного типа можно было включать и выключать отображение поля админом для пользователей.

Когда квартира занята админ отключает поле с кнопкой "Заказать", но у других квартир кнопка есть. Квартира освободилась - админ включает кнопку заказать. Сама кнопка это поле с произвольным html. Всё уже реализовано, осталось только сделать ручную выключалку поля.

Аватар пользователя ivnish ivnish 18 апреля в 14:21

Добавляете логическое поле "квартира занята" и с помощью модуля field permissions делаете так, чтобы это поле видели и могли изменять только пользователи с определенной ролью, например администраторы или модераторы

Аватар пользователя OldWarrior OldWarrior 18 апреля в 14:27

vtnn wrote: Да, именно так. Нужно чтобы в ноде одного типа можно было включать и выключать отображение поля админом для пользователей.

vtnn wrote: Сама кнопка это поле с произвольным html.

Тогда всё ещё проще. Выше уже подсказали, как можно сделать:

y-vo wrote: Ну я бы делал через какое то дополнительное поле с типом boolean, написал бы шаблон для этого типа записи и если в админке отмечено показывал бы, если нет, то нет.

Т.е. решить через шаблон поля.

PS. Я изначально было подумал, что требуется как-то скрывать поле в зависимости от различных адресов страницы. Smile

Аватар пользователя VasyOK VasyOK 17 апреля в 12:44

Я не против если получится, через Conditional Fields, но можно с гораздо большей вариативностью через viewfield + views_conditional.

Выводим нужные поля на ноде через вьюху и в ней же указываем условия вывода одних полей от других.

Аватар пользователя marassa marassa 18 апреля в 15:23

vtnn wrote: Когда квартира занята админ отключает поле с кнопкой "Заказать", но у других квартир кнопка есть. Квартира освободилась - админ включает кнопку заказать.

Дело, конечно, не мое, но я наблюдаю какую-то жесть в проектировании. Если квартира "заказывается" (и соответственно становится недоступной) через этот же сайт, почему админ должен постоянно следить за статусом всех квартир и вручную отключать/включать какие-то кнопки? Почему не привязать видимость кнопки "Заказать" к статусу квартиры "свободна/занята"?
Далее, неужели квартира у вас если заказывается, то навсегда, а если и освобождается, то в непредсказуемый момент времени??? Если квартира занята до завтра, а кому-то она нужна начиная с послезавтра, то почему кнопка "заказать" недоступна??

Аватар пользователя vtnn vtnn 20 апреля в 3:55

Дело в том, что это специально построенный дом с посуточной арендой для командировочных. Всего 16 квартир. Принимает заявки на бронирование 1 человек. Специальной программы для гостиниц и т.п. у них нет. Хотят прям на сайте сами включать-выключать поле. Сайт сделали, теперь вот прикручиваем доп. функционал, потому что изначально заказчик не смог сформулировать до конца чего же он хочет в итоге. Тоесть работаем по скраму ))) Заказчик просит - делаю, не просит - не делаю. Пока заказчик созрел именно на такой функционал.

Аватар пользователя vtnn vtnn 20 апреля в 5:14

Сделал как посоветовали, тоесть привязал к статусу "свободна/занята". Спасибо! Админ принципиально хочет ручного управления статусами и никак иначе )) Поэтому все именно так.
Задача закрыта, все в порядке.