Tickets - при смене родительского ресурса в админке ошибка и меняется замороженный URL

MODX Revolution 2.7.0-pl

При смене в админке родительского ресурса у неопубликованного тикета в лог летит ошибка:
...../core/xpdo/om/xpdoquery.class.php: 764) Encountered empty IN condition with key id
Кроме того меняется замороженный URL.

У опубликованного ошибки вроде нет, но замороженный URL также меняется.

Подскажите, как поправить? Или это баг и требует исправления Василием?
Дмитрий
17 апреля 2019, 04:52
169
0

Комментарии: 7

Дмитрий
17 апреля 2019, 17:32
0
Так что же это может быть?
Где пустое значение?
Куда хоть копать, подскажите?
Дмитрий
17 апреля 2019, 18:04
0
На другом сайте ошибки нет, но меняется замороженный URL при смене родительского ресурса.
Дмитрий
23 апреля 2019, 19:05
0
Неужели никто не знает в чем может быть проблема. Ведь замороженный URL в Tickets не должен меняться.
Дмитрий
27 апреля 2019, 19:45
0
Подскажите хотя бы куда копать?
iWatchYouFromAfar
27 апреля 2019, 21:01
0
Тоже обнаружил такую ошибку, возможно @tolanych подскажет.
Дмитрий
27 апреля 2019, 21:49
0
Хорошо бы… Написал @tolanych, а также Василию (@Василий Наумкин) просьбы о помощи.
Возможно помощь уже близко :))
Дмитрий
30 апреля 2019, 01:27
+1
@tolanych по почте ответил:
Чтобы победить этот баг надо исследовать и протестировать все пограничные случаи как заморозка повлияет на тикеты и что надо будет еще пофиксить, т.е. займет какое-то время. По срокам ничего обещать не могу, на следующей неделе попробую выкроить время и разобраться.

Можешь себе пофиксить это поведение в этом фрагменте кода:

github.com/bezumkin/Tickets/blob/master/core/components/tickets/model/tickets/ticket.class.php#L621

убрать в условии
"$new_parent ||"

но на тестовом сервере на свой страх и риск, т.к. не просто так Василий это условие ставил, и значит есть вероятность, что что-то сломается.

Я пофиксил и оказалось, что уудалить в условии только лишь вышеуказанную часть условия недостаточно, поэтому я удалил еще и:
$this->isDirty('published') ||

То есть не удалил, а убрал пока из условия эти части условия, закомментировав их:
if (/*$new_parent ||*/ $this->isDirty('alias') || /*$this->isDirty('published') ||*/ ($this->get('uri_override') && !$this->get('uri'))) {
Теперь вроде все нормально и замороженный URL не меняется. Да и по моему ничего не сломалось.

Надеюсь что @tolanych, как и обещал, проверит все и разберется, как будет время.

Не поборол пока ошибку:
...../core/xpdo/om/xpdoquery.class.php: 764) Encountered empty IN condition with key id
Однако @tolanych посоветовал:
… попробуй в сист настройках MODX установи уровень логирования на максимальный: log_level = 4
Мб повезет и в лог запишутся действия или запросы предшествующие этой ошибке.
Эта ошибка, я так понимаю, не общая, а только у меня на одном сайте, поэтому буду искать причины.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.