array( 'title' => t('Administer vertical tabs on content types'), ), ); } /** * Implement hook_form_BASE_FORM_ID_alter(). */ function hide_vtabs_form_node_type_form_alter(&$form, &$form_state) { $node_type = $form['#node_type']->type; $user_options = user_roles(); $options = array( HIDE_VTAB_STATUS_ENABLED => 'Show vertical tabs', HIDE_VTAB_STATUS_HIDDEN => 'Hide vertical tabs', HIDE_VTAB_STATUS_REVISION_ONLY => 'Show revision only', ); $form['hide_vtabs'] = array( '#type' => 'fieldset', '#title' => t('Hide Vertical Tabs'), '#access' => user_access('administer hide_vtabs'), '#collapsible' => TRUE, '#group' => 'additional_settings', '#description' => t('Specify display settings of vertical tabs on current content type.'), ); $form['hide_vtabs']['vtabs_status'] = array( '#type' => 'radios', '#default_value' => variable_get('hide_vtab_node_' . $node_type . '_status', HIDE_VTAB_STATUS_ENABLED), '#options' => $options, '#description' => t('Options available for vertical tabs visibility. "Show revision only" option will become a fieldset.'), ); $form['hide_vtabs']['vtabs_roles'] = array( '#type' => 'checkboxes', '#title' => 'User roles', '#default_value' => _hide_vtabs_default_roles_content_type($node_type, $user_options), '#options' => $user_options, '#states' => array( 'visible' => array( ':input[name="vtabs_status"]' => array( 'value' => HIDE_VTAB_STATUS_HIDDEN, ), ), ), '#description' => t('Choose which roles will have the tabs hidden.'), ); $form['#submit'][] = 'hide_vtabs_node_type_submit'; } /** * Submit handler to input the vertical tabs status. */ function hide_vtabs_node_type_submit(&$form, &$form_state) { $node_type = $form['#node_type']->type; variable_set('hide_vtab_node_' . $node_type . '_status', $form_state['values']['vtabs_status']); foreach ($form_state['values']['vtabs_roles'] as $rid => $selection) { $role_name = _hide_vtabs_retrieve_role_name($rid); variable_set('hide_vtab_node_' . $node_type . '_' . $role_name, $selection); } } /** * Implements hook_form_BASE_FORM_ID_alter(). */ function hide_vtabs_form_node_form_alter(&$form, &$form_state) { global $user; $hide_tabs = FALSE; $node_type = $form['type']['#value']; $vtabs_status = variable_get('hide_vtab_node_' . $node_type . '_status', HIDE_VTAB_STATUS_ENABLED); if (HIDE_VTAB_STATUS_ENABLED != $vtabs_status) { if (HIDE_VTAB_STATUS_REVISION_ONLY == $vtabs_status) { unset($form['revision_information']['#group']); $form['revision_information']['#collapsible'] = FALSE; $form['revision_information']['#collapsed'] = TRUE; $hide_tabs = TRUE; } $vtabs_roles = _hide_vtabs_default_roles_content_type($node_type, $user->roles); if ($hide_tabs || $vtabs_roles) { foreach ($form as $key => $value) { if (is_array($form[$key]) && isset($form[$key]['#group'])) { $form[$key]['#access'] = FALSE; } } } } }