[Решено]Pathauto i18n и редактирование материала

Главные вкладки

Аватар пользователя divined divined 11 января 2011 в 13:54

Доброго времени суток.
У меня сложилось такое впечатление, что на данном форуме не водятся специалисты.
Или просто не принято помогать =(. Еще ни на один из моих вопросов не ответили =(.
Но попытаю судьбу еще раз:

У меня проблема с модулем Pathauto в связке с i18n.

Например, создаю я материал на русском языке (пусть номер ноды 133), Pathauto создает путь для него node->title.

синоним1 node/133 Русский

Добавляю перевод для этой ноды (пусть номер 134), Pathauto создает путь для него node->title и меняет путь для русской ноды на [en]node->title. Все хорошо все работает.

синоним2 node/133 Русский
синоним2 node/134 Английский

Теперь редактируем (например англоязычную ноду 134), Pathauto меняет алиас для 133 ноды, а не для 134.
А вернее алиас для 134 записывает как алиас для 133:

синоним2 node/133 Русский
синоним2 node/133 Русский

Теперь для английской ноды нет алиаса. Редактируем русскую ноду. Теперь Pathauto ДОБАВЛЯЕТ алиас для английской ноды:

синоним2 node/133 Русский
синоним2 node/133 Русский
синоним2 node/134 Английский

Опять все работает.

Проблема в создании неограниченных копий алиасов при каждом редактировании ноды.
Почему Pathauto при редактировании ноды на одном языке меняет алиас ноды другого языка.

Комментарии

Аватар пользователя divined divined 11 января 2011 в 14:00

У меня язык по умолчанию стоит Английский и всегда стоял.

Попробовал в первую очередь создать Английскйю ноду. А потом добавить перевод на русский.
Тоже самое:

При редактировании английской ноды, делает из алиаса для английской ноды,алиас для русской ноды.
И наоборот.

Аватар пользователя MaNaX MaNaX 11 января 2011 в 18:43

дело не где живешь, а как часто такая проблема встречается. У меня вообще связка pathauto и i18 работали на своей волне, те для одной ноды есть синоним на странице, а для перевода нет синонима и пишется node/bla-bla. Поэтому drupal меня все больше и больше разочаровывает и я начинаю смотреть на другие движки (только не joomla или wp). главное, что с выходом 7ки ситуация ничем не лучше: да красивее стала, но функциональности не прибавилось, так одна мишура.

Аватар пользователя divined divined 12 января 2011 в 11:27

Я думаю по ошибке не так то и сложно ее исправить, для тех кто разбирал подноготную модуля pathauto.

Ведь всего-лишь навсего модуль путает язык для текущей ноды.

Аватар пользователя divined divined 14 января 2011 в 13:25

Решение проблемы:

В модуле path.module меняем:

<?php
  
else if ($path && $alias) {
    
// Check for existing aliases.
    
if ($alias == drupal_get_path_alias($path$language)) {
      
// There is already such an alias, neutral or in this language.
  
db_query("DELETE FROM {url_alias} WHERE dst = '%s' AND language = '%s'"$alias$language);
      
// Update the alias based on alias; setting the language if not yet done.
  
db_query("UPDATE {url_alias} SET src = '%s', dst = '%s', language = '%s' WHERE dst = '%s'"$path$alias$language$alias);
  + 
db_query("INSERT INTO {url_alias} (src, dst, language) VALUES ('%s', '%s', '%s')"$path$alias$language);
    }
?>