We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 6238
    • 6 Posts
    Здравствуйте! облазил уже весь форум, но так и не нашел нужного ответа, поэтому решился написать вопрос (с ModX только начинаю работать (первый проект), вроде во всем разобрался, но до 1 никак не дойду).
    В общем задача в слудеющем:
    Есть tv параметр типа checkbox сожержащий знаяения оплата1==opl1||оплата2==opl2||ну и т.д. так вот при заполнении все данные отображаются как надо, т.е. оплата1 и оплата2, но при выводе выводят значения opl1,.... Проблема может быть и решилась если все значения просто указать на русском: оплата1||оплата2, но над этим параметром совершается ряд действий поиск, модификация, и т.д.
    Сейчас у меня работает следующем образом:
    выводится список товаров с опциями оплаты opl1, opl2, затем с помощью плагина осуществляется поиск таких слов и замена на:
    <a href="ссылка на инфу об оплате"> Оплата1 </a>
    Далее делаю форму поиска и там идут параметры Option значение которых указывается opl1, которая так же заменяется.... (в результате отображается форма поиска очень криво - так же происходит замена и ничего не работает).

    Так вот в результате: как сделать так, чтобы только в каталоге отображать список способов оплат с сылкой на страницу с описанием, и больше нигде, кроме каталога, чтобы она не обрабатывалась... (к сожалению с php не очень дружу...) С PHx пробовал, но чтот ничего не понял как реализовать замену на странице...

    Пожалуйста подскажите способ решения такой задачки, или укажите где можно прочитать про это (английскую ветку тоже можно...)



    P.S. извените за сумбурность и то что не очь понятно выразился, просто уже замучался с этим...
      • 6238
      • 6 Posts
      в общем нашел вариант вывода значений tv через снипет:

      <?php
      $TVname = isset($tv)?$tv:'uslugi';
      if( $TVarray = $modx->getTemplateVarOutput(array($TVname)) ){
      $tvOutput = $TVarray[$TVname];
      if(empty($tvOutput)) return '';
      return '<a href="#" > [*uslugi*] dsfdsfsdf </a>';
      }
      return '';
      ?>


      но все значения так же вывадятся только со ссылкой (но все значения через запятую....)

      Может кто подскажет как добавить обработчик, чтобы каждое значение выводилось со своей ссылкой....
        • 6238
        • 6 Posts
        В общем все решил таким снипетом (если кому поможет буду рад!):
        <?php
        $usl=array('usl1'=>'цветы1','usl2'=>'цветы2','usl3'=>'цветы3','usl4'=>'цветы4','usl5'=>'цветы5','usl6'=>'цветы6');
        $url=array('usl1'=>'1','usl2'=>'2','usl3'=>'3','usl4'=>'4','usl5'=>'5','usl6'=>'6');
        
        $TVname = isset($tv)?$tv:'uslugi';
        if( $TVarray = $modx->getTemplateVarOutput(array($TVname)) ){
        $tvOutput = $TVarray[$TVname];
        if(empty($tvOutput)) return '';
        $mas = explode(",",$tvOutput);
        $ttt = '';
        foreach($mas as $val)
        $ttt.= '<a href="articles/article-1226745823.html#'. $url[$val]. '">'. $usl[$val].'</a> <br/>';
        return $ttt;
        }
        return '';
        ?>



        P.S. если есть более рациональное или более простое решение , буду рад услышать...
          • 6238
          • 6 Posts
          блин одна проблема решилась, другая возникла, на странице каталога выводится краткая информация через Ditto, так вот если вставить этот снипет туда, то он ничего не отображается, скорее всего из-за того, что данные по tv получаются не из нужной страницы, а из страницы каталога (где их нет) - пожалуйста подскажите как можно при выводе через Ditto так же заменять?
            • 6238
            • 6 Posts
            нашел, что можно добавить id документа с которого будут считываться tv, изменением строчки:
            if( $TVarray = $modx->getTemplateVarOutput(array($TVname), $docid) )


            Но опять остается вопрос как получить этот id, ведь вывод осуществляется через ditto.

            Пожалуйста люди помогите, последняя задача - никак не могу решить, уже и так и сяк пробовал, но все равно так же.....



            Или может хотябы есть вариант вывода не значения а параметра, т.е. в строчке услуга1==usl1||услуга2==usl2
            Через дитто выводилось услуга1, услуга2, ... а не usl1, usl1,......
              • 6238
              • 6 Posts
              дам... поддержки конечно никакой, ну эт может и к лучшему, сам дошел до нужного.


              В общем проблема была решена следующим образом:
              В шаблон, который использует Ditto для вывода был включен снипет указанный выше с нужным параметром:
              [[tpl_list_usl? &docid=`[+id+]`]]


              Если у кого-нить возникнет подобная проблема - всегда рад объяснить как получить вывод tv параметров с заменой.....


              Всем "спасибо", тему можно закрывать.
                • 22532
                • 349 Posts
                такой монолог получился grin