We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 6348
    • 90 Posts
    Вызываю на странице сниппет
    [!min_max? &docs_id=`3`&tv_param=`tv_price`&name_param=`price`!]
    вычисляю там знач-е и записываю в переменную $chislo
    возвращаю его из сниппета return $chislo;
    Теперь я хочу вызвать другой сниппет и передать ему это число. А вот как это записать?
    Так
    [!snipp? &docs_id=`3`&param=$chislo!]
    выводит ошибку
      • 32725
      • 107 Posts
      Вот так
      [!snipp? &docs_id=`3`&param=`[!min_max? &docs_id=`3`&tv_param=`tv_price`&name_param=`price`!]`!]
      
        My portfolio
        Самурай без меча подобен самураю с мечом, только без меча.
        • 11255
        • 193 Posts
        Great-Antique Reply #3, 17 years ago
        можна в сниппете snipp с помощью API запустить min_max, передав в него параметр.
          • 6348
          • 90 Posts
          можна в сниппете snipp с помощью API запустить min_max, передав в него параметр.
          а это как примерно буде писаться?

          А если немножко усложнить задачку. Есть сниппет
          [!min_max? &docs_id=`3`&tv_param=`tv_price`&name_param=`price`!] который возвращает массив $params

          Что нужно сделать, чтобы запустившийся новый сниппет (скажем [!min_max? &docs_id=`3`&tv_param=`tv_doc`&name_param=`doc`!]) дописал в массив $params новые значения?
          Массив $params передавать во втором сниппете не хотелось бы
            • 10967
            • 24 Posts
            Можно массим засериализовать и передуть в другой сниппет
            http://ua.php.net/manual/en/function.serialize.php
              • 6348
              • 90 Posts
              Quote from: GmasteR at Oct 14, 2009, 12:57 PM

              и передуть в другой сниппет
              http://ua.php.net/manual/en/function.serialize.php
              а как это будет выглядеть?
              [!snipp? &docs_id=`3`&param=`[!min_max? &docs_id=`3`&tv_param=`tv_price`&name_param=`price`!]`!]
              - чет здоровенная надпись. А если будет 3 сниппета, 4... этак и запутаться недолго.
              собственно говоря над чем я заморочился: надо сварганить примерно такой дитто: [!Ditto? &tpl=`Apartments` &startID=`52` &filter=`бла-бла-бла` &noResults=`Извините, недвижимости по Вашему запросу не найдено.`!]

              так вот, часть filters формируется через один сниппет, часть через 2й, 3й, 4... А в 5м они объединяются и приводятся к виду `бла-бла-бла`, потом echo ’[[ditto...
              при этом снипет в снипете в шаблоне не хотелось бы ваять, а сообразить нечто простенькое:
              [[snipet1]]
              [[snipet2]]
              .....
              [[snipetn]]
              [[snipet_final]]
                • 10967
                • 24 Posts
                Quote from: daima at Oct 14, 2009, 01:38 PM

                Quote from: GmasteR at Oct 14, 2009, 12:57 PM

                и передуть в другой сниппет
                http://ua.php.net/manual/en/function.serialize.php
                а как это будет выглядеть?
                [!snipp? &docs_id=`3`&param=`[!min_max? &docs_id=`3`&tv_param=`tv_price`&name_param=`price`!]`!]
                - чет здоровенная надпись. А если будет 3 сниппета, 4... этак и запутаться недолго.
                на выходе из min_max:
                return serialize($data);

                На приеме у snipp
                $data=unserialize($data);
                ----------------
                Хотя я думаю что у MODx можно хранить где-то свои переменные
                  • 32725
                  • 107 Posts
                  А я то думал, нафига нужно мучаться с передачей этих параметров, если первый сниппет нужен только для того, чтобы передать параметр для другого. Почему бы просто не написать один сниппет?
                  Оказывается, снова нужны параметры для Дитто smiley

                  Ну если вы уже знаете PHP, и можете написать этот [[min_max]], почему бы не забить на Дитто и сразу не написать один сниппет, который будет кешироваться, делать один, максимум два запроса к БД и выводить нужные документы?
                    My portfolio
                    Самурай без меча подобен самураю с мечом, только без меча.
                    • 11255
                    • 193 Posts
                    Great-Antique Reply #9, 17 years ago
                    Quote from: daima at Oct 14, 2009, 12:23 PM

                    можна в сниппете snipp с помощью API запустить min_max, передав в него параметр.
                    а это как примерно буде писаться?
                    $myVar=$modx->runSnippet("mySnippet", 
                    array ("myParam1" => "myParam1Value", "myParam2" => "myParam2Value")
                    );
                    

                    что-то типа такого. Только сниппет mySnippet не может возвращать массив (в обычном виде). Нужно пользоваться или сериалайзом, или самому записать все в строку с разделителем(-лями) и потом разобрать как нужно.
                      • 6348
                      • 90 Posts
                      Спс. Поколдую сегодня. А еще мне предстоит постраничный вывод инфы. Как в этом случае дитто записать? Чет не нашел в примерах(((