передний контроллер не будет загружать css и js из setMedia на модуле prestashop 1.7

передний контроллер не будет загружать css и js из setMedia на модуле prestashop 1.7

26.08.2017 10:39:00 Просмотров 42 Источник

Я пишу модуль PrestaShop для PrestaShop 1.7.2.1.

Я создал передний контроллер для моего модуля со следующим кодом:

<?php

require_once (__DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'php'.
DIRECTORY_SEPARATOR.'TuxInDb.php');

class TuxInModCarTypeCarTypeProductsModuleFrontController extends ModuleFrontController {

    private $tuxDb;

    public function initContent(){
        parent::initContent();
        $productIds = [];
        $this->tuxDb = TuxInDb::getInstance();
        $companyName = Tools::getValue('company_name');
        $modelName = Tools::getValue('model_name');
        $year = Tools::getValue('year');
        $month = Tools::getValue('month');
        $carType = Tools::getValue('car_type');
        $carListCarTypeIds=$this->tuxDb->getCarListCarTypeIds($companyName,$modelName,$carType,$year,$month);
        $productIds = $this->tuxDb->getProductIdsByCarListCarTypeIds($carListCarTypeIds);
        $this->context->smarty->assign('product_ids',$productIds);
        $this->setTemplate('module:tuxinmodcartype/views/templates/front/cartypeproducts.tpl');
    }

    public function setMedia() {
        parent::setMedia();
        $this->registerStylesheet('module-tuxinmodcartype-cartypeproducts-style','modules/'.$this->module->name.'/css/cartypeproducts.css');
        $this->registerJavascript('module-tuxinmodcartype-cartypeproducts-js','modules/'.$this->module->name.'/js/cartypeproducts.js');
    }

}

как вы можете видеть в setMedia()я загружаю css и js файлы. Я даже отладил его в xdebug, и я заметил, что эти строки кода фактически выполняются, но когда я пытаюсь просмотреть свой передний контроллер со следующим url-адресом:

http://prestashop.dev:8080/index.php?company_name=BMW&model_name=SERIA+1&year=2011&month=1&car_type=5+%D7%93%D7%9C%D7%AA%D7%95%D7%AA+%28%D7%94%D7%90%D7%A6%D7%B3%D7%91%D7%A7%29&fc=module&module=tuxinmodcartype&controller=cartypeproducts&id_lang=1

и я проверяю вкладку сети моего браузера google chrome, я заметил, что файл js и css, который мне нужен, не загружается.

есть идеи?

Я не вижу ошибок javascript или php (я также включил DEV в prestashop).

У вопроса есть решение - Посмотреть?

Ответы - передний контроллер не будет загружать css и js из setMedia на модуле prestashop 1.7 / front controller won't load css and js from setMedia on a prestashop 1.7 module

TheDrot

26.08.2017 11:19:45

Если путь к активу неправильный, Prestashop даже не добавит его в <head>(или снизу в зависимости от настроек CCC) и не выбросит никаких ошибок.

Вероятно, ваш путь неверен, чтобы получить правильный путь, используйте это:

$this->registerStylesheet('module-tuxinmodcartype-cartypeproducts-style', $this->module->getPathUri() . 'css/cartypeproducts.css');
$this->registerJavascript('module-tuxinmodcartype-cartypeproducts-js', $this->module->getPathUri() . 'js/cartypeproducts.js');
https://stackoverflow.com/questions/45893113/front-controller-wont-load-css-and-js-from-setmedia-on-a-prestashop-1-7-module/45893426#comment78745943_45893426
спасибо. я буду использовать это с этого момента.. но это все равно дает те же результаты. тот же путь, что и раньше, что файлы не загружаются
https://stackoverflow.com/questions/45893113/front-controller-wont-load-css-and-js-from-setmedia-on-a-prestashop-1-7-module/45893426#comment78746064_45893426
я постараюсь отладить, чтобы увидеть, где он терпит неудачу
https://stackoverflow.com/questions/45893113/front-controller-wont-load-css-and-js-from-setmedia-on-a-prestashop-1-7-module/45893426#comment78746129_45893426
@ufk вы можете отладить его здесь . Добавьте перед отмеченной строкой if ($id == 'module-tuxinmodcartype-cartypeproducts-js') die($this->getFullPath($relativePath));это должно показать вам, правильно ли AssetManager анализирует ссылку.
https://stackoverflow.com/questions/45893113/front-controller-wont-load-css-and-js-from-setmedia-on-a-prestashop-1-7-module/45893426#comment78746752_45893426
ладно... я отладил, и он находит файлы js и css и предоставляет правильный относительный путь. JavascriptManager.функция добавления php добавляет файл в список правильно. но все равно он не загружается
https://stackoverflow.com/questions/45893113/front-controller-wont-load-css-and-js-from-setmedia-on-a-prestashop-1-7-module/45893426#comment78747333_45893426
МММ.. Я отладил и заметил, что в FrontController php-файл getStylesheets() и getJavascript() выполняются, возвращают правильные значения (даже основные требования css и js этого модуля), но на вкладке сети моего Google chrome я замечаю, что ничего не запрашивается.
Bruno Leveque

12.06.2019 04:07:43

Это хорошо работает с Prestashop 1.7.икс

Добавить это внутри вашего ModuleFrontController:

public function setMedia()
{
    parent::setMedia();
    $this->addCSS($this->module->getPathUri().'views/css/style.css');
}

Надеюсь, это поможет!

Закрыть X