You are here

function csm_form_alter in Custom Submit Messages 6

Same name and namespace in other branches
  1. 7 csm.module \csm_form_alter()

Implements hook_form_alter().

File

./csm.module, line 11
The main module file for Custom Submit Messages.

Code

function csm_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'node_type_form' && isset($form['identity']['type'])) {
    if (user_access('change ' . $form['#node_type']->type . ' submit messages')) {

      // If the current user has the correct permissions, add submit message
      // setting fields to the form
      $form['csm'] = array(
        '#type' => 'fieldset',
        '#title' => t('Submit message settings'),
        '#collapsible' => TRUE,
        '#collapsed' => TRUE,
      );
      global $language;
      $current_lang = $language->language;

      // Add submit message subsections for each language
      foreach (language_list() as $lang => $details) {
        $form['csm'][$lang] = _csm_lang_fieldsets($lang, $form['#node_type']->type);
        $form['csm'][$lang]['#title'] = t($details->name);
        if ($lang == $current_lang) {
          $form['csm'][$lang]['#collapsed'] = FALSE;
        }
      }
    }
    if (user_access('change ' . $form['#node_type']->type . ' creation page title')) {

      // If the current user has the correct permissions, add node creation
      // page title field setting fields to the form
      $form['create_form_title'] = array(
        '#type' => 'fieldset',
        '#title' => t('Node creation page title'),
        '#collapsible' => TRUE,
        '#collapsed' => TRUE,
      );

      // Add create form title subsections for each language
      foreach (language_list() as $lang => $details) {
        $form['create_form_title'][$lang] = _csm_lang_fieldsets($lang, $form['#node_type']->type, 'title');
        $form['create_form_title'][$lang]['#title'] = t($details->name);
        if ($lang == $current_lang) {
          $form['create_form_title'][$lang]['#collapsed'] = FALSE;
        }
      }
      $form['create_form_title']['view']['token_help'] = $form['csm']['view']['token_help'] = array(
        '#title' => t('Replacement patterns'),
        '#type' => 'fieldset',
        '#collapsible' => TRUE,
        '#collapsed' => TRUE,
      );
      $form['create_form_title']['view']['token_help']['help'] = $form['csm']['view']['token_help']['help'] = array(
        '#value' => theme('token_help', 'node'),
      );
    }
  }
  elseif ($form['#id'] == 'node-form' && $form['nid']['#value'] == NULL && empty($form_state['post'])) {
    global $language;
    $title = variable_get('csm_form_title_' . $language->language . '_' . $form['type']['#value'], '');
    if ($title) {
      drupal_set_title(check_plain(token_replace($title, 'node', $form['#node'])));

      // Log a system message.
      watchdog('csm', '@type: node creation page title changed using Custom Submit Messages.', array(
        '@type' => $node->type,
      ), WATCHDOG_NOTICE);
    }
  }
  return;
}