You are here

function views_plugin_argument_validate_node::validate_form in Views (for Drupal 7) 6.2

Overrides views_plugin_argument_validate::validate_form

File

modules/node/views_plugin_argument_validate_node.inc, line 13
Contains the 'node' argument validator plugin.

Class

views_plugin_argument_validate_node
Validate whether an argument is an acceptable node.

Code

function validate_form(&$form, &$form_state) {
  $types = node_get_types();
  foreach ($types as $type => $info) {
    $options[$type] = check_plain(t($info->name));
  }
  $arg = $this
    ->get_argument();
  if (empty($arg)) {
    $arg = array();
  }
  $form[$this->option_name] = array(
    '#type' => 'checkboxes',
    '#prefix' => '<div id="edit-options-validate-argument-node-type-wrapper">',
    '#suffix' => '</div>',
    '#title' => t('Types'),
    '#options' => $options,
    '#default_value' => $arg,
    '#description' => t('If you wish to validate for specific node types, check them; if none are checked, all nodes will pass.'),
    '#process' => array(
      'expand_checkboxes',
      'views_process_dependency',
    ),
    '#dependency' => array(
      'edit-options-validate-type' => array(
        $this->id,
      ),
    ),
  );
  $form['validate_argument_node_access'] = array(
    '#type' => 'checkbox',
    '#title' => t('Validate user has access to the node'),
    '#default_value' => !empty($this->argument->options['validate_argument_node_access']),
    '#process' => array(
      'views_process_dependency',
    ),
    '#dependency' => array(
      'edit-options-validate-type' => array(
        $this->id,
      ),
    ),
  );
  $form['validate_argument_nid_type'] = array(
    '#type' => 'select',
    '#title' => t('Argument type'),
    '#options' => array(
      'nid' => t('Node ID'),
      'nids' => t('Node IDs separated by , or +'),
    ),
    '#default_value' => isset($this->argument->options['validate_argument_nid_type']) ? $this->argument->options['validate_argument_nid_type'] : 'nid',
    '#process' => array(
      'views_process_dependency',
    ),
    '#dependency' => array(
      'edit-options-validate-type' => array(
        $this->id,
      ),
    ),
  );
}