[решено] Как передать fenom массив?

Пытаюсь передать в шаблонизатор fenom массив следующим образом:

запускаю сниппет giveFenomArray с кодом:
$pls['arr'] = ['el1','el2'];
$modx->setPlaceholders($pls);
Затем в шаблоне вызываю сниппет и пытаюсь взять плейсхолдер «array»:
{$_modx->runSnippet("!giveFenomArray")}
{set $arr = $_modx->getPlaceholder("arr")}
{$arr[0]}
Но в ответ ничего не выводится.
Подскажите, это особенность связки modx+fenom, или это я делаю что-то не так?

UPD: все прекрасно работает по функции $modx->setPlaceholder('arr',$pls['arr']);
метод $modx->setPlaceholders действительно разбивает весь массив, даже многомерный на ключи и значения, а только потом их передает как строки в шаблон
Алексей
08 мая 2016, 12:55
modx.pro
3
5 245
0

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

Сергей Фещуков
08 мая 2016, 16:01
0
Читайте как работает setPlaceholders. Ключи становятся плейсхолдерами, а не массив.
    Алексей
    08 мая 2016, 16:08
    0
    ну ведь это то же само как
    $modx->setPlaceholders(array(
       'arr' => ['el1','el2']
    ));
    ключ 'arr', значение ['el1','el2']
    Или я не прав?
    В документации кстати ничего не сказано про значения, могут ли они быть не типом string.
      Сергей Фещуков
      08 мая 2016, 17:11
      0
      На самом деле полностью, если разложить вызов, то будет так:
      $modx->setPlaceholders(array(
         'arr' => array(
            0 => 'el1',
            1 => 'el2'
         )
      ));
      И дальше, вроде в шаблоне используется вот так:
      {$_pls['arr.0']}
      {$_pls['arr.1']}
      Алексей
      08 мая 2016, 16:13
      0
      Да вот посмотрел в исходниках — получается никак не передать массив. Он будет рекурсивно разбит на плейсхолдеры.
      Сергей Шлоков
      08 мая 2016, 16:55
      +2
      Надо перевести массив в строку и сохранить в плейсхолдер — или в json или сериализация.
        Алексей
        09 мая 2016, 07:12
        0
        метод $modx->setPlaceholder прекрасно справляется с передачей массива в fenom.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7