Алексей Федоров

Алексей Федоров

Был в сети 01 апреля 2020, 14:31
Заказы не принимаю
Не совсем понятно, что именно нужно делать. У меня была задача настроить автосборку фалов fb2, я глянул структуру формата, создал в «настойках типов содержимого» modx новый параметр с mime-типом text/xml и расширением .fb2 Сделал шаблон, в котором верстка создана по правилам формата (поскольку это в сути своей просто xml-файл с несколькими обязательными блоками все оказалось довольно просто). В этот шаблон поместил вызов pdoResources с подстановкой всех нужных полей в нужные блоки и все готово.

Структуру doc и excel не разбирал, поэтому по конкретике не подскажу, но можно примерно так же сделать. Единственная сложность — они представляют собой zip-архивы, в которых куча файлов типовые и их можно оставить постоянными. Для части файлов именно контентных можно сделать шаблон(ы?) и потом собирать все это в единый архив. Честно говоря, есть высокая вероятность, что проще сразу сделать сниппет и запускать сборку zip-архива c нужным расширением и содержимым на основе заполненных пользователем полей без всяких там отдельных шаблонов. Какие именно операции делать… не знаю, не влезал в эту тему. На вскидку, спросил у гугла, он отправил на хабр
Честная генерация DOCX на PHP
Зачем отдельный сниппет? Есть же фильтры
ifempty,default,empty, isempty Returns the input value if empty [[+name:default=`anonymous`]]
нет картинки — вставляем «умолчательную» с логотипом сайта)). Если хочется ничего не выводить после проверки условия, то, опять же, все уже есть — IF, но вызов сниппета в сниппете…
Вот именно, что
подключение картинок к разным ресурсам может быть организовано по разному
Соответственно, работать с PdoResources в разы удобно для частных случаев. Нужно просто сделать подходящий чанк. Как уже организуется массив картинок, через MIGX, ms2Gallery, еще как-то… от этого и пляшет вызов. Вот самое простое из примера по указанной ссылке.
<url>
    <loc>[[~[[+id]]]]</loc>
    <image:image>
      <image:loc>[[+tv.image1]]</image:loc>
    </image:image>
    <image:image>
      <image:loc>[[+tv.image2]]</image:loc>
    </image:image>
  </url>
Это дело вставляем в чанк и все готово… если картинки вставлены как две тв-шки)) Опять же картинок на ресурсе может быть разное количество. Тут от каждого случая нужно плясать, поэтому и говорю, что PdoResources нужен. Настроил выборку как нужно и вперед!

P.S.: Как-то я пропустил выход pdoSitemap XD Можно ведь и в него чанк в него поместить)) просто отредактировать с учетом всех нужных к передаче параметров)
Есть SEOTab и SEOPro в каком-то из них реализована возможность карты сайта, помимо этого, есть GoogleSiteMap (ссылки искать некогда, в репозитории компоненты есть). Но в сущности, любая карта сайта запросто организовывается при помощи PdoResources. Подключаем картинки, тв-параметры, все нужные поля документа, а потом создаем xml-документ с чанком нужного вида. тут отдельный компонент точно не нужен))
Я не буду смеяться по той причине, что самому очень хотелось бы увидеть вариант пагинации для ТикетКомментариев. Во-первых для пагинации нужно использовать pdoPage (ссылка на документацию). Это сниппет-обертка. Во-вторых комментарии имеют древовидную структуру — добавит кто-то ответ на коммент и все комментарии сдвинутся по страницам, плюс стоит ожидать проблем со ссылкой на непрочитанный комментарий (наверное, это еще проверить нужно).
Когда в Тикетах появится возможность оставлять недревовидные комментарии и появится ли вообще — неизвестно. Если бы такой функционал появился и при недревовидных комментах кнопка «Ответить» заменялась на кнопку «Цитировать», то это было бы ну оооочень круто). Возможно стоит открыт на эту цель краудфандинговый сбор =)
Короче, с пагинацией можно попробовать, если просто удалить кнопку «ответить» в чанке, но стоит ли?
Так, про чанки знаешь, уже хорошо) Есть чанк комментария для авторизованного пользователя, для гостя (неавторизованного), настройки самого сниппета. В первую очередь читай документацию, разбирайся (подробно!) что и за что отвечает. Документация TicketComments

Самая вероятная причина (на основе описания) — пустота в чанке оформления комментария для гостей. [[+comments]] — это плейсхолдер и его значение определяется сниппетом. Вместо него подставляется список комментариев. Для самих комменатриев используются свои чанки

&tplCommentAuth tpl.Tickets.comment.one.auth Чанк комментария для показа авторизованному пользователю.
&tplCommentGuest tpl.Tickets.comment.one.guest Чанк комментария для показа гостям.
&tplComments tpl.Tickets.comment.wrapper Чане обертка для всех комментариев страницы.
Как-то все сложно и непонятно… Вариант первый — сделать меню одноуровневым и проставлять галочки «показывать в меню», хоть до 5 вложения, все равно не появится (по крайней мере в pdoMenu это сделать очень легко). Вариант второй — что-то сделать с неизвестным сниппетом AuthorOrNormal, который по логике вещей отвечает за выборку. В PdoResources есть параметр для ограничения выборки страниц, скрытых в меню. Почему бы не воспользоваться им?