diff --git a/modules/path.module b/modules/path.module index 20348d59294..70913a8dc8f 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 20348d59294..70913a8dc8f 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;