D6: Patchauto не создает алиасы

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

Аватар пользователя amind amind 30 мая 2011 в 11:39

Сделал себе каталог по этой инструкции.
После этого Pathauto перестал создавать полноценно алиасы.
Должен сделать 860 алиасов таксономии, делает 278 и на этом затыкается.
При этом, когда пытаешься сделать еще алиасов - пишет что "сделал еще 100 алиасов", но смотришь список где "удалить алиасы" - цифра осталась прежней, 278.

Это лечится ?

Комментарии

Аватар пользователя amind amind 30 мая 2011 в 13:52

Вот что я вижу в "удалить синонимы"
Цифра 278 перманентной остается, не взирая на то, что я пытаюсь сделать еще синонимов, коих в целом должно быть 800+. Так было уже, работало до того как я сделал каталог. Что молго сломаться ?

Аватар пользователя penexe penexe 30 мая 2011 в 14:06

я понял фишку) жирный незачет pathauto за это.
кол-во алиасов которое он пишет это алисы для стандартных путей таксономии, тоесть taxonomy/term/, а мы на шаге1 изменили для таксономии пути на catalog/.

Решение:
выполнить код

db_query("DELETE FROM {url_alias} WHERE src LIKE 'catalog/%'");

например создать с этим кодом блок и 1 раз зайти на страницу.
или просто выполнить запрос в phpmyadmin
 DELETE FROM url_alias WHERE src LIKE 'catalog/%'

Аватар пользователя amind amind 30 мая 2011 в 16:21

Пока не выходит через phpmyadmin
Говорит что "#1146 - Table 'work.url_alias' doesn't exist"

может потому что у меня префикс _work ?

Аватар пользователя penexe penexe 30 мая 2011 в 16:22

amind wrote:
Пока не выходит через phpmyadmin
Говорит что "#1146 - Table 'work.url_alias' doesn't exist"

может потому что у меня префикс _work ?


думаю да

Аватар пользователя amind amind 30 мая 2011 в 18:02

Я предположение верное сделал, но что делать с этим предположением дальше я не знаю, не мастер я малахитный.. Smile Изменить данную тобой SQL строку мне надо ?

DELETE FROM _work_url_alias WHERE src LIKE 'catalog/%'
Удалено строк: 0. ( запрос занял 0.0192 сек. )

Проблема осталась Smile
278 из 860 алиасов создаются

UPD
дополнительное наблюдение: проблема с алиасами только того словаря, который используется при создания каталога по вашей статье. Другие словари таксономии получили свои алиасы без проблем.

Видимо, придется откатываться на старый бэкап и искать способ делать каталог иначе Sad

Аватар пользователя amind amind 30 мая 2011 в 19:15

смотрел, нету
я уже откатываюсь..
еще раз попробую заново
а там посмотрим

UPD
откатиться получилось только на сегодняшнее утро, где я уже сделал каталог по вашей статье и где перестал работать pathauto Smile
попробую обновить pathauto до .dev версии, может спасёт
но, честно говоря, опускаются руки, я не знаю как починить произошедшее
прошу помощи

UPD
откатился на позавчера, где каталога и в помине нет
создаю заново по статье
pathauto трогать не буду

Вообще, у меня подозрение, что механизм создания каталога в той статье как-то затрагивает функционал работы pathauto в будущем. Но доказать не могу, т.к. я проектник и аналитик, а не программист. Проверю - сообщу о полученных результатах.

Аватар пользователя amind amind 30 мая 2011 в 21:43

Если у кого-то не получается - рекомендую:
Перед созданием каталога - тщательно продумайте и сделайте все алиасы таксономии заранее.
Сделайте полный бэкап сайта (чтобы не мучаться как я сутки восстанавливая).
Не трогайте pathauto в шаге №3 этой статьи.
В PHP коде, предложенном Автором, ВНИМАТЕЛЬНО посмотрите на первые строки, где задаются переменные, например порядковый номер словаря таксономии, который вы будете использовать для создания каталога. Эту нужную цифру можно увидеть в админке таксономии, если навести мышкой на линк словаря.

В остальном инструкция 100% работоспособная. Автору благодарность.

P.S.
Я его таки-допилил, работает Smile

Чтиво по теме

Последний мой вопрос по теме:
Главная страница каталога получилась так:

А дочерняя получилась так:

Как подправить дочернюю страницу, чтобы была табличного вида, как и родительская, с счетчиком контента содержащегося в каждой категории (цифры в скобках) ?

