You are here

function weight_form_node_type_form_alter in Weight 7.2

Implements hook_form_FORM_ID_alter().

File

./weight.module, line 238

Code

function weight_form_node_type_form_alter(&$form, &$form_state) {
  if (!empty($form_state['values']['weight_range'])) {
    $range = $form_state['values']['weight_range'];
  }
  else {
    if ($form['#node_type']->type) {
      if (isset($settings['range'])) {
        $range = $settings['range'];
      }
    }
    if (!isset($range)) {
      $range = 20;
    }
  }
  $form['weight_settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('Weight Settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#group' => 'additional_settings',
    '#access' => user_access('assign node weight'),
  );
  $form['weight_settings']['weight_enabled'] = array(
    '#type' => 'radios',
    '#title' => t('Enable'),
    '#description' => t('Enable weight for this content type?'),
    '#options' => array(
      t('No'),
      t('Yes'),
    ),
    '#default_value' => isset($settings['enabled']) ? $settings['enabled'] : 0,
  );
  $form['weight_settings']['weight_range'] = array(
    '#type' => 'radios',
    '#title' => t('Weight Range'),
    '#description' => t('This will be the range available when selecting a weight.'),
    '#options' => array(
      10 => '± 10',
      20 => '± 20',
      50 => '± 50',
      100 => '± 100',
    ),
    '#default_value' => $range,
    '#ajax' => array(
      'callback' => 'weight_range_callback',
      'wrapper' => 'weight-default',
      'method' => 'replace',
    ),
  );
  $form['weight_settings']['weight_menu'] = array(
    '#type' => 'radios',
    '#title' => t('Use Menu Weight'),
    '#description' => t('Use the menu weight of the node, if it has one.'),
    '#options' => array(
      t('No'),
      t('Yes'),
    ),
    '#default_value' => isset($settings['menu_weight']) ? $settings['menu_weight'] : 0,
  );
  $form['weight_settings']['weight_default'] = array(
    '#type' => 'select',
    '#title' => t('Default Weight'),
    '#description' => t('This weight will be applied to nodes if none is selected.'),
    '#options' => _weight_get_options($range),
    '#default_value' => isset($settings['default']) ? $settings['default'] : 0,
    '#prefix' => '<div id="weight-default">',
    '#suffix' => '</div>',
  );
  $form['weight_settings']['sync_translations'] = array(
    '#type' => 'radios',
    '#title' => t('Sync translations'),
    '#description' => t('When changing the weight of a node, also update it\'s translations.'),
    '#options' => array(
      t('No'),
      t('Yes'),
    ),
    '#default_value' => isset($settings['sync_translations']) ? $settings['sync_translations'] : 0,
  );
  $form['weight_settings']['clear_all'] = array(
    '#type' => 'checkbox',
    '#title' => t('Clear all weights'),
    '#description' => t('If selected, all weights for nodes of this type will be cleared.'),
  );
  $form['additional_settings']['#attached']['js'][] = drupal_get_path('module', 'weight') . '/weight.js';
  $form['#submit'][] = 'weight_node_type_form_submit';
}