Drupal → Дублируем настройки разрешений на административной странице своего модуля
Бывает полезно продублировать настройки определённого разрешения на административной странице своего модуля. Например так сделано в модуле 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)); } }
Вместо имя пермишенна
нужно прописать системное имя разрешения, настройки которого необходимо сохранить.
Оставить комментарий