К содержанию

Сниппет articles - ссылки на соседние статьи

Всем привет!

Тут на днях столкнулся с проблемой: есть сайт (mot...ect.com), в нем 2 раздела: новости и статьи, оба организованы в формате блога с помощью сниппета articles. Появилась задача: нужно в каждой статье и в каждой новости, после основного контента, поставить ссылки, типа — «предыдущая новость» «следующая новость».

Я 2 дня рыл modx и гугл, толку ноль! Так понимаю, что у articles нет встроенного плейсхолдера для этой задачи… хотел наваять простенький сниппет, который будет возвращать ссылку по ID текущей страницы +, — 1, да вот незадача: все ресурсы от articles упрятаны в один контейнер, у каждого есть свой ID, но идентификаторы присваиваются статьям/новостям по времени их добавления! То есть, если последняя добавл.новость имеет id = 300, а статья — 295, то — если добавляем статью — ей присваивается id=301, а не 296… получается, что все ресурсы articles валятся в общую кучу, но в каждой из них есть своя метка принадлежности своему контейнеру… я так это понял!

К сожалению, pdotools не годится для этой задачи: проблема с настройкой сервера хостинга…

Пытался с помощью getResurces вывести — указав родительский контейнер, не могу сообразить как поставить сортировку (или фильтр), чтобы выводил соседние ресурсы…

Друзья, подскажите, в какую сторону глядеть??? Я в MODx новичок, система очччень нравится, огромное желание её освоить! Пока, к сожалению, пытаюсь набираться опыта у более взрослых коллег…

С уважением, Алексей.
Alexey
Alexey
14 августа 2015, 20:47
modx.pro
3 637
Реклама

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

Павел Ширяев
Павел Ширяев Проверенный
15 августа 2015, 12:56
Если articles использует в качестве статей стандартные ресурсы MODX, то должно подойти это:

siblingNav — документация

siblingNav — репозиторий
    Alexey
    Alexey Проверенный
    15 августа 2015, 19:44
    Павел, преогромное Вам спасибище!))) Выручили…

    Собственно, я практически был уверен, что должен существовать такой простенький скрипт, но —
    как ни странно — облазив гугл-яндекс, ничего похожего на этот вариант не получил в поисковой выдаче!
      Павел Ширяев
      Павел Ширяев Проверенный
      15 августа 2015, 20:35
      Обращайтесь :)
      Alexey
      Alexey Проверенный
      17 августа 2015, 00:48
      Надоумьте, пожалуйста!

      Сделал внизу каждой статьи блок ссылок в виде маркированного списка: строка-ссылка на следующую статью, строка с названием текущей статьи, 2 строки-ссылки на две предыдущие статьи… moto.proff-site.ru/news/akcziya_maks_min_snegohody_20140115

      Все работает, вот только 2 строки на 2 предыдущие новости выводятся в обратном порядке: 3 сверху идет более ранняя новость, а 4 строкой выводится более свежая… как можно изменить порядок вывода именно этих двух строк? Вариант sortBy в параметрах вызова сниппета не срабатывает…

      Вот сам вызов:

      <ul>
      [[!siblingNav? 
         &showHidden=`1`
         &prevTpl=`snprevtpl`
         &limit=`2`
         &nextTpl=`snnexttpl`
         &selfTpl=`snselftpl`
      ]]
      [[+sn.next]][[+sn.self]][[+sn.prevlinks]]
      </ul>
      Вот чанки:

      snnexttpl
      [[+_isactive:is=`1`:then=`<li>
      	<a href="[[~[[+id]]]]">[[+pagetitle]]</a></li>
              `:else=``]]
      snprevtpl
      [[+_isactive:is=`1`:then=`<li>
      	<a href="[[~[[+id]]]]">[[+pagetitle]]</a></li>
      	`:else=`
      	<
      	`]]
      snselftpl
      <li class="snself">
      	[[+pagetitle]]
      </li>
      Заранее спасибо!
        Alexey
        Alexey Проверенный
        17 августа 2015, 12:17
        Вроде, разобрался!

        Исправил вызов сниппета и последовательность вызова плейсхолдеров — заработало…

        <ul>
        [[!siblingNav? 
           &showHidden=`1`
           &prevTpl=`snprevtpl`
           &limit=`2`
           &nextTpl=`snnexttpl`
           &selfTpl=`snselftpl`
           &sortBy=`{"menuindex":"DESC"}`
        ]]
        [[+sn.prev]][[+sn.self]][[+sn.nextlinks]]
        </ul>
          Дмитрий Куликов
          Дмитрий Куликов Проверенный
          10 июня 2016, 12:22
          Можно ещё попробовать снипет pdoNeighbors из pdoTools
            Дмитрий Куликов
            Дмитрий Куликов Проверенный
            10 июня 2016, 12:24
            Простите, сразу не увидел что он вам не подходит
              Здоров Александр
              Здоров Александр Проверенный
              10 июня 2016, 13:19
              а вы вовремя ответили) не прошло и года…
              прям прямой смысл получился…
                Дмитрий Куликов
                Дмитрий Куликов Проверенный
                10 июня 2016, 13:21
                Ну может за это время проблема с хостингом завершилась и pdoTools удалось поставить)))
                  Alexey
                  Alexey Проверенный
                  10 июня 2016, 16:27
                  Нет, Дмитрий, хостинг, к сожалению, так же туп и невосприимчив к разработкам Василия.

                  Я жду сигнала хозяина, который практически созрел для переноса сайта на другой — более «правильный» — хостинг.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            10