Новое разработанное содержимое модуля не отображается на сайте. PrestaShop

Сэр, в моем проекте я добавляю новый модуль. Это было добавлено в разделе бэк-офиса / модулей. но не появляется на сайте. код выглядит следующим образом ..

mymodule.php


<?php
if ( !defined( '_PS_VERSION_' ) )
exit;

class MyModule extends Module
{
public function __construct()
{
$this->name = 'mymodule';
$this->tab = 'mymodule';
$this->version = 1.6;
$this->author = 'Firstname Lastname';
$this->need_instance = 0;
parent::__construct();
$this->displayName = $this->l( 'My module' );
$this->description = $this->l( 'Description of my module' );
$this->ps_versions_compliancy = array('min' => '1.0', 'max' => _PS_VERSION_);
}

public function install()
{
if (Shop::isFeatureActive())
Shop::setContext(Shop::CONTEXT_ALL);

return parent::install() &&
$this->registerHook('leftColumn') &&
$this->registerHook('header') &&
Configuration::updateValue('MYMODULE_NAME', 'my friend');
}

public function hookDisplayLeftColumn($params)
{
$this->context->smarty->assign(
array(
'my_module_name' => Configuration::get('MYMODULE_NAME'),
'my_module_link' => $this->context->link->getModuleLink('mymodule', 'display')
)
);
return $this->display(__FILE__,'views/templates/hooks/mymodule.tpl');
}

public function hookDisplayRightColumn($params)
{
return $this->hookDisplayLeftColumn($params);
}

public function hookDisplayHeader()
{
$this->context->controller->addCSS($this->_path.'css/mymodule.css', 'all');
}
}

?>

mymodule.tpl


местоположение: просмотр / шаблоны / Крючки / mymodule.tpl

<!-- Block mymodule -->
<div id="mymodule_block_left" class="block">
<h4>Welcome!</h4>
<div class="block_content">
<p>Hello,
{if isset($my_module_name) && $my_module_name}
{$my_module_name}
{else}
World
{/if}
!
</p>
<ul>
<li><a href="{$my_module_link}" title="Click this link">Click me!</a></li>
</ul>
</div>
</div>
<!-- /Block mymodule -->

mymodule.css


Расположение: CSS / mymodule.css

div#mymodule_block_left p {
font-size: 150%;
font-style:italic;
}

display.php


местоположение: контроллеры / передний / display.php

<?php
class mymoduledisplayModuleFrontController extends ModuleFrontController
{
public function initContent()
{
parent::initContent();
$this->setTemplate('display.tpl');
}
}

display.tpl


местоположение: контроллеры / передний / display.php

<h1>well come !!!!!!!!</h1>

1

Решение

Если вы все еще заинтересованы, ваша ошибка, кажется, находится на этой линии в public function install():

 $this->registerHook('leftColumn')

Так должно быть:

$this->registerHook('displayLeftColumn')

«дисплей«ключевое слово кажется важным.

Год спустя документация Prestashop все еще содержит эту критическую ошибку.

Обратите внимание, что: public function hookDisplayLeftColumn($params)

не появляются на всех страницах (например: они появляются на странице продукта, но не на главной странице).

Существуют какие-то особые хуки для конкретной страницы. К примеру,

$this->registerHook('displayHome')

public function hookDisplayHome()

Добавлен мой модуль в центре домашней страницы (ниже уже подключены модули). Все крючки можно найти в таблице ps_hook,

берегись: public function hookDisplayRightColumn($params)

не работает для меня вообще.

Эта страница немного помогла мне с той же проблемой, что и ваша: http://doc.prestashop.com/display/PS16/Managing+Hooks

Ну, я думаю, стоит ответить позже, чем никогда …

редактировать: Я нашел, как активировать столбцы:

В бэк-офисе, искать меню предпочтения / темы и нажмите нарасширенные настройкикнопка

введите описание изображения здесь

Убедитесь, что нужные столбцы активированы. В списке нажмите на зеленая проверка или же красный X изменить видимость столбцов в определенном модуле.

введите описание изображения здесь

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]