Я должен разработать систему, которая позволяет мне предоставить предварительный просмотр полей на основе пользователя. Например, у нас есть 3 Combobox. Администратор может видеть и использовать все 3 Combobox, а просто один пользователь только 2. Как я могу это сделать на веб-форме? Thank youКак отображать поля веб-формы на основе взаимодействия с пользователем
0
A
ответ
1
Лучший способ Drupal сделать это - использовать Разрешение.
В вы модуль, объявить следующее:
/**
* Implements hook_permission
*/
function yourmodule_permission() {
return array(
'access combobox 1' => array(
'title' => t('Access combobox 1'),
'description' => t('Allow user to view combobox 1')
),
'access combobox 2' => array(
'title' => t('Access combobox 2'),
'description' => t('Allow user to view combobox 2'),
),
);
}
то в вашей форме, использовать эти разрешения для отображения выпадающего:
// Définition du composant du choix du schéma de base.
$form['combobox_1'] = array(
'#access' => user_access('access combobox 1'),
'#type' => 'select',
'#title' => 'yourtitle',
'#options' => array_keys(...),
);
$form['combobox_2'] = array(
'#access' => user_access('access combobox 2'),
'#type' => 'select',
'#title' => 'yourtitle',
'#options' => array_keys(...),
);
И потом, нужно просто проверить, какую роль пользователя имеют это разрешение в вашем «/admin/people/permissions» страница;)
Есть ли модуль для этого? – JoeJoe
Эта функция напрямую предоставляется ядром Drupal. Вам просто нужно написать правильный крючок;) –
Спасибо @ M.Be, вы можете помочь мне сделать эту операцию? Я неофит для Друпала. 1. Я вставляю блок hook в модуль Webform, меняя combobox на User Reference (потому что мне нужно создать опцию выбора для пользователей). 2. Где ввести второй блок кода? Спасибо soo – JoeJoe