Subscribe: RSS
  • И так задача, есть куча документов выводятся через Reflect с группировкой по году, у документов есть TV tags, Ditto нормально бегает по тэгам, но собственно как Reflect’у передать тэги чтобы при вызове параметров Ditto он и на них обратил внимание, есть идеи?
    • Новый топик решил не начинать. Поиском толкового ничего найти не получилось.

      Итак, есть 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
      • Нашел! 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
        • Очистить вызов 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
          • Продолжение.. 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