Алексей Яковлев

Алексей Яковлев

Был в сети 16 октября 2024, 16:17
Заказы не принимаю
Что-то грустно совсем стало. Обновил тикетс, занялся наладкой шаблонов комментариев, а тут бац, если раньше при логине через hybridauth (без попадания в группу) комментарии мог оставлять (почему непонятно), то теперь логично пишет, что «недостаточно прав». то есть пока залогиненного юзера вручную не втащить в группу с правами, он и комментировать не сможет… и теперь без решения проблемы с автоматическим добавлением нового юзера через hybridauth не получается наладить комментарии. Облазил настройки групп, пересоздал (откопировал) права TicketUserPolicy, перезагружал права, чистил кэш и завершал сеансы… не помогает. подскажите, куда лезть, что проверять…
В общем-то и фиг с ним, логинит, комментарии работают и спасибо. С текущим моим сайтом можно и вручную юзеров перетаскивать пока. Но, если найдется решение, было бы славно. С Modx и дополнениями от modx.pro как-то быстро к порядку привыкаешь )
не помогло. ( удалил все лишние группы, сделал новую, зарегился, но пользователь появился только в списке пользователей, в контроле доступа групп не виден. может настройки группы какие-то не правильные? контекст там новый добавлял, web-member-TicketUserPolicy…
в итоге со своей задачей разобрался двойной проверкой, а именно 1) является ли родитель контейнером, и если да то 2) совпадает ли его id с id родителя текущего документа, то есть уровень вложенности документа 2 (а не 3).
вывод в шаблоне выглядит так:
[[+isfolder:is=`0`:then=`[[+parent:is=`[[+id:pdoField=`{"field":"id", "top":2}`]]`:then=`[[+pagetitle]]`:else=`[[!pdoField? &id=`[[+parent]]` &field=`pagetitle`]]. [[+pagetitle]]`]]`:else=`[[+pagetitle]]`]]
вычурно, но авось кому пригодится.
таким образом, видимо, можно сравнивать документ на совпадение родителей и исключать лишнее из вывода для любых уровней, используя pdoField и параметр «top».
в итоге со своей задачей разобрался двойной проверкой, а именно 1) является ли родитель контейнером, и если да то 2) совпадает ли его id с id родителя текущего документа, то есть уровень вложенности документа 2 (а не 3).
вывод в шаблоне выглядит так:
[[+isfolder:is=`0`:then=`[[+parent:is=`[[+id:pdoField=`{"field":"id", "top":2}`]]`:then=`[[+pagetitle]]`:else=`[[!pdoField? &id=`[[+parent]]` &field=`pagetitle`]]. [[+pagetitle]]`]]`:else=`[[+pagetitle]]`]]
вычурно, но авось кому пригодится.
В идеале хотелось бы что-то вроде определителя уровня [[+id]]. Не знаю только, как можно было бы оформить эту логику в вызове внутри шаблона. Типа, if уровень вложенности +id = 3, то пишем pagetitle родителя и pagetitle +id, else (то есть в моем случае уровень вложенности +id = 2) пишем только pagetitle +id.?
В идеале хотелось бы что-то вроде определителя уровня [[+id]]. Не знаю только, как можно было бы оформить эту логику в вызове внутри шаблона. Типа, if уровень вложенности +id = 3, то пишем pagetitle родителя и pagetitle +id, else (то есть в моем случае уровень вложенности +id = 2) пишем только pagetitle +id.?
Захотел сделать разный вывод результатов pdoresources в зависимости от уровня вложенности документа, в одном, разумеется, шаблоне. То есть, если ресурс 3 уровня (Рубрика/Подрубрика/Документ), то про него выводить pagetitle родителя и pagetitle документа. А если ресурс 2-го уровня (Рубрика/Документ), чтоб выводился только pagetitle документа.
Вышеозначенные ссылки ничего не прояснили, как применить сниппет
getParentsAtLevel не вполне ясно.
Вариант с проверкой на контейнеры работает бессмысленно, вызов в шаблоне:
[[+isfolder:is=`0`:then=`[[!pdoField? &id=`[[+parent]]` &field=`pagetitle`]] - [[+pagetitle]]`:else=`[[+pagetitle]]`]]
То есть для случая 3-х уровневого (Рубрика/Подрубрика/Документ) выводится как надо pagetitle родителя и pagetitle документа, но ведь и для 2-х уровневого случая (Рубрика/Документ) то же самое получается. А тут как раз нужен один pagetitle. Не знаю, нужно ли пояснять, для чего это нужно и почему так, но я готов при необходимости, авось попроще решение найдется.
Может как-то из шаблона можно проверить есть ли у родителя родитель-контейнер? Если нет, то опять же выводить `пустоту` на месте pagetitle родителя? Кажется это решило бы вопрос, хоть и криво все это выглядит.