Некоторые пользователи могут иметь возможность редактировать только один из наборов полей, который отображается на вертикальных вкладках в форме редактирования узла. В таком случае использование вертикальных вкладок выглядит довольно глупо, поскольку есть только одна вертикальная вкладка на выбор. Смотрите скриншот:
Итак, возможно ли отключить вертикальные вкладки по роли пользователя? Или, кроме этого, отключить их вообще для определенных типов контента? Для моего случая использования я просто хочу, чтобы Местоположение не отображалось на вертикальных вкладках.
Я попробовал Renderable Fields и Field Group вместе, но они неправильно управляли формой (думаю, глючит). Упорядочить поля нельзя выделить вертикальные вкладки.
Ответы:
Есть несколько способов сделать это:
Вы можете использовать модуль Renderable Elements (как вы упомянули выше). Это позволяет вам регистрировать любую часть сборки в вашей установке и управлять дисплеем через пользовательский интерфейс Field. Это сделает (дополнительные) элементы доступными для существующих сущностей на формах управления / экранах отображения, или вы можете, например, зарегистрировать форму контакта и переупорядочить поля с помощью пользовательского интерфейса. В настоящее время отлично работает на формах, поддержка других приходит во второй итерации.
Или добавьте следующее в свой пользовательский модуль:
Модуль песочницы, который отключает вертикальные вкладки
Вот этот основной вопрос, который относится к этому.
источник
Вы также можете использовать проверку #access, чтобы люди не видели вертикальные вкладки.
Просто добавьте это к изменению формы хука или между загрузкой и отображением формы. После этого вы можете вызвать render ($ form), чтобы получить разметку.
источник
Я написал простое возможное решение в уже упомянутой теме: https://drupal.org/node/1048644#comment-7822687 . Для удобства я вставлю это сюда.
Есть простой способ отключить вертикальные вкладки на форме, просто изменив значение
$form['additional_settings']['#type']
переменной на'fieldset'
в реализации hook_form_alter () или hook_form_FORM_ID_alter () , если оно равно'vertical_tabs'
.Вам не нужно менять настройки доступа или
$form
рекурсивно обходить весь массив, последний излишне потребляет слишком много ресурсов.(Проверено в Drupal 7.23 .)
Это, конечно, все, что заменяет имя
MYMODULEORTHEMENAME
вашего собственного модуля или темы (последнее вtemplate.php
файле) иmy_form_id
идентификатор вашей формы.Вы также можете отключить вертикальные поля только для пользователей, которые НЕ имеют роли администратора :
В случае , если кто - то заинтересован, я прикрепил патч (который делает то же самое, что и выше) для Dripman песочнице модуля «s: # 2080739: Упрощает метод отключения вкладки Вертикально только с изменяя
$form['additional_settings']['#type']
к'fieldset'
.источник
Элементы с возможностью рендеринга в настоящее время не поддерживаются, и на странице проекта признается, что они конфликтуют с некоторыми другими добавленными модулями, поэтому я бы не стал полагаться на это для рабочих сайтов.
Вопрос о том, как полностью отключить вертикальные вкладки, решается в этой теме .
Dripman создал простой модуль песочницы для полного отключения вертикальных вкладок.
В зависимости от вашего желаемого уровня взаимодействия с кодированием, модуль Dripman должен быть легко настраиваемым, чтобы быть избирательным на основе полей / ролей.
Извиняюсь за совпадение с кратким ответом @nicoz
источник
Вы можете использовать модуль Vertical Tabs Visibility .
В данный момент модуль находится в песочнице
источник
В моем случае я пытался отключить вертикальные вкладки, применяемые в разделе « Параметры публикации » в форме редактирования узла (поскольку это был единственный набор полей, к которому у определенного набора пользователей есть доступ):
Для пояснения, вам нужно не только установить
additional_settings
#collapsible
значение FALSE, любые элементы внутри него также должны иметь элемент #collapsibleset to
FALSE, in my case that was the
options`.источник