Вывод ссылок на соседние материалы ModX REVO
Привет, знающим в программировании. Интересует такой вопрос. Каким образом в MODX Revo можно реализовать вывод ссылок на соседние материалы? Типа как делают на информационных ресурсах, когда заходишь на статью, внизу есть заголовочек «Похожие статьи» и там ссылки на статьи схожие. Уже перерыл весь интернет, пробовал следующие стандартные плагины:
1. SelfLink
2. PdoTools
3. GetResources
Первые два вообще не то пальто. Последний сортирует через одно место и настроить толком ничего не смог. Думаю, может кто-нибудь уже реализовывал что-то подобное самописно? На самом-то деле задача не из сложных, мне даже не нужно, чтобы сниппет шерстил весь сайт по полям на схожесь. Было бы достаточно просто, чтобы появлялись ссылки на соседние ресурсы и все. Например, есть категория и статьи:
— Диеты
— Сыроедение (статья 1)
— Виды диет (статья 2)
— Рыбная диета (статья 3)
— Жесткие диеты (статья 4)
Нужно, чтобы в статье 1 были ссылки на статьи 2, 3, 4. В статье 2 были ссылки на статьи 1, 3, 4. В статье 3 были ссылки на статьи 1, 2, 4 и т.д.
1. SelfLink
2. PdoTools
3. GetResources
Первые два вообще не то пальто. Последний сортирует через одно место и настроить толком ничего не смог. Думаю, может кто-нибудь уже реализовывал что-то подобное самописно? На самом-то деле задача не из сложных, мне даже не нужно, чтобы сниппет шерстил весь сайт по полям на схожесь. Было бы достаточно просто, чтобы появлялись ссылки на соседние ресурсы и все. Например, есть категория и статьи:
— Сыроедение (статья 1)
— Виды диет (статья 2)
— Рыбная диета (статья 3)
— Жесткие диеты (статья 4)
Нужно, чтобы в статье 1 были ссылки на статьи 2, 3, 4. В статье 2 были ссылки на статьи 1, 3, 4. В статье 3 были ссылки на статьи 1, 2, 4 и т.д.
Комментарии: 24
docs.modx.pro/components/pdotools/snippets/pdoneighbors
Выводит ссылки на родителя, предыдущий, следующий и документ.
На сайте документации он же и выводит ссылки внизу каждой страницы.
Выводит ссылки на родителя, предыдущий, следующий и документ.
На сайте документации он же и выводит ссылки внизу каждой страницы.
Это один из пакетов PdoTools. Я про него писал, он толком не настраивается и не дает желаемого эффекта. Например, если у одного родителя 10 статей, например, он все равно выводит 3 ссылки и все. а нужно как в примере. Т.е. если статья номер 4, то ссылки дожны быть на статьи 1,2,3,5,6,7,8,9,10.
Используй docs.modx.pro/components/pdotools/snippets/pdoresources
В &resources укажи что-то типа "-[id]" — это исключит текущий документ из списка.
В &parents укажи id родителя.
И вызывай все это в каждой статье. Ну или в шаблоне статьи. pdoTools — шикарен!
В &resources укажи что-то типа "-[id]" — это исключит текущий документ из списка.
В &parents укажи id родителя.
И вызывай все это в каждой статье. Ну или в шаблоне статьи. pdoTools — шикарен!
Мы одновременно думаем =)))
=)
главное правильно)
главное правильно)
А чем тебе pdoResources не угодил?
Что-то типа такого:
Что-то типа такого:
[[pdoResources?
&tpl=`@INLINE <a href="[[~[[+id]]]]">[[+pagetitle]]</a>`
&parents=`[[*parent]]`
&resources=`-[[*id]]`
]]
То есть выбираешь всех соседей, а себя исключаешь из выборки.
Отлично! Стал вроде как выводить заголовки соседних ресурсов, но вот ссылки все на главную ставит.
А ты выведи код из &tpl в отдельный чанк, что-то типа этого:
&tpl=`tpl.links`
Или просто вставь uri вместо [[~[[+id]]]]:&tpl=`@INLINE <a href="[[+uri]]">[[+pagetitle]]</a>`
Или попробуй что-то ещё отсюда, если не хочешь чанки плодить: modx.pro/solutions/4385-modx-inline-pdotools/
Не, не помогает, все равно все ссылки на морду. Типа по умолчанию берет, т.к. не находит URL.
Попробуй указать так:
&tpl=`@INLINE <a href="{{~{{+id}}}}">{{+pagetitle}}</a>`
Так перестало вообще работать, не выводит ссылки.
Возможно ты где-то путаешь + c * или что-то ещё. Но это уже твои локальные проблемы, pdoResources даёт тебе то, что тебе нужно, просто тебе нужно его настроить под свой сайт (или сайт под него)
Видимо опечатались, в таком виде заработало: &tpl=`@INLINE [[+pagetitle]]`
да, но это просто вывело имя соседних ресурсов, а не ссылки…
Все заработало. Не сочтите за наглость и назойливость, а где и как можно настроить отображение вывода этих ссылок, ну чтобы он был не строчным, а в столбик, каждая ссылка на новой строчке?
В &tpl после закрывающего тега добавить тег переноса br
Огромное спасибо за помощь!
Вы можете помочь мне в последнем вопросе?
Есть еще последний вопрос ) Возможно ли реализовать такое.
Скрин меню для примера в приложенном файле: file.modx.pro/files/5/1/9/519a701f897139ad47efa8b3bf41850e.jpg
Могу ли я сделать так, для страницы «сыроедение меню» собрать похожие ссылки на статьи: «рыбная диета для похудения», «Жесткие диеты для быстрого похудения», «сыроедение польза или вред», «система эффективного перехода на сыроедение» и «принципы правильного питания для похудения». Т.е. получается ссылки с нескольких родительских категорий.
Т.е. здесь получается ведь главная родительская категория «Диета», дочерние «Различные виды диет», «Сыроедение», «Здоровое питание» и в каждой из них еще дочерние ресурсы.
Скрин меню для примера в приложенном файле: file.modx.pro/files/5/1/9/519a701f897139ad47efa8b3bf41850e.jpg
Могу ли я сделать так, для страницы «сыроедение меню» собрать похожие ссылки на статьи: «рыбная диета для похудения», «Жесткие диеты для быстрого похудения», «сыроедение польза или вред», «система эффективного перехода на сыроедение» и «принципы правильного питания для похудения». Т.е. получается ссылки с нескольких родительских категорий.
Т.е. здесь получается ведь главная родительская категория «Диета», дочерние «Различные виды диет», «Сыроедение», «Здоровое питание» и в каждой из них еще дочерние ресурсы.
Короче, чтобы ссылки собирались со всех статей основной родительской категории «Диеты»
как вариант, если включен pdoparser, в parents указать [[#[[*parent]].parent]]
Спасибо! Все заработало, но только есть один момент, выводятся и ссылки на страницы контейнеров: «Различные виды диет», «Сыроедение», «Здоровое питание», а их нужно исключить, т.к. там нет контента, а только описания к статьям и ссылки на них…
в pdoResources есть параметр hideContainers, нужно его включить
Спасибо! Теперь все работает идеально, то что нужно было.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.