1

Тема: Ошибка при удалении элемента дерева в админке (s2-dev-1713)

Роман, доброго времени суток!

Обнаружил интересное поведение в админке. При попытке удалить неопубликованный дочерний элемент (B), который является вложенным в другой неопубликованный элемент (A) он не удаляется. То есть он (B) перестаёт отображаться в админке, но при обновлении снова появляется.

Ответ сервера при удалении: ок 200.

А в консоли выдаёт ошибку:
Uncaught TypeError: Cannot call method 'replace' of undefined
http://2.firepic.org/2/images/2014-04/14/sql8u3t29b0d.png

Очень похоже на это.

Может ли это быть из-за длинных пингов до хостера, например?

14.04.2014 18:03:42. Текст был изменен (boo).

2

Re: Ошибка при удалении элемента дерева в админке (s2-dev-1713)

Не могу воспроизвести это поведение у себя.

Такая ошибка может возникать, если вы создаете сначала раздел А, и после этого дочернюю страницу Б, при этом сервер не получает запрос на удаление страницы Б (тогда при обновлении она появляется снова) раздела А. Или же от сервера не получено подтверждение создания раздела А (тогда возникает ошибка, как у вас на скриншоте).

3

Re: Ошибка при удалении элемента дерева в админке (s2-dev-1713)

Роман, я нашел-таки в чем дело.

Добавил строку с дампом по вашему совету. Всё дело в плагине с текстайл-форматированием. Он же свою таблицу создаёт. И хуки перехватывает. При включенном плагине получается, что аякс-запрос из админки отправляет запрос на удаление элемента из таблицы плагина (s2_textile_source).

То есть всё работает как надо, просто удаляется не тот элемент, а дополнительный:

string(49) "DELETE FROM s2_textile_source WHERE topic_id = 99" {"status":1}

При выключенном плагине удаление происходит из родной таблицы:

string(37) "DELETE FROM s2_articles WHERE id = 95" {"status":1}

В связи с этим вопрос: как правильно организовать, чтобы и плагин работал, и подобных ошибок не возникало?