Расположение модуля категорий на главной

Автор monstar, 16 сентября 2014, 13:48:59

« назад - далее »

monstar

Здравствуйте, имеется PrestaShop 1.6. и стандартная тема. Нужно "Блок категорий" вывести на главной слева от слайд шоу и отредактировать слайд шоу на соответствующую ширину и двинуть вправо(подробнее на скрине). Обещаю N рублей за исчерпывающую инструкцию на Яндекс...Спасибо

Adik

Переделать нужно модуль Блок категорий, добавить вывод в хук displayHome и поменять стили.

monstar

Цитата: Adik от 16 сентября 2014, 13:55:31
Переделать нужно модуль Блок категорий, добавить вывод в хук displayHome и поменять стили.
Со стилями то я разберусь, но никак не могу осилить как именно откорректировать блок и создать хуки. При всех моих попытках выдает ошибку размещения модуля в хук.


monstar

Если что я только учусь) Получается я добавляю в php файл модуля строку !$this->registerHook('displayTopColumn') || и имею следующий вид, но ничего не выходит=((
   
public function install()
   {
      // Prepare tab
      $tab = new Tab();
      $tab->active = 1;
      $tab->class_name = "AdminBlockCategories";
      $tab->name = array();
      foreach (Language::getLanguages(true) as $lang)
         $tab->name[$lang['id_lang']] = 'BlockCategories';
      $tab->id_parent = -1;
      $tab->module = $this->name;

      if (!$tab->add() ||
         !parent::install() ||
         !$this->registerHook('displayTopColumn') ||
         !$this->registerHook('footer') ||
         !$this->registerHook('header') ||
         // Temporary hooks. Do NOT hook any module on it. Some CRUD hook will replace them as soon as possible.
         !$this->registerHook('categoryAddition') ||
         !$this->registerHook('categoryUpdate') ||
         !$this->registerHook('categoryDeletion') ||
         !$this->registerHook('actionAdminMetaControllerUpdate_optionsBefore') ||
         !$this->registerHook('actionAdminLanguagesControllerStatusBefore') ||
         !$this->registerHook('displayBackOfficeCategory') ||
         !Configuration::updateValue('BLOCK_CATEG_MAX_DEPTH', 4) ||
         !Configuration::updateValue('BLOCK_CATEG_DHTML', 1) ||
         !Configuration::updateValue('BLOCK_CATEG_ROOT_CATEGORY', 1))
         return false;

      // Hook the module either on the left or right column
      $theme = new Theme(Context::getContext()->shop->id_theme);
      if ((!$theme->default_left_column || !$this->registerHook('leftColumn'))
         && (!$theme->default_right_column || !$this->registerHook('rightColumn')))
      {
         // If there are no colums implemented by the template, throw an error and uninstall the module
         $this->_errors[] = $this->l('This module need to be hooked in a column and your theme does not implement one');
         parent::uninstall();
         return false;
      }
      return true;
   }

Mr.Sen

В примере, который дал Adik есть еще
public function hookDisplayHome()
{
if (!$this->isCached('vk.tpl', $this->getCacheId()))
{
$vkurl = Configuration::get('vk_url');
$this->context->smarty->assign('vkurl', $vkurl);
}
return $this->display(__FILE__, 'vk.tpl', $this->getCacheId());
}

tigran

Откройте файл php каждого модуля. Скопируйте код установки и хука из модуля слайдера в модуль категорий. Все просто.

MXM

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

Виталий

Cоздание интернет сайтов Webstudio UwK