1datr

Topic: smarty переменные в переменных

В коде передается массив, соответствующих языковых дескрипторов значений для поля таблицы

$this->smarty->assign('states', Array('','zs_sogl','zs_work','zs_otkaz','zs_ended'));

Как вывести перевод вида {_ zs_otkaz}?
Пишешь так -

{assign var="state_id" value=$z_zakaz->getState()}
                {assign var="state" value=$states[$state_id]}
              
                {_ $state}

- не работает.

mz

Re: smarty переменные в переменных

 {$state|i18n}

1datr

Re: smarty переменные в переменных

не работает

zerkms

Re: smarty переменные в переменных

потому что в случае использования модификатора нужно указывать дополнительно модуль, для которого производится перевод. это происходит от того, что модификатор не может адекватными способами определить модуль, в контексте которого он запускается.

указать модуль явно можно двумя способами:

1) вторым аргументом {$state|i18n:"module"}

2) через слеш "/" {"module/variable"|i18n}

в твоём случае правильнее и удобнее будет вариант 1

mz

Re: smarty переменные в переменных

не может адекватными способами

а если определять по current шаблону, как это делается с {_} ?

1datr

Re: smarty переменные в переменных

zerkms wrote:

потому что в случае использования модификатора нужно указывать дополнительно модуль, для которого производится перевод. это происходит от того, что модификатор не может адекватными способами определить модуль, в контексте которого он запускается.

указать модуль явно можно двумя способами:

1) вторым аргументом {$state|i18n:"module"}

2) через слеш "/" {"module/variable"|i18n}

в твоём случае правильнее и удобнее будет вариант 1

спасибо

zerkms

Re: smarty переменные в переменных

mz
хз %)