function ctools_node_content_type_edit_form_validate
Validate the node selection.
File
-
plugins/
content_types/ node/ node.inc, line 181
Code
function ctools_node_content_type_edit_form_validate(&$form, &$form_state) {
if ($form_state['op'] != 'add') {
return;
}
$nid = $form_state['values']['nid'];
$preg_matches = array();
$match = preg_match('/\\[id: (\\d+)\\]/', $nid, $preg_matches);
if (!$match) {
$match = preg_match('/^id: (\\d+)/', $nid, $preg_matches);
}
if ($match) {
$nid = $preg_matches[1];
}
if (is_numeric($nid)) {
$node = db_query('SELECT nid, status FROM {node} WHERE nid = :nid', array(
':nid' => $nid,
))->fetchObject();
}
else {
$node = db_query('SELECT nid, status FROM {node} WHERE LOWER(title) = LOWER(:title)', array(
':title' => $nid,
))->fetchObject();
}
if ($node) {
$form_state['values']['nid'] = $node->nid;
}
if (!($node || preg_match('/^[@%]\\d+$/', $nid)) || empty($node->status) && !user_access('administer nodes')) {
form_error($form['nid'], t('Invalid node'));
}
}