We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 28171
    • 7 Posts
    И так задача, есть куча документов выводятся через Reflect с группировкой по году, у документов есть TV tags, Ditto нормально бегает по тэгам, но собственно как Reflect’у передать тэги чтобы при вызове параметров Ditto он и на них обратил внимание, есть идеи?
      • 9085
      • 630 Posts
      Новый топик решил не начинать. Поиском толкового ничего найти не получилось.

      Итак, есть Reflect и Ditto, для связки используется &id=`wp` (видимо, это и является ответом на предыдущий вопрос). В общем-то сочетание из demo-сайта..

      [[Ditto? &id=`wp` &parent=`3` &display=`10` &dateFormat=`%d.%m.%Y` &sortBy=`createdon` &truncText=`»` &removeChunk=`Comments` &tpl=`ditto_blog` &paginate=`1` &extenders=`summary,dateFilter` &paginateAlwaysShowLinks=`1` &tagDelimiter=`, ` &tagData=`documentTags2`]] 
      
      [!Reflect? &config=`wordpress` &targetID=`3` &path=`3` &dittoSnippetParameters=`parents:3` &wp_tags=`` &id=`wp` &getDocuments=`1`!]
      


      Для каждого документа (новости/записи/поста) в общем списке (страница с Ditto) выводятся тэги. Шаблон ditto_blog позаимствован (быть может с изменениями) из стандартного примера:
      <div class="ditto_summaryPost">
        <h3><a href="[~[+id+]~]" title="[+title+]">[+title+]</a></h3>
        <div class="ditto_info" >By <strong>[+author+]</strong> on [+date+]. <a  href="[~[+id+]~]#commentsAnchor">Comments
        ([[Jot?&docid=`[+id+]`&action=`count-comments`]])</a></div><div class="ditto_tags">Tags: [+tagLinks+]</div>
        [+summary+]
        <p class="ditto_link">[+link+]</p>
      </div>


      Теперь при нажатии на ТЭГ по ссылке передается не только тэг, но и установленная дата (если переходим со страницы wp_year=...), а если установлен тэг, то при нажатии на REFLECT значение тэга также учитывается при выводе по датам. Можно ли ввести ограничение на передачу параметров между сниппетами?

      [DITTO без фильтрации] - все ок
      Страница: modx.my/3.html
      ссылка в tagLinks: modx.my/3.html?wp_tags=TAG1&wp_start=0
      ссылка в REFLECT: modx.my/3.html?wp_month=5&wp_year=2010&wp_day=false&wp_start=0

      [ссылка из Reflect - архив за месяц] - как убрать в tagLinks все параметры кроме wp_tags=...?
      Страница: modx.my/3.html?wp_month=5&wp_year=2010&wp_day=false&wp_start=0
      ссылка в tagLinks: modx.my/3.html?wp_month=5&wp_year=2010&wp_day=false&wp_start=0&wp_tags=TAG1
      ссылка в REFLECT: modx.my/3.html?wp_month=5&wp_year=2010&wp_day=false&wp_start=0

      [ссылка из tagLinks - все записи с тэгом TAG1] - как убрать в Reflect wp_tags=...?
      Страница: modx.my/3.html?wp_tags=TAG1&wp_start=0
      ссылка в tagLinks: modx.my/3.html?wp_tags=TAG1&wp_start=0
      ссылка в REFLECT: modx.my/3.html?wp_tags=TAG1&wp_start=0&wp_month=5&wp_year=2010&wp_day=false

      ps. Нутром чую.. что литр должно быть просто..
      pps. Самое похожее, что нашел - тут, но не то
      ppps. Стандартный demo-блог работает аналогично.
        Правильно заданный вопрос повышает вероятность получения нужного ответа.
        Что-то не работает? Загляните в лог ошибок!
        Есть проблема? "Локализуйте" её!
        Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx
        • 9085
        • 630 Posts
        Нашел! grin
        точнее sad

        Quote from: mrhaw at May 11, 2010, 01:17 AM

        Here is one approach http://modxcms.com/forums/index.php/topic,37590.0.html

        You need to edit the code to not preserve current url vars... as it uses Ditto
        changing it will most likely break other functions!
        Quote from: hotdiggity at May 11, 2010, 02:53 AM

        The placeholder for the Reflect URL is [+url+] - shouldn’t it be possible to use pHx to filter out tags in this placeholder?
        Quote from: mrhaw at May 11, 2010, 08:59 PM

        Yes! Using regex I’d think.
        Вольный перевод:
        выкинуть лишнее без влезания в код не получится.
        Как вариант - использовать pHx + регулярные выражения для обработки плейсхолдера [+url+]
          Правильно заданный вопрос повышает вероятность получения нужного ответа.
          Что-то не работает? Загляните в лог ошибок!
          Есть проблема? "Локализуйте" её!
          Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx
          • 9085
          • 630 Posts
          Очистить вызов Reflect от тэгов (при нахождении на странице с тэгом), и вообще от лишних параметров удалось так:

          <? php // snippet 'Leftmenu';
          $tmp=$modx->runSnippet('Reflect', array(
          'targetID' => 3,
          'config'=>'wordpress' ,
          'path'=>'3' ,
          'tplContainer'=>'reflect_tpl',
          'dittoSnippetParameters'=>'parents:3',
          'id'=>'wp_',
          'getDocuments'=>'1'
          ));
          // echo $tmp; // для проверки корректности выполнения сниппета
          
          $tmp = preg_replace ('/(&)?(wp_)?tags=[^&"]*(&)?(start=0&)?/is','',$tmp);
          // регулярник для очистки от параметров wp_tags=xxx (от текущего ditto) tags=xxx (облако тэгов) и start=0
          
          echo $tmp;
          //[!Reflect? &config=`wordpress` &targetID=`3` &path=`3` &tplContainer=`reflect_tpl` &dittoSnippetParameters=`parents:3` &wp_tags=`` &id=`wp_` &getDocuments=`1`!]
          ?>
          

          Быть может кто-нибудь подскажет, более рациональное решение!?

          ps. А вообще, и Reflect (ссылки при группировке по месяцам) и Ditto (всё, что в [+linkTags+]) в ссылки добавляют всё, что есть в $_GET.. Это не есть хорошо - при открытии одной страницы с "левым" параметром &blabla=3131 получаем страницу с кучей ссылок на "левые" страницы-дубли...
            Правильно заданный вопрос повышает вероятность получения нужного ответа.
            Что-то не работает? Загляните в лог ошибок!
            Есть проблема? "Локализуйте" её!
            Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx
            • 9085
            • 630 Posts
            Продолжение.. smiley
            Очистить ссылки от дат на странице вывода Ditto получилось.. хотя, на мой взгляд, также кривовато. Для этого используем snippet tagLinks (в любом случае использовался мной на странице отдельной статьи-новости)
            В итоге, в шаблоне вместо плейсхолдера [+tagLinks+] вставляем сниппет [[tagLinks]]: (чанк ditto_blog стал выглядеть примерно так:)
            <div class="info"><a class="info" title="[+title+]" href="[~[+id+]~]">[+title+]<span class="infobox"></span></a></div>
            <p>[+summary+]
            [!tagLinks? &tv=`documentTags2` &label=`<br />Метки: ` &id=`[+id+]` &path=`3`!]
            </p>
            


            Все итоги поисков собраны в статье "как приделать к MODx тэги как на Wordpress". Вроде, все моменты учтены, однако не расписаны и не разжеваны..
              Правильно заданный вопрос повышает вероятность получения нужного ответа.
              Что-то не работает? Загляните в лог ошибок!
              Есть проблема? "Локализуйте" её!
              Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx