From c4403eed121c115aa78bd35efce4b0197e96b55c Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Thu, 16 Sep 2004 14:32:51 +0000
Subject: [PATCH] - Patch #10603 by TDobes: bugfix: URL aliases got lost when
 deleting revision.

---
 modules/path.module      | 32 ++++++++++++++------------------
 modules/path/path.module | 32 ++++++++++++++------------------
 2 files changed, 28 insertions(+), 36 deletions(-)

diff --git a/modules/path.module b/modules/path.module
index 20348d592944..70913a8dc8f8 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;
diff --git a/modules/path/path.module b/modules/path/path.module
index 20348d592944..70913a8dc8f8 100644
--- a/modules/path/path.module
+++ b/modules/path/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;
-- 
GitLab