Суть трабла. При сохранении некоторых нод после внесения изменений в тайтл ноды появляется ошибка:
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '7n7p7A5ELn1_RosSW_K05qvV-u0MHGJTVW6dD_YcgGQ' for key 'hash': INSERT INTO {redirect} (hash, type, uid, source, source_options, redirect, redirect_options, language, status_code, count, access) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_placeholder_10); Array ( [:db_insert_placeholder_0] => 7n7p7A5ELn1_RosSW_K05qvV-u0MHGJTVW6dD_YcgGQ [:db_insert_placeholder_1] => redirect [:db_insert_placeholder_2] => 1 [:db_insert_placeholder_3] => catalog/bag/sumka-dlya-noutbuka-164-dicota-n22538p-motion-comfort [:db_insert_placeholder_4] => a:0:{} [:db_insert_placeholder_5] => node/9234 [:db_insert_placeholder_6] => a:0:{} [:db_insert_placeholder_7] => uk [:db_insert_placeholder_8] => 0 [:db_insert_placeholder_9] => 0 [:db_insert_placeholder_10] => 0 ) in drupal_write_record() (line 6861 of /includes/common.inc).
Судя по листингу ексепшна, не правильно записывается алиас, поскольку ошибка происходит при попытке записи в таблицу уже существующего хэша, который в траблице должен быть уникальным полем.
На сайте установлены:
Global Redirect
Pathauto
Redirect
Трабла появляется только для некоторых нод. Для большинства все работает нормально. В чем может быть проблемма?
Комментарии
Суть проблемы установил.
Сбой происходит в модуле redirect. Если в списке допустимых редиректов уже есть редирект, который мы пытаемся туда записать, то не срабатывает валидация редиректа и он допускается к сохранению.
Таким образом, не срабатывает функция валидации redirect_validate(). Проблема временно решена добавлением кода валидации в функцию redirect_save()
У кого-то еще возникала такая же проблема?