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

Как вставить содержимое файла в twig шаблон


Recommended Posts

Допустим в корне сайта лежит файл "file.ssi"

Как его содержимое вставить в twig-шаблон? (header.twig)

 

Почему важно чтобы он там лежал и так назывался - у меня скрипт, периодически меняющий содержимое этого файла на N моих сайтов, и на статике или wordpress я через ssi или php его содержимое впечатываю в шаблон, а как это сделать в twig не понял

 

Пробовал в header.twig прописать

{{ bla_bla }}

затем в catalog\controller\common\header.php прописал 

$data['bla_bla'] = sprintf($this->language->get('text_bla_bla'), $this->config->get('config_name'), date('Y', time()));

затем в catalog\language\ru-ru\common\header.php прописал 

$_['text_bla_bla']        = 'кусок html-кода';

-- и так выводится на нужном месте кусок текста!

но при попытке сделать типа 

$_['text_bla_bla']        = 'кусок html-кода' . $bla_bla_bla = file_get_contents('/file.ssi');
echo $bla_bla_bla; . 'кусок html-кода';

- сайт не открывается, ошибка.

Я так понимаю чисто php-шная ошибка и моего скромного знания (точнее незнания) php не хватает чтобы получить в $_['text_bla_bla'] пару кусков html и содержимое файла между ними.

 

В-общем надо или в header.twig как-то вставить, или с php как-то решить, я сам не понимаю где ошибся.

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


твиг для того и ввели, чтобы в шаблоны всякую херню не пихали

нужно что-то подключить - подключайте в контроллере и уже из него передавайте

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

6 минут назад, chukcha сказал:

а шо? разве в твиге нет include?

всё что в нём есть - для импорта шаблонов, а не произвольного файлика со строчкой текста (source есть такая функция)

 

7 минут назад, AlexDW сказал:

нужно что-то подключить - подключайте в контроллере и уже из него передавайте

а это где искать или что гуглить? ткните носом, плиз

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


https://twig.symfony.com/doc/2.x/tags/include.html

 

Конечно данные  должны быть подготовлены в контроллере

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

29 минут назад, chukcha сказал:

https://twig.symfony.com/doc/2.x/tags/include.html

 

Конечно данные  должны быть подготовлены в контроллере

Ребята, не судите строго, я опенкарт и твиг вижу впервые в жизни, раньше только на вордпрессе работал. Контроллер это что вообще и куда?

А показанный мной в 1 после способ нельзя как-то легко исправить?

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


данные из контроллера в шаблон передаются через массив $data

контроллер примерно так

$data['mydata'] = file_get_contents($path);

шаблон

{{ mydata }}

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

33 минуты назад, AlexDW сказал:

данные из контроллера в шаблон передаются через массив $data

контроллер примерно так

$data['mydata'] = file_get_contents($path);

шаблон

{{ mydata }}

Спасибо, всё заработало! 

Правда не понял такой момент - в file_get_contents путь указывается от корня сайта? от расположения скрипта? У меня работает если прямо file.ssi указать без пути, а лежит он в корне... Хотя я так понимал придётся указать путь от папки контроллера... Что я понял не так?

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


какой укажете - такой и будет

по правильному - лучше указывать абсолютный путь (либо напрямую прописать, либо на основе путей из конфига)

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

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

Я просто не понял почему относительный путь работает относительно корня, хотя по всей логике должен работать относительно файла catalog\controller\common\header.php

 

То есть я прямо указал 

$data['mydata'] = file_get_contents("file.ssi")

и всё заработало, хотя file.ssi в корне сайта

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

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