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