function _nodesymlinks_nodeapi_validate in NodeSymlinks 7
Same name and namespace in other branches
- 6 nodesymlinks.inc \_nodesymlinks_nodeapi_validate()
Implements hook_nodeapi() OP: Valide.
See also
nodesymlinks_nodeapi()
1 call to _nodesymlinks_nodeapi_validate()
- nodesymlinks_node_validate in ./
nodesymlinks.module - Implements hook_node_validate().
File
- ./
nodesymlinks.inc, line 40 - Main NodeSymlinks callbacks
Code
function _nodesymlinks_nodeapi_validate(&$node, $op) {
// Check if aliases are unique.
if (module_exists('path') && isset($node->menu['nodesymlinks']) && !empty($node->menu['nodesymlinks']['items'])) {
$items = (array) $node->menu['nodesymlinks']['items'];
$language = isset($node->language) ? $node->language : '';
$unique_paths = array();
if (variable_get('nodesymlinks_check_menuitem', 1) && empty($node->menu['link_title']) && count($items)) {
form_set_error('menu][link_title', t('You have some nodesymlinks defined but primary node menu item is empty. Please create node menu item first.'));
}
foreach ($items as $i => &$item) {
$item['alias']['path'] = $path = trim($item['alias']['path']);
if (!empty($item['alias']['path'])) {
// Check if paths are unique in this form.
if (in_array($path, $unique_paths)) {
form_set_error("menu][nodesymlinks][items][{$i}][alias][path", t('The path is already in use.'));
}
else {
$unique_paths[] = $path;
}
if (module_exists('pathauto')) {
// Check if the path is not empty when pathauto is switched off.
if (empty($item['alias']['pathauto']) && empty($item['alias']['path'])) {
form_set_error("menu][nodesymlinks][items][{$i}][alias][path", t('The path is empty.'));
}
else {
$system_path = nodesymlinks_create_item_path($item, $node);
if (db_query("SELECT COUNT(pid) FROM {url_alias} WHERE alias = :alias AND source <> :source AND language = :language", array(
':alias' => $path,
':source' => $system_path,
':language' => $language,
))
->fetchField()) {
form_set_error("menu][nodesymlinks][items][{$i}][alias][path", t('The path is already in use.'));
}
}
}
elseif (!empty($item['alias']['path'])) {
$system_path = nodesymlinks_create_item_path($item, $node);
if (db_query("SELECT COUNT(pid) FROM {url_alias} WHERE alias = :alias AND source <> :source AND language = :language", array(
':alias' => $path,
':source' => $system_path,
':language' => $language,
))
->fetchField()) {
form_set_error("menu][nodesymlinks][items][{$i}][alias][path", t('The path is already in use.'));
}
}
}
}
}
}