Hi,

I experience the same problem as described in #20 here:
http://drupal.org/node/614832#comment-2378430

This occurs on some nodes. On these nodes if I set a custom alias, no problem. But if I reedit the node and check the autoalias checkbox, no way : after saving, the autoalias get unchecked and the old custom alias is kept in use.

This doesn't happen for a particular node type: in a given node type, some nodes will behave correctly and some not.

Any clue?

Comments

gmclelland’s picture

I am experiencing this problem too. I am using [menupath-raw] for my page and panel content types. Does anyone know what is going on with this?

tahiticlic’s picture

I'm using [termpath-raw].

Izz ad-Din’s picture

same problem, seems totally random.

Izz ad-Din’s picture

Priority: Normal » Critical
heyyo’s picture

same error for me. I really don't understand the link between all those nodes not aliased

dave reid’s picture

Priority: Critical » Normal
Status: Active » Postponed (maintainer needs more info)

Bumping priority down to normal unless more information can be provided on exactly how this can be reproduced.

zoltán balogh’s picture

Subscribing. The 6.x-2.x-dev release is very often updated in these days. I think, the value of the Automatic alias checkbox is lost somewhere in the space, but I do not know, which release produced this first in these days. But now, the current 6.x-2.x-dev release also producing this. Pathauto does not generate an alias in some cases. Randomly.

zoltán balogh’s picture

I wrote a possible solution: #720844: Conflict with the Pathauto module

If anybody have this problem too, than debug hook_form_alter, like this:

function pathauto_form_alter(&$form, $form_state, $form_id) {
  // Process only node forms.
  if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] .'_node_form' == $form_id) {
    $node = $form['#node'];
    $pattern = FALSE;

drupal_set_message($form['type']['#value']);
    // Find if there is an automatic alias pattern for this node type.
    if (isset($form['language'])) {
      $language = isset($form['language']['#value']) ? $form['language']['#value'] : $form['language']['#default_value'];
      $pattern = trim(variable_get('pathauto_node_'. $form['type']['#value'] .'_'. $language .'_pattern', ''));
    }
    if (!$pattern) {
      $pattern = trim(variable_get('pathauto_node_'. $form['type']['#value'] .'_pattern', ''));
      if (!$pattern) {
        $pattern = trim(variable_get('pathauto_node_pattern', ''));
      }
    }
drupal_set_message($pattern);

    // If there is a pattern, show the automatic alias checkbox.
    if ($pattern) {
      if (!isset($node->pathauto_perform_alias)) {
        if (!empty($node->nid)) {
          // If this is not a new node, compare it's current alias to the
          // alias that would be genereted by pathauto. If they are the same,
          // then keep the automatic alias enabled.
          _pathauto_include();
          $placeholders = pathauto_get_placeholders('node', $node);
          $pathauto_alias = pathauto_create_alias('node', 'return', $placeholders, "node/{$node->nid}", $node->nid, $node->type, $node->language);
drupal_set_message("{$node->path} - {$pathauto_alias} ");

The last line is the most informative. If thats are different, then pathauto will turn off the automatic alias generation.
But why different??? Which module does it? Search the REASON!

dave reid’s picture

Status: Postponed (maintainer needs more info) » Fixed

Zoltan provides good debugging info. Pathauto compares the current url alias to what would be the current generated alias. If they're different, it unchecks the checkbox.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.