Доброго времени суток.
У меня сложилось такое впечатление, что на данном форуме не водятся специалисты.
Или просто не принято помогать =(. Еще ни на один из моих вопросов не ответили =(.
Но попытаю судьбу еще раз:
У меня проблема с модулем 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 при редактировании ноды на одном языке меняет алиас ноды другого языка.
Комментарии
У меня язык по умолчанию стоит Английский и всегда стоял.
Попробовал в первую очередь создать Английскйю ноду. А потом добавить перевод на русский.
Тоже самое:
При редактировании английской ноды, делает из алиаса для английской ноды,алиас для русской ноды.
И наоборот.
Хммм, неужели такое отношение ко мне из-за того где я живу?
дело не где живешь, а как часто такая проблема встречается. У меня вообще связка pathauto и i18 работали на своей волне, те для одной ноды есть синоним на странице, а для перевода нет синонима и пишется node/bla-bla. Поэтому drupal меня все больше и больше разочаровывает и я начинаю смотреть на другие движки (только не joomla или wp). главное, что с выходом 7ки ситуация ничем не лучше: да красивее стала, но функциональности не прибавилось, так одна мишура.
по гугли в нете мот найдешь ответ быстрее чем здесь дождешься.
Я думаю по ошибке не так то и сложно ее исправить, для тех кто разбирал подноготную модуля pathauto.
Ведь всего-лишь навсего модуль путает язык для текущей ноды.
Решение проблемы:
В модуле 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);
}
?>