function _nodesymlinks_nodeapi_validate in NodeSymlinks 6
Same name and namespace in other branches
- 7 nodesymlinks.inc \_nodesymlinks_nodeapi_validate()
Implementation of hook_nodeapi() OP: Insert & Update.
See also
1 call to _nodesymlinks_nodeapi_validate()
- nodesymlinks_nodeapi in ./
nodesymlinks.module - Implementation of hook_nodeapi().
File
- ./
nodesymlinks.inc, line 40
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_result(db_query("SELECT COUNT(dst) FROM {url_alias} WHERE dst = '%s' AND src != '%s' AND language = '%s'", $path, $system_path, $language))) {
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_result(db_query("SELECT COUNT(dst) FROM {url_alias} WHERE dst = '%s' AND src != '%s' AND language = '%s'", $path, $system_path, $language))) {
form_set_error("menu][nodesymlinks][items][{$i}][alias][path", t('The path is already in use.'));
}
}
}
}
}
}