We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 32960
    • 26 Posts
    День добрый.

    Ситуация такая, есть список акций компании, структура такая: раздел (последняя акция и остальные ниже ввиде анонсов) и акции в виде дочерних разделов. Когда заходим в акцию, то сначала показывается полный текст этой акции, а ниже анонсы остальных акций (как в основном разделе). Если в каждую акцию впихивать сниппет вывода анонсов, то норм, но хотелось бы чтоб забив текст акции для нее сразу же был подставлен список анонсов. Чтото не могу придумать изящьного решения.
      • 1788
      • 1,103 Posts
      Quote from: xupypr at Mar 14, 2011, 02:05 AM

      День добрый.

      Ситуация такая, есть список акций компании, структура такая: раздел (последняя акция и остальные ниже ввиде анонсов) и акции в виде дочерних разделов. Когда заходим в акцию, то сначала показывается полный текст этой акции, а ниже анонсы остальных акций (как в основном разделе). Если в каждую акцию впихивать сниппет вывода анонсов, то норм, но хотелось бы чтоб забив текст акции для нее сразу же был подставлен список анонсов. Чтото не могу придумать изящьного решения.
      В шаблоне для анонсов впишите в районе [*content*]
      [*content*]
      [*id:is=`3`:then=``:else=`{{чанк}}`*]

      3 - например id корня акций
      {{чанк}} с ditto вывод на странице акций нужного вида
      В корневой ресурс в содержимом вывод для показа анонса акций.

      Плагин Phx необходим. Либо написать свой сниппет с подобной логикой.
        • 32960
        • 26 Posts
        Quote from: antey at Mar 14, 2011, 02:26 AM

        Quote from: xupypr at Mar 14, 2011, 02:05 AM

        День добрый.

        Ситуация такая, есть список акций компании, структура такая: раздел (последняя акция и остальные ниже ввиде анонсов) и акции в виде дочерних разделов. Когда заходим в акцию, то сначала показывается полный текст этой акции, а ниже анонсы остальных акций (как в основном разделе). Если в каждую акцию впихивать сниппет вывода анонсов, то норм, но хотелось бы чтоб забив текст акции для нее сразу же был подставлен список анонсов. Чтото не могу придумать изящьного решения.
        В шаблоне для анонсов впишите в районе [*content*]
        [*content*]
        [*id:is=`3`:then=``:else=`{{чанк}}`*]

        3 - например id корня акций
        {{чанк}} с ditto вывод на странице акций нужного вида
        В корневой ресурс в содержимом вывод для показа анонса акций.

        Плагин Phx необходим. Либо написать свой сниппет с подобной логикой.
        отлично! про Phx то и позабыл. Спасибо большое! То что надо.
          • 32960
          • 26 Posts
          сделал через сниппет... может пригодится кому... хотя писал на скорую руку, чтоб было ))



          <?php
          $id = $modx->documentIdentifier;
          	$parent = $modx->getParentIds($id);
          $parent = reset($parent);
          
          
          if (intval($parent)==18)
          {
          
          	$childs = $modx->getChildIds($parent);
          for ($i=(count($childs)-1); $i>=0; $i--)
          if (intval($childs[$i])!=$id){
          
          $docfield = $modx->getDocument(intval($childs[$i]), 'id, pagetitle, introtext', 1);
          echo '<div><a href="'.$modx->makeURL(intval($childs[$i])).'"><h3>'.$docfield[pagetitle].'</h3></a><p>'.$docfield[introtext].'</p></div>';
          
          }
          }


          там где ==18 там нужен для того для кого рисовать, вместо PHx... так то можно переменной определить и потом в параметрах сниппета задавать нужный список. как-то так

          $parents_list_array = explode('|', $parents_list);
          
          if (!(is_array($parents_list_array))) $parents_list_array[0]=intval($parents_list);
          
          if (in_array(intval($parent), $parents_list_array)) 
          ...
          


          ну и вызов

          [[!showChildList? $parents_list=`12|18|15`]]