К содержанию

Вывод ссылок на соседние материалы 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 и т.д.
Вячеслав
Вячеслав
18 января 2015, 13:55
modx.pro
9 428
Реклама

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

Василий Наумкин
Василий Наумкин Администратор
18 января 2015, 17:01
docs.modx.pro/components/pdotools/snippets/pdoneighbors
Выводит ссылки на родителя, предыдущий, следующий и документ.

На сайте документации он же и выводит ссылки внизу каждой страницы.
    Вячеслав
    Вячеслав Старожил
    18 января 2015, 17:08
    Это один из пакетов PdoTools. Я про него писал, он толком не настраивается и не дает желаемого эффекта. Например, если у одного родителя 10 статей, например, он все равно выводит 3 ссылки и все. а нужно как в примере. Т.е. если статья номер 4, то ссылки дожны быть на статьи 1,2,3,5,6,7,8,9,10.
      Андрей Сухомозгий
      Андрей Сухомозгий Проверенный
      18 января 2015, 17:21
      Используй docs.modx.pro/components/pdotools/snippets/pdoresources
      В &resources укажи что-то типа "-[id]" — это исключит текущий документ из списка.
      В &parents укажи id родителя.

      И вызывай все это в каждой статье. Ну или в шаблоне статьи. pdoTools — шикарен!
      Василий Столейков
      Василий Столейков Проверенный
      18 января 2015, 17:21
      А чем тебе pdoResources не угодил?
      Что-то типа такого:
      [[pdoResources? 
          &tpl=`@INLINE <a href="[[~[[+id]]]]">[[+pagetitle]]</a>` 
          &parents=`[[*parent]]` 
          &resources=`-[[*id]]`
      ]]
      То есть выбираешь всех соседей, а себя исключаешь из выборки.
        Вячеслав
        Вячеслав Старожил
        18 января 2015, 17:32
        Отлично! Стал вроде как выводить заголовки соседних ресурсов, но вот ссылки все на главную ставит.
          Василий Столейков
          Василий Столейков Проверенный
          18 января 2015, 17:36
          А ты выведи код из &tpl в отдельный чанк, что-то типа этого:
          &tpl=`tpl.links`
          Или просто вставь uri вместо [[~[[+id]]]]:
          &tpl=`@INLINE <a href="[[+uri]]">[[+pagetitle]]</a>`
          Или попробуй что-то ещё отсюда, если не хочешь чанки плодить: modx.pro/solutions/4385-modx-inline-pdotools/
            Вячеслав
            Вячеслав Старожил
            18 января 2015, 17:40
            Не, не помогает, все равно все ссылки на морду. Типа по умолчанию берет, т.к. не находит URL.
            Василий Наумкин
            Василий Наумкин Администратор
            18 января 2015, 17:39
            Попробуй указать так:
            &tpl=`@INLINE <a href="{{~{{+id}}}}">{{+pagetitle}}</a>`
              Вячеслав
              Вячеслав Старожил
              18 января 2015, 17:41
              Так перестало вообще работать, не выводит ссылки.
                Василий Столейков
                Василий Столейков Проверенный
                18 января 2015, 17:57
                Возможно ты где-то путаешь + c * или что-то ещё. Но это уже твои локальные проблемы, pdoResources даёт тебе то, что тебе нужно, просто тебе нужно его настроить под свой сайт (или сайт под него)
                Вячеслав
                Вячеслав Старожил
                18 января 2015, 17:56
                Видимо опечатались, в таком виде заработало: &tpl=`@INLINE [[+pagetitle]]`
                  Василий Столейков
                  Василий Столейков Проверенный
                  18 января 2015, 17:58
                  да, но это просто вывело имя соседних ресурсов, а не ссылки…
                    Вячеслав
                    Вячеслав Старожил
                    18 января 2015, 18:00
                    Все заработало. Не сочтите за наглость и назойливость, а где и как можно настроить отображение вывода этих ссылок, ну чтобы он был не строчным, а в столбик, каждая ссылка на новой строчке?
                      Василий Столейков
                      Василий Столейков Проверенный
                      18 января 2015, 18:15
                      В &tpl после закрывающего тега добавить тег переноса br
                        Вячеслав
                        Вячеслав Старожил
                        18 января 2015, 18:18
                        Огромное спасибо за помощь!
                  Вячеслав
                  Вячеслав Старожил
                  19 января 2015, 11:27
                  Вы можете помочь мне в последнем вопросе?
          Вячеслав
          Вячеслав Старожил
          18 января 2015, 18:24
          Есть еще последний вопрос ) Возможно ли реализовать такое.
          Скрин меню для примера в приложенном файле: file.modx.pro/files/5/1/9/519a701f897139ad47efa8b3bf41850e.jpg
          Могу ли я сделать так, для страницы «сыроедение меню» собрать похожие ссылки на статьи: «рыбная диета для похудения», «Жесткие диеты для быстрого похудения», «сыроедение польза или вред», «система эффективного перехода на сыроедение» и «принципы правильного питания для похудения». Т.е. получается ссылки с нескольких родительских категорий.
          Т.е. здесь получается ведь главная родительская категория «Диета», дочерние «Различные виды диет», «Сыроедение», «Здоровое питание» и в каждой из них еще дочерние ресурсы.
            Вячеслав
            Вячеслав Старожил
            18 января 2015, 18:25
            Короче, чтобы ссылки собирались со всех статей основной родительской категории «Диеты»
              Руслан Кундиус
              Руслан Кундиус Старожил
              19 января 2015, 17:36
              как вариант, если включен pdoparser, в parents указать [[#[[*parent]].parent]]
                Вячеслав
                Вячеслав Старожил
                19 января 2015, 18:03
                Спасибо! Все заработало, но только есть один момент, выводятся и ссылки на страницы контейнеров: «Различные виды диет», «Сыроедение», «Здоровое питание», а их нужно исключить, т.к. там нет контента, а только описания к статьям и ссылки на них…
                  Руслан Кундиус
                  Руслан Кундиус Старожил
                  19 января 2015, 18:53
                  в pdoResources есть параметр hideContainers, нужно его включить
                    Вячеслав
                    Вячеслав Старожил
                    19 января 2015, 19:02
                    Спасибо! Теперь все работает идеально, то что нужно было.
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              24