Передать переменную в $_modx->runSnippet

Всем привет, недавно столкнулся с такой проблемой: в чанк передаю переменную $from, она видна везде в чанке, КРОМЕ снипета pdoResources, а именно мне нужно сравнивать эту переменную в условии при работе снипета, привожу код ниже
{$_modx->runSnippet('!pdoResources', [
      'parents'=>$_modx->config.cities,
      'sortby'=>'menuindex',
      'sortdir'=>'ASC',
      'limit'=>0,
      'tpl'=>'@INLINE
      {if $id==$from}
            <option selected="selected" value="{$id}">{$pagetitle}</option>
      {else}
             <option value="{$id}">{$pagetitle}</option>
      {/if}
      '
])}
Можно ли как то сделать так, чтобы в снипете была видна переменная $from?
Алексей
19 сентября 2016, 15:42
modx.pro
1 617
0

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

Виталий Серый
19 сентября 2016, 18:54
-1
Условие можно вынести за пределы сниппета.
{set $tpl = '@INLINE <option value="{$id}">{$pagetitle}</option>'}
{if $id==$from}
	{set $tpl = '@INLINE <option selected="selected" value="{$id}">{$pagetitle}</option>'}
{/if}

{$_modx->runSnippet('!pdoResources', [
      'parents'=>$_modx->config.cities,
      'sortby'=>'menuindex',
      'sortdir'=>'ASC',
      'limit'=>0,
      'tpl'=>$tpl
])}
Ну а условие изначально не видно скорее всего из-за кавычек.
    Павел Гвоздь
    19 сентября 2016, 21:49
    1
    +4
    {$_modx->runSnippet('!pdoResources', [
        'parents' => $_modx->config.cities,
        'sortby' => 'menuindex',
        'sortdir' => 'ASC',
        'limit' => 0,
        'tpl' => '@INLINE <option {($id == ' ~ $from ~ ') ? \'selected="selected"\' : \'\'} value="{$id}">{$pagetitle}</option>',
    ])}
      Алексей
      22 сентября 2016, 08:41
      0
      Спасибо! Помогло
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3