Как подключаются шаблоны или как добавить директорию в Smarty?

Подскажите, пожалуйста!

Есть задачка - надо отделить шаблон админки от шаблона вендоров.

В config.php по идее, было бы логично добавить строчку соответствующую:
‘design_frontend’ => DIR_ROOT . ‘/design/themes/’,
‘design_backend’ => DIR_ROOT . ‘/design/backend/’,
‘design_vendor’ => DIR_ROOT . ‘/design/vendor/’,

После чего скопировать папку /design/backend/ и переименовать в /vendor/. Но вот дальше не понятно - где именно задать сопоставление страницы админки вендора с новым шаблоном.

Могли бы подсказать?

Второй вариант(кривенький) - в vendor.php заменить ссылку init.php на init_vendor.php(копия init.php, с измененной ссылкой на следующий файл), в нем сменить ссылку на config_vendor.php(копия config.php), в котором изменить ‘design_backend’ => DIR_ROOT . ‘/design/backend/’, на ‘design_backend’ => DIR_ROOT . ‘/design/vendor/’. В таком варианте даже открывается главная страница админки, но при попытке перейти на любую другую страницу ругается Smarty на функции добавляемые CS-Cart. Соответственно надо где-то правильно подключить smarty, чтобы корректно подключились её плагины.
"Fatal error: Uncaught --> Smarty Compiler: Syntax error in template “/home/site/www/design/vendor/templates/views/products/manage.tpl” on line 137 “

  • {btn type=“list” text=__(“edit”) href=“products.update?product_id=$product.product_id”}
  • ” unknown tag “btn” <-- thrown in /home/site/www/app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 137

    есть мысль посмотреть

    функиции
    fn_init_templater
    fn_get_theme_path

    класс
    Tygh\SmartyEngine\BackendResource

    и на подобии с случаями когда $area == SiteArea::ADMIN_PANEL($area == ‘A’) написать ваш с $area == $area == SiteArea::VENDOR_PANEL($area == 'V)

    1 лайк

    А могли бы подсказать, где найти fn_init_templater и fn_get_theme_path? Что-то не нашел, но кажется что они нужны. В BackendResource не нашел.

    Что-то никак картинка не складывается.

    Попробовал сделать вот так:
    if ($area == SiteArea::ADMIN_PANEL($area == ‘A’)){
    $_directory = Registry::get(‘config.dir.design_backend’) . ‘templates/’;
    } elseif ($area == SiteArea::VENDOR_PANEL($area == ‘V’)) {
    $_directory = Registry::get(‘config.dir.design_vendor’) . ‘templates/’;
    }

    Но это я похоже фигню какую-то сделал. А если и не фигню - всё-равно надо где-то указать чтобы использовалась эта категория шаблона. А где именно - никак понять не могу.

    app/functions/fn.init.php и app/functions/fn.common.php

    Мде, мне казалось что это будет несколько проще.
    И как бы их отделить…

    Учтите, там еще с кешем могут быть проблемы, если файлы сильно отличаться будут

    @imac А возможно что-то сделать, каким-то образом выделить функционал вендоров из админки на витрину или в отдельное пространство? Сделать никто не берется. Существует модуль вот такой https://webkul.com/blog/cs-cart-multi-vendor-bridge/(вполне бы подошел такой вариант реализации, особенно если бы можно было сделать отдельный головной макет для страниц админки вендоров(чтобы блоки меню, футер и шапку на всех страницах макетов отдельно не менять), но как выяснилось он проблемный и даже не устанавливается без допилов(оказывается не у одного меня такая проблема и модуль уже покупали, да и на форуме аналогичное говорят https://webkul.com/blog/cs-cart-multi-vendor-bridge/). Да и не этот модуль похоже уже. И купить что-то его нереально - все отказываются стать посредниками, а напрямую никак.

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