We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 22532
    • 349 Posts
    подскажите плиз как сделать условие на phx
    я в вике поглядел.. но не нашел похожего
    чтобы если все TV [*property0*],[*property1*],....,[*property99*] пустые, то ничего не выводится, но если хотябы одно заполнено, то выводим текст

    вот похожее
    [+phx:if=`[*property0*]`:isnot=``:then=`text`+]

    а надо чтото вроде
    [+phx:(if=`[*property0*]`:isnot=``)||(if=`[*property1*]`:isnot=``):then=`text`+]

    только понятно что по синтаксису я тут не так как надо пишу и данный вариант работать не будет

    а и еще.. может ктото знает как можно не перечислять все TV, а к примеру в цикле их перебрать и проверить..
    так как все они отличаются только цифрой на конц
    если что.. желательно оба варианта поглядеть
      • 24489
      • 60 Posts
      ну по первому легко:
      [+phx:if=`[*prop_1*][*prop_2*][*prop_3*][*prop_4*][*prop_5*][*prop_6*]`:len:gt=`0`:then=`заполнено одно или больше`:else=`ничего не заполнено`+]

      по второму сложнее, но как то было нужно [*pro_n*] ... задавать, но их было мало так что ставил вручную.
        Плагин для ресайза картинок AutoResizer
        Сниппет для вывода полей документа DocInfo

        Создание ТВ типа checkbox/dropdown из списка дочерних документов tvsLinks
        • 22532
        • 349 Posts
        спасибо
        все больше поражаюсь синтаксису phx grin

        кстати топик еще не закрыт.. может у кого есть еще какие мысли по второму варианту?
          • 22532
          • 349 Posts
          подскажите плиз
          как можно вывести имя TV параметра

          тоесть у меня есть:
          TV TEXT
          название "tv_elka"
          имя "Елка"

          В документе внизу есть поле Елка, в где указываю нарпимер "зеленая-сосновая"

          и в шаблоне вывожу
          [+phx:if=`[*tv_elka*]`:isnot=``:then=` (ТУТ НАДО ВЫВЕСТИ ТЕКСТ "Елка") - [*tv_elka*] `+]
          получится на выходе: "Елка - зеленая-сосновая"

          чтобы если я потом поменяю имя TV на "Шишка" у меня выведется: "Шишка - зеленая-сосновая"
            • 24489
            • 60 Posts
            Quote from: p4sh0k at Dec 22, 2008, 06:29 AM

            подскажите плиз
            как можно вывести имя TV параметра

            тоесть у меня есть:
            TV TEXT
            название "tv_elka"
            имя "Елка"

            В документе внизу есть поле Елка, в где указываю нарпимер "зеленая-сосновая"

            и в шаблоне вывожу
            [+phx:if=`[*tv_elka*]`:isnot=``:then=` (ТУТ НАДО ВЫВЕСТИ ТЕКСТ "Елка") - [*tv_elka*] `+]
            получится на выходе: "Елка - зеленая-сосновая"

            чтобы если я потом поменяю имя TV на "Шишка" у меня выведется: "Шишка - зеленая-сосновая"

            лично я ничего не понял, может поможет:
            [*tv_elka:len:gt=`0`:then=`"Елка" - [*tv_elka*]`*]
            [*tv_shishka:len:gt=`0`:then=`"Шишка" - [*tv_shishka*]`*]
              Плагин для ресайза картинок AutoResizer
              Сниппет для вывода полей документа DocInfo

              Создание ТВ типа checkbox/dropdown из списка дочерних документов tvsLinks
              • 22532
              • 349 Posts
              действительно ничего не понял..  grin
              проблема уже не актуальна.. попробовал напрячь кой какие навыки в php (которых не так много)..
              и родилось вот такое
              выводит названия TV RadioButton которые отмечены для данной странички

              <?php
              $id = 0; do { $id++;
              $query = mysql_query("SELECT * FROM modx_site_tmplvars WHERE name=’docum".$id."’");
              $data = mysql_fetch_array($query);
              if ($data == "") return "";
              echo "[+phx:if=`[*docum".$id."*]`:is=`1`:then=`<li>".$data[’caption’]."</li>`+]";
              } while($id < 100);
              return "";
              ?>

              ктото знает как сделать проще и менее ресурсоемко? напишите.. буду рад поглядеть
                • 785
                • 2,113 Posts
                Quote from: p4sh0k at Dec 22, 2008, 08:10 AM

                ктото знает как сделать проще и менее ресурсоемко?
                Не вникая в проблему и особенности ее решения, могу отметить две вещи:
                1. Делать запрос к базе в цикле очень плохо. Нужно составить такой запрос, чтобы он за одно обращение к базе выдал все результаты.
                2. Используя программу на php генерировать команду в формате phx – совсем плохо. Раз уж все равно используется php, то надо сразу сгенерировать нужный результат.
                  Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                  Статьи о MODx, регулярно новые публикации
                  • 22532
                  • 349 Posts
                  спасибо за совет.. покумекаю завтра..
                  хотя там не много обращений к бд.. мах 10, но не больше
                  а вот про замену phx это подумаю..
                    • 6272
                    • 95 Posts
                    Не стал создавать новую тему. Вопрос такой: возможно ли стандартными средствами phx сделать проверку на содержание? В дитто, например, за это отвечает цифра 7. В вики по phx подобного не нашел. Через or делать тоже не резон - ибо значений у чекбокса ТВ целых 7 (комбинаций дохрена). Проще тогда сделать 7 разных ТВ. Есть идеи как сделать проще/универсальнее?
                      • 24489
                      • 60 Posts
                      Quote from: D.SID at Mar 25, 2009, 02:26 PM

                      Не стал создавать новую тему. Вопрос такой: возможно ли стандартными средствами phx сделать проверку на содержание? В дитто, например, за это отвечает цифра 7. В вики по phx подобного не нашел. Через or делать тоже не резон - ибо значений у чекбокса ТВ целых 7 (комбинаций дохрена). Проще тогда сделать 7 разных ТВ. Есть идеи как сделать проще/универсальнее?

                      посмотрите в вики по PHx конструкции [+phx:select=``+]
                        Плагин для ресайза картинок AutoResizer
                        Сниппет для вывода полей документа DocInfo

                        Создание ТВ типа checkbox/dropdown из списка дочерних документов tvsLinks