Передать переменую в шаблон

InstantCMS 2.X
#1 25 мая 2021 в 18:23
Всем привет. Подскажите, есть метод для передачи данных из экшена1 в шаблон экшена2? (В сам экшен2, как я понимаю, только через хук?). Или экшен ничего не передаёт, а только формирует?
#2 28 мая 2021 в 07:49
Вы бы ситуацию подробнее описали.
#3 28 мая 2021 в 08:11
Даже не знаю как подробнее)? Попробую. Есть компонент. В нём два экшена. У этих двух экшенов два шаблона. Экшен-1 связан(не подберу другого слова) со своим шаблоном-1 методом $this->cms_template->render('шаблон-1'). Вопрос. Есть ли в ядре метод для зкшен-1 что то типа $this->cms_template->метод('шаблон-2')
#5 28 мая 2021 в 10:07

Да полно таких.

Loadырь

* Печатает HTML код шаблона $tpl_file (в папке шаблонов текущего компонента) * Предполагается, что вызов этого метода выполняется * из другого шаблона текущего контроллера

Это из шаблона, а я спрашиваю про экшен.php. Плюс этим методом не передашь переменную. Метод "печатает" шаблон. По крайней мере я так понял.
#6 28 мая 2021 в 15:12

Это из шаблона, а я спрашиваю про экшен.php.

Lora
А вы не слушайте тех "комментаторов" — пробуйте.

Плюс этим методом не передашь переменную

Lora
А что мешает в массив переменной "$data" всунуть свои переменные?

Есть ещё такой метод github.com/instantsoft/icms2/blob/master/system/core/template.php#L2369. Им можно получить html код в переменную и вывести эту переменную в своем шаблоне экшена.
#7 28 мая 2021 в 19:37
В том то и дело, что мне не нужен HTML код. А все эти render-ы возвращают именно его. Ладно придумал что нибудь. Спасибо).
#8 28 мая 2021 в 22:20

В том то и дело, что мне не нужен HTML код. А все эти render-ы возвращают именно его

Lora
Вовсе нет.
Файл \system\controllers\activity\actions\index.php
Пример: Компонент активность. Вынос данных в шаблон:
  1. return $this->cms_template->render('index', array(
  2. 'page_title' => ($dataset_name != 'all' ? LANG_ACTIVITY . ' - ' . $dataset['title'] : LANG_ACTIVITY),
  3. 'base_ds_url' => href_to($this->name).'%s',
  4. 'datasets' => $datasets,
  5. 'dataset_name' => $dataset_name,
  6. 'dataset' => $dataset,
  7. 'user' => $this->cms_user,
  8. 'items_list_html' => $items_list_html
  9. ), $this->request);
Добавьте в этот вывод
'ваша_переменная' => $ваша_переменная;
#9 29 мая 2021 в 11:09
Ris, из экшенов, да. Но он передаёт только в свой шаблон.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.