We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 8574
    • 6 Posts
    Есть два сниппета Snip_1 и Snip_2, первый соответственно вызывается из документа Doc_1, а второй из документа Doc_2. Первый сниппет выполняет какие-то действия, результатом которых является некая переменная $A. Каким образом получить значение переменной $A в Snip_2?
    Пыталась объявлять $A как global но как-то безрезультатно :’( . Может быть нужно из Snip_1сохранить $A в какой-нибудь чанк, который из Snip_2 уже прочесть? Второй день копаюсь в форуме, но пока что-то безрезультатно((
      • 897
      • 1,620 Posts
      1. session
      2.serialize+file (подсказка можно писать в /assets/cache)

      ага?
        "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

        Не используйте Revo для "просто сайтов". Используйте Evo

        Who can defeat the Russian bear?
        • 22301
        • 1,084 Posts
        на примере. на страницах у меня вставлен сниппет с таким кодом:

        $_SESSION['GetPageTitle']= $modx->documentObject['pagetitle'];


        а на странице с обратной связью собираю рефереры я таким сниппетом:

        $RefererPageTitle = isset($_SESSION['GetPageTitle'])? $_SESSION['GetPageTitle']: '';
        $modx->setPlaceholder("RT", $RefererPageTitle);


        [+RT+] -- а такой конструкцией я вставляю реферер в тему сообщения у формы обратной связи.
          [img]http://jurist-info.ru/pic/rrr.jpg[/img]

          Безжалостный пияр!
          Artima -- неуч!
          Осторожно: преступная локализация -- modx-cms.ru
          Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

          Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
          • 8574
          • 6 Posts
          Спасибо вам большое...действительно с помощью глобального массива $_SESSION все в несколько строчек решилось))
            • 30247
            • 74 Posts
            Решил не заводить новую тему. Ситуация похожа. Но только оба сниппета нахоятся в одном документе.
            $GLOBALS[’param’] почему то не прокатывает (хотелось бы понять почему?)
            $_SESSION[’param’] работает, но как то переживаю за лишнюю нагрузку в виде кук, сохранения-чтения файла. И все это ради одной единственной переменной в одном запросе...
              • 785
              • 2,113 Posts
              Quote from: Tohin at Sep 30, 2009, 10:36 AM

              $GLOBALS[’param’] почему то не прокатывает
              У меня $GLOBALS[’param’] работает – вызовы обоих сниппетов некэшируемые.
                Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                Статьи о MODx, регулярно новые публикации
                • 30247
                • 74 Posts
                Гм...Забавно.. А где найти инфу по механизму кэширования MODx?
                А то как то непонятно для меня он кэширует.
                  • 785
                  • 2,113 Posts
                  Quote from: Tohin at Sep 30, 2009, 11:34 AM

                  А то как то непонятно для меня он кэширует.
                  Не все ли равно, как кэширует – просто если сниппет кэшируется, в следующий раз он не выполняется, и никакие переменные не присваиваются, сохраняется только результат работы сниппета – то, что он выводит.
                    Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                    Статьи о MODx, регулярно новые публикации
                    • 32725
                    • 107 Posts
                    Quote from: Tohin at Sep 30, 2009, 10:36 AM

                    Решил не заводить новую тему. Ситуация похожа. Но только оба сниппета нахоятся в одном документе.
                    $GLOBALS[’param’] почему то не прокатывает (хотелось бы понять почему?)
                    $_SESSION[’param’] работает, но как то переживаю за лишнюю нагрузку в виде кук, сохранения-чтения файла. И все это ради одной единственной переменной в одном запросе...
                    Если оба сниппета кешируются, или оба не кешируются, то можно передать переменную через плейсхолдеры.
                    В первом сниппете $modx->setPlaceholder(’test’, $result);
                    Во втором сниппете $result = $modx->getPlaceholder(’test’);
                      My portfolio
                      Самурай без меча подобен самураю с мечом, только без меча.
                      • 30247
                      • 74 Posts
                      Quote from: AKots at Sep 30, 2009, 11:42 AM

                      Quote from: Tohin at Sep 30, 2009, 11:34 AM

                      А то как то непонятно для меня он кэширует.
                      Не все ли равно, как кэширует – просто если сниппет кэшируется, в следующий раз он не выполняется, и никакие переменные не присваиваются, сохраняется только результат работы сниппета – то, что он выводит.


                      Ну если он кэшируется для каждого документа, меня это вполне бы устроило.
                      А если он кэшируется однажды для всего сайта, это уже хуже.
                      А проблема видимо такая:
                      Первый сниппет вызывается из шаблона, шаблонов 2, соответственно для 2 разных шаблонов 2 разных результата.
                      Второй сниппет вызывается из чанка указанного в шаблоне, и должен получить результат вычисления первого сниппета.

                      т.к. чанк вызывается постоянно, а первый сниппет кэшируется, сниппет из чанка не получает значение переменной.
                      Реiил вопрос через SESSION.