Как передать в свой сниппет параметры - массивы?

Здравствуйте!
Прошу совета, поскольку только начинаю в Revo. Пишу свой сниппет для выгрузки результатов запроса данных в Excel. Использую phpExcel.
У меня уже есть сниппет, который делает выборку в БД и выводит результаты выборки данных на веб-страницу пользователя, я бы хотел не меняя код этого сниппета, дополнительно вызвать из него еще один (через RunSnippet) которому передать два параметра:
  1. Массив с названиями колонок таблицы
  2. Массив данных, который получен с помощью
    $arr = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
Понимаю, что если бы я вызывал этот сниппет из ресурса, я бы должен был написал что-то такое:
[[!array2xls?
  &head_text= `array(
					'Порядковый номер',
					'Номер документа')`
  &row_text=  $arr
]]
А как мне передать такие параметры внутрь этого сниппета через RunSnippet? Там ведь, насколко я понял, только параметры-строки можно передавать, а у меня - массивы. Как быть, подскажите пожалуйста.
Или, может быть, вообще, существует некое стандартное решение по выгрузке данных в Excel, наверняка многие пользуются? Был еще вариант с подсовыванием Excel-ю html-таблицы, но такой вариант я не стал рассматривать.
Спасибо большое за помощь!

С уважением, Андрей.
Андрей, Омск
19 февраля 2013, 04:46
modx.pro
8 834
0

Комментарии: 2

Василий Наумкин
19 февраля 2013, 09:06
1
0
Ты всё перепутал.

Это при вызове на страницу в сниппет можно передавать только строки, поэтому там используют JSON
[[!array2xls?
  &head_text=`['Порядковый номер','Номер документа']`
  &row_text=`[[+arr]]`
]]
А при вызове через runSnippet можно передавать любые переменные
$res = $modx->runSnippet('array2xls', array(
  'head_text' => array('Порядковый номер','Номер документа'),
  'row_text' => $arr
));
    maslitto
    27 августа 2015, 12:40
    0
    Василий, привет!
    а как передать вот такие параметры, через runSnippet?
    &leftJoin=`{
    «120x90»: {«class»:«msResourceFile»,«alias»:«120x90», «on»: «120x90.resource_id = modResource.id AND 120x90.path LIKE '%/120x90/' AND 120x90.rank=0»}
    ,«360x270»: {«class»:«msResourceFile»,«alias»:«360x270», «on»: «360x270.resource_id = modResource.id AND 360x270.path LIKE '%/360x270/' AND 360x270.rank=0»}
    }`
    &select=`{
    «modResource»:"*"
    ,«120x90»:«120x90.url as 120x90»
    ,«360x270»:«360x270.url as 360x270»
    }`
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2