Баг в "pdoResources"
Доброго времени суток!
Хотел перейти на pdoResources и наткнулся на крайне неприятный баг.
Версия pdoTools = 1.6.0 pl1
Задача:
Вывести документы у которых родитель — корень.
При этом их дочерние документы выводить нет необходимости.
Т.е. требуется создать типовое главное меню без вложений.
Вызов:
Выводятся вообще все документы. Т.е. совершенно наглым образом игнорится параметр depth.
Таким образом я не могу создать простейшее меню для простейшего сайта :(
getResources работает правильно… точнее, как ожидается, и выводит только топовые документы.
Хотел перейти на pdoResources и наткнулся на крайне неприятный баг.
Версия pdoTools = 1.6.0 pl1
Задача:
Вывести документы у которых родитель — корень.
При этом их дочерние документы выводить нет необходимости.
Т.е. требуется создать типовое главное меню без вложений.
Вызов:
[[pdoResources? &tpl=`tpl_top_menu` &parents=`0` &depth=`0`]]
Результат:Выводятся вообще все документы. Т.е. совершенно наглым образом игнорится параметр depth.
Таким образом я не могу создать простейшее меню для простейшего сайта :(
getResources работает правильно… точнее, как ожидается, и выводит только топовые документы.
Комментарии: 7
Правильно &depth=`1` — глубина на 1 от корня &showHidden=`0` — показывать только отображаемые в меню.
То то и оно, что getResources воспринимает параметр &depth=`0`.
При &depth=`1` работают одинакого и выводят «прямых потомков», что в купе с &parents=`0` означает «прямых потомков любых родителей», т.е. все документы дерева.
При &depth=`1` работают одинакого и выводят «прямых потомков», что в купе с &parents=`0` означает «прямых потомков любых родителей», т.е. все документы дерева.
&where=`{"parent":0}`
Да, так работает.
Эффект аналогичен указанию в getResources
Было бы логически правильно, добавить новый параметр:
Эффект аналогичен указанию в getResources
&depth=`0`
Было бы логически правильно, добавить новый параметр:
&parents=`-1` //выводить документы любых родителей
&parents=`0` //выводить документы корня
И похерить совместимость с огромных кол-вом уже установленных и работающих сниппетов.
После такого обновления, на рабочих сайтах вместо игнорирования родителя в выборке начнут показываться только документы из корня.
Будет весело — факт.
После такого обновления, на рабочих сайтах вместо игнорирования родителя в выборке начнут показываться только документы из корня.
Будет весело — факт.
Спору нет. Проще заплатку вписать с обработкой &depth=`0`, чтобы сохранить совместимость, как
с getRes так и со старыми pdoRes.
Либо использовать
вот только результатом недоволен никто.
P.P.S. А ещё вызывает недоумение, что по умолчанию depth=10. Видимо, самое распространённое меню
имеет 10 уровней вложенности :) Ну это философии ради…
с getRes так и со старыми pdoRes.
Либо использовать
[[pdoResources? &tpl=`tpl_top_menu` &parents=`0` &where=`{"parent":0}` &depth=`1`]]
P.S. У нас в Тольятти по такому принципу машины делают: «главное чтобы старые детали подошли»,вот только результатом недоволен никто.
P.P.S. А ещё вызывает недоумение, что по умолчанию depth=10. Видимо, самое распространённое меню
имеет 10 уровней вложенности :) Ну это философии ради…
Ни разу не видел сайта с глубиной вложения документов больше 10.
Ну и этот сниппет предназначен для вывода каталогов, а не построения меню — для него будет отдельный сниппет, позже.
P.S. Я никому не навязываю свои решения, ты всегда можешь вернуться к милому тормозному getResources.
Ну и этот сниппет предназначен для вывода каталогов, а не построения меню — для него будет отдельный сниппет, позже.
P.S. Я никому не навязываю свои решения, ты всегда можешь вернуться к милому тормозному getResources.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.