Бывает полезно продублировать настройки определённого разрешения на административной странице своего модуля. Например так сделано в модуле Filter, в форме редактирования текстового формата:
Делается это так:
/**
* Форма настроек
*/
function mymodule_form($form, &$form_state, $template = null) {
// ...
$form['roles'] = array(
'#type' => 'checkboxes',
'#title' => t('Roles'),
'#options' => array_map('check_plain', user_roles()),
'#default_value' => array_keys(user_roles(FALSE, 'имя пермишенна')),
);
return $form;
}
/**
* Сохранение настроек
*/
function mymodule_form_submit($form, &$form_state) {
// ...
foreach ($form_state['values']['roles'] as $rid => $enabled) {
user_role_change_permissions($rid, array('имя пермишенна' => $enabled));
}
}
Вместо имя пермишенна
нужно прописать системное имя разрешения, настройки которого необходимо сохранить.
Написанное актуально для
Drupal 7.x
Добавить комментарий