diff options
author | Dries Buytaert <dries@buytaert.net> | 2004-09-16 14:32:51 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2004-09-16 14:32:51 +0000 |
commit | c4403eed121c115aa78bd35efce4b0197e96b55c (patch) | |
tree | f81278c6623151257a9547aa5b50e11befbe8dac /modules/path.module | |
parent | 770f4f8a59957e47c44489d51b96e7d8308f6021 (diff) | |
download | brdo-c4403eed121c115aa78bd35efce4b0197e96b55c.tar.gz brdo-c4403eed121c115aa78bd35efce4b0197e96b55c.tar.bz2 |
- Patch #10603 by TDobes: bugfix: URL aliases got lost when deleting revision.
Diffstat (limited to 'modules/path.module')
-rw-r--r-- | modules/path.module | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/modules/path.module b/modules/path.module index 20348d592..70913a8dc 100644 --- a/modules/path.module +++ b/modules/path.module @@ -196,27 +196,14 @@ function path_form($edit = '') { */ function path_nodeapi(&$node, $op, $arg) { if (user_access('create url aliases') || user_access('administer url aliases')) { - switch ($op) { case 'validate': - // is_null provides a mechanism for us to determine if this is the first - // viewing of the form. If it is the first time, load the alias, if it isn't - // (i.e., user has clicked preview) let them work with their current form alias. - if (is_null($node->path)) { - $path = "node/$node->nid"; - $alias = drupal_get_path_alias($path); - if ($alias != $path) { - $node->path = $alias; - } + $node->path = trim($node->path); + if ($node->path && !valid_url($node->path)) { + form_set_error('path', t('The path is invalid.')); } - else { - $node->path = trim($node->path); - if ($node->path && !valid_url($node->path)) { - form_set_error('path', t('The path is invalid.')); - } - else if (db_result(db_query("SELECT COUNT(dst) FROM {url_alias} WHERE dst = '%s' AND src != '%s'", $node->path, "node/$node->nid"))) { - form_set_error('path', t('The path is already in use.')); - } + else if (db_result(db_query("SELECT COUNT(dst) FROM {url_alias} WHERE dst = '%s' AND src != '%s'", $node->path, "node/$node->nid"))) { + form_set_error('path', t('The path is already in use.')); } break; @@ -227,6 +214,14 @@ function path_nodeapi(&$node, $op, $arg) { } return $output; + case 'load': + $path = "node/$node->nid"; + $alias = drupal_get_path_alias($path); + if ($alias != $path) { + $node->path = $alias; + } + break; + case 'insert': // Don't try to insert if path is NULL. We may have already set // the alias ahead of time. @@ -234,6 +229,7 @@ function path_nodeapi(&$node, $op, $arg) { path_set_alias("node/$node->nid", $node->path); } break; + case 'update': path_set_alias("node/$node->nid", $node->path, $node->pid); break; |