UPD
Хотел поставить этой теме статус [РЕШЕНО] - не нашел как Smile

Аватар пользователя amind amind 31 мая 2011 в 3:31

Дополнительная информация после проведенной аналитики:
проблема с "не создаванием алиасов" была в Taxonomy Redirect.
Если его включать как написано в статье - с алиасами новыми беда.
Если его выключить - проблема с созданием новых алиасов исчезает.
Но, появляется беда с дочерними ссылками каталога.
Первая страница отображения каталога показана верно, с родителями и детями, но если кликнуть на родителя - будет просто страница этого термина, а не страница со ссылками на детей.

Идей по решению пока нет.

Аватар пользователя penexe penexe 31 мая 2011 в 9:18

Taxonomy Redirect нужен для того чтобы использовать разные представления для разных словарей таксономии, при этом сохраняя возможность создавать алиасы автоматически для этих терминов.
1) он нужен
2) после того ка вы убедились что алиасы для ващих терминов отсутствуют, ставьте галку для создания алиасов для терминов без них.
3) установите кол-во алиасов для одновременного создания штук 500. и обновляйте пока не напише что нечего обновлять.
4) проверьте через phpmyadmin если ли новые алиасы

Аватар пользователя amind amind 31 мая 2011 в 11:24

1. Поставил Taxonomy Redirect, сделал перенаправление как указано в статье, создавал алиасы 30 минут. Постоянно была надпись "создано 167 алиасов" и так без конца. Алиасы для словаря, который не затронут модулем Taxonomy Redirect - создались. Алиасы словаря, который указан для перенаправления в Taxonomy Redirect - не создалось ни одного.

2. Убрал перенаправление в Taxonomy Redirect, сам модуль не убирал. Алиасы для обоих словарей таксономии спокойно создаются.

Аватар пользователя amind amind 31 мая 2011 в 13:26

увы, пока я учусь друпалу, он живет у меня на домашнем линуксовом сервере Smile
могу скриншотов накидать например )

Аватар пользователя penexe penexe 31 мая 2011 в 15:00

вот что я понял)
1) алиасы нормально создадутся когда создаёте новый термин
2) для массового создания для каталога надо выполнить код:

$vid = 1; // заменить на id словаря таксономии
$path = 'catalog/';  // путь, тот что указывали в taxonomy_redirect (catalog/!tid), но без !tid
_pathauto_include();
  $result = db_query("SELECT tid, vid, name, description, src, dst FROM {term_data} LEFT JOIN {url_alias} ON CONCAT('%s', CAST(tid AS CHAR)) = src WHERE src IS NULL AND vid = %d", $path, $vid);
 
  $count = 0;
  $placeholders = array();
  while ($category = db_fetch_object($result)) {
    $count += _taxonomy_pathauto_alias($category, 'bulkupdate');
  }

  drupal_set_message(format_plural($count,
    'Bulk generation of terms completed, one alias generated.',
    'Bulk generation of terms completed, count aliases generated.'));

выполнить код можно через devel, по адресу site.ru/devel/php

Аватар пользователя amind amind 31 мая 2011 в 16:49

Патчавто:

получается так:

Ссылка в каталоге получается такая (и видно, что у родителя есть дети):

Если войти в родителя - детей нет:

Делаю Pathauto "catalog/all -> catalog" и Taxonomy redirect "catalog/!tid"


Смотрю снова каталог, ссылки изменились, убралось всё, остались только "tid"

Захожу по той же ссылке, что и выше, жду что напишут опять "здесь материала нет", но...

Поразмышляв, думаю что views, taxonomy redirect и pathauto не могут договориться между собой из-за моих кривых рук )

На всякий случай экспорт Views

И еще одна мысль: у нас получается одинаковый контент по ссылкам /catalog и /catalog/all
Гугль например такое отслеживает и якобы наказывает ректально, обзывая тебя при этом "sandbox". Точно не уверен, где-то на заборе в интернете про это прочитал.

Аватар пользователя amind amind 5 июня 2011 в 1:17

"penexe" wrote:
для массового создания для каталога надо выполнить код:

Сработало
Но Smile
1.Терминов таксономии у меня 1300 уже, а скрипт создал 500+ и больше не хочет.
2.Каждый термин таксономии у меня переведен на дополнительные языки. А скрипт эту взаимосвязь не учел, связь нарушена.

Вернул всё в исходное состояние. Стараюсь добыть хостинг