You are here

function panels_context_node_settings_form_validate in Panels 6.2

Same name and namespace in other branches
  1. 5.2 contexts/node.inc \panels_context_node_settings_form_validate()

Validate a node.

1 string reference to 'panels_context_node_settings_form_validate'
panels_node_panels_contexts in contexts/node.inc
@file contexts/node.inc

File

contexts/node.inc, line 126
contexts/node.inc

Code

function panels_context_node_settings_form_validate($form, &$form_values, &$form_state) {

  // Validate the autocomplete
  if (empty($form_values['external']) && empty($form_values['nid']) && empty($form_values['node'])) {
    form_error($form['node'], t('You must select a node.'));
    return;
  }
  if (empty($form_values['node'])) {
    return;
  }
  $nid = $form_values['node'];
  $preg_matches = array();
  $match = preg_match('/\\[nid: (\\d+)\\]/', $nid, $preg_matches);
  if (!$match) {
    $match = preg_match('/^nid: (\\d+)/', $nid, $preg_matches);
  }
  if ($match) {
    $nid = $preg_matches[1];
  }
  if (is_numeric($nid)) {
    $node = db_fetch_object(db_query(db_rewrite_sql("SELECT n.nid FROM {node} n WHERE n.nid = %d"), $nid));
  }
  else {
    $node = db_fetch_object(db_query(db_rewrite_sql("SELECT n.nid FROM {node} n WHERE LOWER(n.title) = LOWER('%s')"), $nid));
  }
  if (!$node) {
    form_error($form['node'], t('Invalid node selected.'));
  }
  else {
    form_set_value($form['nid'], $node->nid, $form_state);

    // $form_values['nid'] = $node->nid;
  }
}