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

Как в ocstore 3.0.3.7 добавить свои Twig-фильтры и функции


eos12

Recommended Posts

Господа, не так давно разбираюсь с OC. Вот уперся в проблему в заголовке. По-топорному сделал:

в twig.php после

$twig = new \Twig\Environment($loader, $config);

вставить свой фильтр или функцию, например;

$twig->addFilter(  new \Twig_Filter( 'dump', 'var_dump' ) );

работает.

 

А как это сделать элегантно - из контроллера модуля, которому эта функция нужна?

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


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

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

функции не связанные с запросами к бд можно запихать сюда  system/helper/general.php

Методы с запросами к бд по правилам MVC должны быть в модели, можно свой файл модели создать со своими методами и потом где надо подключать его

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

1 час назад, Venter сказал:

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

Наверное автор, что-то вроде вот этого хочет.

https://twig.symfony.com/doc/3.x/functions/dump.html

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


ненене. 

Именно TWIG-функции! Ну типа сделать свой фильтр aaa чтоб в шаблоне написать {{ products|aaa }}

про mvc естесно наслышан, но не припоминаю, чтоб в рамках этой модели были упоминания про твиг-функции

 

Есть какой-то официально-рекомендуемый способ декларирования таких функций? Ну типа положить в определенное место свой файл с декларациями ТВИГ функций-фильтров и чтоб OS3 их сам подхватил только когда запускается модуль для которого они написаны?

Тот способ который я реализовал ( включить декларирование в файл system/library/template/twig.php ) плох тем, что:

1) правка системный файлов

2) без танцев с бубнами эти функции будут инициироваться при отрисовке каждого шаблона...

Не гуманно...

 

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


3 минуты назад, eos12 сказал:

Именно TWIG-функции

вот так и пишите конкретно что вы хотите именно в twig встроить свое

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

1 минуту назад, Venter сказал:

вот так и пишите конкретно что вы хотите именно в twig встроить свое

я в названии темы написал

Как в ocstore 3.0.3.7 добавить свои Twig-фильтры и функции

мне казалось, что это говорит о том, что речь именно о Twig-фильтрах и фунциях.

Но все равно извините, что вы не поняли ))

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


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

На всякий случай опишу более глубоко проблему. Ну чтоб сэкономить время на ветвление в направлении "а зачем тебе делать так, когда можно сделать по другому..."

Итак, есть автономный( то есть работающий не на CMS) модуль. Поскольку авторы этого модуля не были обременены условностями типа MVC, то состряпали нечто, что с идеологией OC не сильно вяжется. Один из моментов - повсеместное использование самописанных TWIG-функций и фильтров. Вот я и пытаюсь эти фильтры-функции прикрутить к ОС, чтоб не перелопачивать весь модуль. 

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


так вам же уже дали ответ или намекнули

 

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=31419

 

 

 

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

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

так вам же уже дали ответ или намекнули

 

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=31419

 

 

 

Чота я туплю... либо одно из двух. Намек на тему "добавь строчки в файл twig.php" не приближают меня к ответу на вопрос как это сделать без правки этого файла.

А можно уточнить ваши намеки относятся к заданному вопросу или к теме как включить дебагер? В своем первом посте я var_dump использовал потому что это первое что пришло в голову. Дебагер мне не нужен. 

Уточню вопрос по другому:

Нет ли какой-нить волшебной языковой конструкции ОС, которая из модуля ОС может решить мою задачу?

Как мы подгружаем модЕль: $this->load->model( "a/b");

Нет ли такой же ПРОСТОЙ возможности подгрузить самодельные функции TWIG? Ну типа

$this->load->fucked_twig_functions( "f/t" ); (так не работает - я проверял))

 

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


35 минут назад, eos12 сказал:

Нет ли такой же ПРОСТОЙ возможности подгрузить самодельные функции TWIG? Ну типа

НЕТ
И пример показа как загружается var_dump

Хотя, казалось  бы - сделай..
Но увы, простейший способ  окмод


$twig->addFilter(new \Twig\TwigFilter('my_filter','my_filter'));

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

без правки файла twig.php никак. Или как вы сделали или немного расширять сами файлы или переделывать. 

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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