You are here

function _forum_access_forum_form_after_build_template in Forum Access 7

1 string reference to '_forum_access_forum_form_after_build_template'
_forum_access_forum_form in ./forum_access.admin.inc
Rewrite the forum administration page with our new access rules.

File

./forum_access.admin.inc, line 193
forum_access.admin.inc

Code

function _forum_access_forum_form_after_build_template($form, &$form_state) {
  if (isset($form_state['clicked_button']['#name']) && $form_state['clicked_button']['#name'] == $form['template']['load_button']['#name']) {

    // Load a setting from a template:
    $template_tid = reset($form_state['input']['forum_access']['template']['taxonomy']);
    $form_state['values']['forum_access']['template']['template_tid'] = $template_tid;
    $form['template']['#collapsed'] = FALSE;
    $form['template']['#attributes']['class'] = array(
      'collapsible',
    );
    $settings = _forum_access_get_settings($template_tid);
    foreach (array(
      'view',
      'create',
      'update',
      'delete',
    ) as $grant_type) {
      if (empty($form['grants']['checkboxes'][$grant_type])) {
        continue;
      }
      foreach (element_children($form['grants']['checkboxes'][$grant_type]) as $tid) {
        $checked = array_search($tid, $settings[$grant_type]) !== FALSE;
        $form['grants']['checkboxes'][$grant_type][$tid]['#value'] = $checked ? $tid : 0;
        $form['grants']['checkboxes'][$grant_type][$tid]['#checked'] = $checked ? TRUE : FALSE;
      }
    }
    $form['interference']['advanced']['priority']['#value'] = $settings['priority'];
    if ($settings['priority'] != 0) {
      $form['interference']['advanced']['#collapsed'] = FALSE;
    }
  }
  elseif (is_array(reset($form_state['values']['forum_access']['template']['taxonomy']))) {
    $template_tid = current(current($form_state['values']['forum_access']['template']['taxonomy']));
  }
  if (isset($template_tid)) {
    $form['template']['select_by_default']['#value'] = $template_tid && $template_tid == variable_get('forum_access_default_template_tid', 0);
    $form['template']['load_for_new']['#value'] = $template_tid && $template_tid == variable_get('forum_access_new_template_tid', 0);
  }
  return $form;
}