Престашоп крюк ModuleRoutes - PullRequest
0 голосов
/ 15 января 2020

У меня проблема с перехватом регистра, и я не могу найти хорошую документацию о moduleRoutes
моя функция перехвата:

public function hookModuleRoutes()
{
    return [
        'module-youtube_video-display' => [
            'controller' => 'display',
            'rule' => 'youtube_video',
            'params' => [
                'fc' => 'module',
                'module' => 'youtube_video'
                ]
        ]
    ];
}

modules \ youtube_video \ vpages \ controllers \ front \ display. php

class VpagesDisplayModuleFrontController extends ModuleFrontController {
public function init(){
    parent::init();
    $this->setTemplate('youtube_video.tpl');
}

}

modules \ youtube_video \ views \ templates \ hook \ youtube_video.tpl

<div id="custom-text">
<p>{$youtube_url}</p></div>

i попробуйте это с разными уроками и все равно получите 404, когда я попытаюсь go направить

1 Ответ

0 голосов
/ 22 января 2020

Вы забыли некоторые функции Prestashop, такие как «переписывание ссылок» и «язык». Попробуйте это:

public function hookModuleRoutes($params)
{
    $head = Configuration::get('your_config', $this->language->id);
    $my_youtube_video = array(
        'module-youtube_video-display' => array(
            'controller' => 'display',
            'rule' => $head . '/youtube_video/{link_rewrite}',
            'keywords' => array(
                'link_rewrite' =>   array('regexp' => '[_a-zA-Z0-9-\pL]*', 'param' => 'link_rewrite'),
            ),
            'params' => array(
                'fc' => 'module',
                'module' => 'youtube_video',
            ),
        )
    );

    return $my_youtube_video;
}

А почему у вас здесь есть «vpages»? Почему бы не просто модули \ youtube_video \ controllers \ front \ display. php

И не забудьте при установке модуля:

$this->registerHook('moduleRoutes');
...