- Patch #10603 by TDobes: bugfix: URL aliases got lost when deleting revision.

4.5.x
Dries Buytaert 2004-09-16 14:32:51 +00:00
parent 770f4f8a59
commit c4403eed12
2 changed files with 28 additions and 36 deletions

View File

@ -196,20 +196,8 @@ 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;
}
}
else {
$node->path = trim($node->path);
if ($node->path && !valid_url($node->path)) {
form_set_error('path', t('The path is invalid.'));
@ -217,7 +205,6 @@ function path_nodeapi(&$node, $op, $arg) {
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;
case 'form pre':
@ -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;

View File

@ -196,20 +196,8 @@ 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;
}
}
else {
$node->path = trim($node->path);
if ($node->path && !valid_url($node->path)) {
form_set_error('path', t('The path is invalid.'));
@ -217,7 +205,6 @@ function path_nodeapi(&$node, $op, $arg) {
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;
case 'form pre':
@ -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;