Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вывести переменные в TWIG из строки


nekit555

Recommended Posts

Здравствуйте! Помогите пожалуйста разобраться с проблемой! Описал все ниже.

В базе у меня хранится html некоторых страниц.
В этом коде есть шорткоды:
 {{ chunk.review }}, {{ chunk.slider }}


 {{ chunk.review }} - это фактически

$data['chunk']['review'] = $this->load->controller('chunk/standart/review');

 

1. В контроллере я получаю код из базы и хочу вставить его в twig файл, через переменную
 

public function index() {
  $data['chunk']['review'] = $this->load->controller('chunk/standart/review');

  $this->load->model('layout/layout');

// Получаем из базы HTML код
  $data['page_html'] = html_entity_decode($this->model_layout_layout->getLayoutCode(6, 1));

  $this->response->setOutput($this->load->view('chunk/standart/index', $data));
}

2. В переменной $data['page_html'] хранится:

<h2>Заголовок</h2>
{{ chunk.review }}

 

3. Код файла index.twig:

{{ page_html }}

Проблема:

Вместо того, чтобы получить:

<h2>Заголовок</h2>
<div class="review">
	<div class="review-item">
  	...
  	</div>
</div>

 

Я получаю на выходе:

<h2>Заголовок</h2>
{{ chunk.review }}

 

Если в файл index.twig вставить {{ chunk.review }} все нормально подтягивается.

Змінено користувачем nekit555
Надіслати
Поділитися на інших сайтах


Наконец-то решил вопрос.
Изменил код index.twig
 

{{ include(template_from_string(page_html)) }}

Чтобы функция template_from_string заработала, добавьте в файле Twig\Environment.php
 

$this->addExtension(new Twig_Extension_StringLoader());

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.