summaryrefslogtreecommitdiff
path: root/modules/path.module
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2004-09-16 14:32:51 +0000
committerDries Buytaert <dries@buytaert.net>2004-09-16 14:32:51 +0000
commitc4403eed121c115aa78bd35efce4b0197e96b55c (patch)
treef81278c6623151257a9547aa5b50e11befbe8dac /modules/path.module
parent770f4f8a59957e47c44489d51b96e7d8308f6021 (diff)
downloadbrdo-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.module32
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;