Jump to content

Recommended Posts

У меня почему-то include ищет файлы только в storage/modification/catalog/view/theme/ 
Т.е. если его положить в той же директории, не найдет, а вот если туда - ищет. Причем, не рядом со своим братом в модификейшн а именно вот просто в теме.

Вообще, как-то неказисто работает этот твиг.. Ни тебе дебага ни print_r просто 500-я ошибка и все. а если пускать на локалке - там хотя бы PHP ругается, можно понять, что не так.

Я уже print_r научился делать через форыч, ну, чтобы проверить контроллер, но это же... моветон!

Share this post


Link to post
Share on other sites
3 часа назад, LadaDed сказал:

но это же... моветон!

:mellow:

Рекомендую почитать документацию Twig

Share this post


Link to post
Share on other sites

читал! ну. то, что нашел. https://twig.symfony.com/doc/2.x/tags/include.html
Ужо пытался и путь весь передавать. Кстати, было бы неплохо. Может, у меня повторяющиеся блоки будут лежать в отдельной директории.. НО нет. Только из одного места и берет. 
Наверное, какие-то настройки нужны дополнительные. Но это, как-то странно. Мало того, что из примитивного фреймворка с громким названием "язык программирования"  PHP сделали фреймворк, чтобы было удобнее, чем то, что и так, в общем-то, удобно. Но так теперь еще нужно читать документацию по настройкам, чтобы понять, почему мне удобно?
А то так, вообще-то, не чувствуется удобства-то особого. 


 

Share this post


Link to post
Share on other sites

потому что в инклуде надо прописывать полный путь

{% include "/catalog/view/theme/default/template/controller/action.twig" %}

ну естественно вместо default свой каталог темы

Share this post


Link to post
Share on other sites

У меня почему-то не работает полный путь.. Но, можно же было сделать так, что если лежит в той-же директории, то можно и без пути? А то, заморочно.

Насколько я понимаю, твиг не дает __DIR__ вызвать.

Неудобно это..

Share this post


Link to post
Share on other sites
4 hours ago, LadaDed said:

У меня почему-то не работает полный путь.. Но, можно же было сделать так, что если лежит в той-же директории, то можно и без пути? А то, заморочно.

Насколько я понимаю, твиг не дает __DIR__ вызвать.

Неудобно это..

в какой той же директории? директория всегда одна та в которой index.php лежит.

 

у твига есть параметр в котором пути поиска файлов задаются. можно его добавить и после использовать просто {% include "controller/action.twig" %}

 

$loader->addPath($template_dir);

 

где template_dir будет равняться "/catalog/view/theme/default/template/", где опять же вместо default название темы

 

 

Share this post


Link to post
Share on other sites
Posted (edited)

по простому сделал так. файл /system/library/template/twig.php в функции render.

        $loader = new \Twig_Loader_Filesystem(DIR_TEMPLATE);

        if(!defined("DIR_CATALOG")){
            $loader->addPath(DIR_TEMPLATE.'default/template/');
        }

ну естественно вместо default свою тему.

единственный недостаток жестко привязано к теме будет. в данном файле нет привязки к реестру и поэтому к конфигу нельзя добраться, чтобы каталог текущей темы получить. chukcha предлагал через события сделать, но я не вникал как это, меня так устраивало пока

Edited by lexxkrt

Share this post


Link to post
Share on other sites

покопался в своих старых наработках. вообщем чтобы к теме не привязывалось.

файл /catalog/controller/event/theme.php

функция override дописать в самом конце перед закрытием функции

$args['template_directory'] = $this->config->get('template_directory');

 

файл /system/library/template/twig.php

добавить после лоадера

if(isset($this->data['template_directory'])){
   $loader->addPath(DIR_TEMPLATE.$this->data['template_directory']);
}

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.