We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 4302
    • 7 Posts
    [+phx:if=`[!Some_snippet!]`:is=`1`:then=`yes!!!!!`:else=`no`+]

    Some_snippet ---------
    <?php
    $i="1";
    return $i;
    ?>

    И ни в какую не работает. Смысл в том что я ловлю $_GET переменную, если она такая-то то выводим такой-то чанк. С [+phx:get=’name’+] тоже никак, он кеширует етот запрос и $_GET переменную, и в следствии на зазных значениях переменной $_GET даёт один и тодже результат. Лишь спустя минуту две кеш удаляется и если перегрузить получает новое значение.
    Как можно решить эту проблему с PHx? почему он неработает как в примере выше. Помоги те. Прошу второй день, лбом об стенку и никак.
      • 785
      • 2,113 Posts
      Quote from: bumkaka at Mar 01, 2011, 04:52 AM

      Как можно решить эту проблему с PHx?
      Зачем вообще в таких случаях использовать PHx? Или «нормальные герои всегда идут в обход»? Если есть сниппет, выдающий какую-то информацию, надо в него и дописывать все условия и действия, а не вызывать PHx, который отличается жуткой неэффективностью. Или, в крайнем случае, дописывать небольшой сниппет, где вставлять вызов исходного сниппета.
      А по конкретной задаче – PHx раньше обработает шаблон, чем выполнится сниппет, то есть сравнивается с единицей не результат сниппета, а текст его вызова.
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 4302
        • 7 Posts
        Согласен, ноя никак не могу реализовать развилку, от значения $_GET, выполнить определённый чанк. пробовал modx->parsechunk на выходе html и вместо результата внутренних сниплетов выводится лишь их вызов тоесть в браузере - (bla bla bla [!some_snipet!] bla bla bla). Мне бы хоть кусочек кода, чтоб соорентироваться.
          • 4302
          • 7 Posts
          Неужели нет ни одной идеи, как мне организовать развилку
            • 785
            • 2,113 Posts
            Quote from: bumkaka at Mar 01, 2011, 05:59 AM

            Неужели нет ни одной идеи, как мне организовать развилку
            Идеи есть - надо написать нормальный сниппет. Если требуется вызов других сниппетов, вызывать их через API.
              Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
              Статьи о MODx, регулярно новые публикации
              • 4302
              • 7 Posts
              Да не сниппет, а чанк. Есть 3 чанка, внутри у них куча кода и сниппетов. Когда ловлю $_GET, то по его значению нужно определлённый чанк запустить. Вверху код на PHx но он не работает. Если ставить [+phx:if=`[[some_snippet]]` ...... работает но сниппет some_snippet кешируется и даные отдаёт постоянно одни и теже. huh huh huh
                • 785
                • 2,113 Posts
                Quote from: bumkaka at Mar 01, 2011, 06:59 AM

                Да не сниппет, а чанк.

                Quote from: bumkaka at Mar 01, 2011, 06:59 AM

                внутри у них куча … сниппетов
                См выше.
                  Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                  Статьи о MODx, регулярно новые публикации
                  • 4302
                  • 7 Posts
                  Мда, хороший форум.
                  - Подскажите как можно стену из кирпича построить--- ответ: берёш и строишь, типа снизу вверх. (что итак ясно).
                  - А как лучше крышу накрыть --- Ответ: Как, как, вот что выберешь тем и кроешь, чё тут мудрённого (мда. подсказал)
                  и тд.. советчики.

                  Отвечаю на пост №1 мною заданный.
                  В ходе лбо разбивание об MODX PHx, выяснил: для организации развилки можно пойти двумя вариантами
                  1. Создаём TV с любым именем, к примеру "some_TV", в поле значение по умолчанию пишем "@EVAL return $_GET[’параметр’];" , далее мы можем использовать TV так: [*some_TV*]. [+phx:if=`[*some_TV*]`:is=`main`:then=`{{some_chank}}`:else=`{{else_chunk}}`+]. Далее по логике, к ссылке добавляете www.blabla.ru/note?параметр=main
                  2. Или делаете так, создаёте сниппет (к примеру [!my_snippet!]) где указываете return $_GET[’параметр’]. далее [+phx:if=`[!my_snippet!]`:is=`main`:then=`{{some_chank}}`:else=`{{else_chunk}}`+]

                  - обязательно снимите галочку в свойстве документа "Кешировать" иначе результата не будет.
                  - не знаю почему но в коде phx.parser.class.inc.php версии 2.1.4, в строке 98 есть закоментеная выборка, заменил нею нижнюю строку и [!my_snippet!] начал обрабатываться после [+phx:if=` до этого выполнялся только кешируемы снипет [[ ]] и никак не [! !]

                  И не надо никаких сниппетов писать, и тд. как советовали выше!!!!!
                    • 785
                    • 2,113 Posts
                    Quote from: bumkaka at Mar 01, 2011, 02:25 PM

                    И не надо никаких сниппетов писать, и тд. как советовали выше!!!!!
                    Ну да, полный отказ от кэширования страниц и использование жрущего ресурсы PHx – это конечно, огромное достижение, когда все можно было сделать намного проще. Но можете гордиться собой – все же добились, чтобы заработала нежизнеспособная конструкция.
                      Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                      Статьи о MODx, регулярно новые публикации
                      • 4302
                      • 7 Posts
                      Ну а все же, я то дал код..... Ну проще чем добавить ТВ, дать ему значение, и вставить в скромный phx, не знаю я. покажете проще - мой вам поклон, и уважение