Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


eos12
 Share

Recommended Posts

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

в twig.php после

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

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

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

рилииет.

 

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

Link to comment
Share on other sites


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

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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites


ненене. 

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

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

 

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

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

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

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

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

 

Link to comment
Share on other sites


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

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

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

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

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

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

Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites


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" ); (ик не рилииет - я проверял))

 

Link to comment
Share on other sites


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

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

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

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


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

Link to comment
Share on other sites

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

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.