We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 37535
    • 8 Posts
    Доброго времени суток всем!
    Версия Modx Revo 2.2.4. Проблема следующая (думаю будет актуально для многих, т.к. применимо не только к моему случаю) есть ресурс имеющий дочерние документы, документы имеют текстовый TV для выбора id привязанной к нему галереи (используется Gallery 1.5.2). Нужно на родительской странице вывести все галереи привязанные к дочерним ресурсам.
    Вызываю на странице getResources:
    [[!getResources? &parents=`[[*id]]` &tpl=`tplGalleryAll` &includeContent=`1` &includeTVs=`1` &processTVs=`1` &tvPrefix=`` &sortby=`{"publishedon":"DESC"}`  &limit=`20` &showHidden=`1` &depth=`0`]] 

    В чанке tplGalleryAll устанавливаю вызов Gallery:
    [[!GalleryAlbums? &toPlaceholder=`GalleryAlbums` &parent=`[[+gal]]` &limit=`0` &albumCoverSort=`rank` &prominentOnly=`0` &rowTpl=`GalAlbumRowTpl` &thumbWidth=`80` &thumbHeight=`80`]]
              
    [[!Gallery? &checkForRequestTagVar=`1` &toPlaceholder=`Gallery` &useCss=`0` &containerTpl=`GalleryAlbumTpl` &thumbWidth=`120` &thumbHeight=`120` &thumbTpl=`GalItemThumb` &imageWidth=`800` &imageHeight=`800`]]
            
    [[!If? &subject=`[[+Gallery]]` &operator=`isempty` &then=`
    [[+GalleryAlbums]]
    ` &else=`
    [[+Gallery]]

    Загвоздка в том, что MODX запускает в шаблоне getResources выполнение сниппета GalleryAlbums раньше чем присваивает плейсхолдеру [[+gal]] его значение (сниппет видит вместо какого-то конкретного числового значения плейсхолдера саму надпись
    "[[+gal]]"
    и естественно не выводит никаких галерей).
    Я описал именно мой случай, но эта же проблема встречается всегда когда мы пытаемся запустить сниппет, использующий плейсхолдеры, из чанка, используемого другим сниппетом.
    Помогите, пожалуйста, как можно побороть или обойти это неудобство? (( [ed. note: nevolov last edited this post 14 years, 2 months ago.]
      • 40089
      • 34 Posts

      Grab only the albums with a parent album with this ID. Remember to set showAll to 0, otherwise it won't work!
      Мне кажется Вы забыли параметр showAll
        • 37535
        • 8 Posts
        Мне кажется Вы забыли параметр showAll
        Это да, действительно забыл, просто в галереях родитель один был, поэтому итак работало)) Но установка параметра showAll, на суть проблемы не влияет, плейсхолдер по прежнему не передает значения.
          • 40089
          • 34 Posts
          У меня во вложенном снипете MIGX плейсхолдеры не сьедаются. Я так понимаю, что это у Вас TV параметр. Если выполняется снипет раньше парсера getResources попробуйте вариант
          [[*gal]]
          
            • 37535
            • 8 Posts
            Да, TV. Я в старте топика об этом писал.
            [[*gal]]
            тут уже никак не пойдет (хотя и знал, но все равно попробовал ради эксперимента - безрезультатно), т.к. работаем не с самим документом здесь, а с тем, что getResources спарсил... В общем я выход один только вижу - вместо
            [[+gal]]
            подставлять какой-либо сниппет который в нужный момент будет получать нужное значение плейсхолдера. Это точно получится, пробовал подставлять просто цифры используя в подстановочном сниппете просто echo, выводящее какое либо число - так все срабатывает! Только вот полноценный сниппет для получения нужного значения не получается написать никак, не силен в API MODx и PHP((((((