Автор Тема: Расположение модуля категорий на главной  (Прочитано 4079 раз)

16 Сентября 2014, 13:48:59
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте, имеется PrestaShop 1.6. и стандартная тема. Нужно "Блок категорий" вывести на главной слева от слайд шоу и отредактировать слайд шоу на соответствующую ширину и двинуть вправо(подробнее на скрине). Обещаю N рублей за исчерпывающую инструкцию на Яндекс...Спасибо
16 Сентября 2014, 13:55:31
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 13630
  • Репутация: +14563/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Переделать нужно модуль Блок категорий, добавить вывод в хук displayHome и поменять стили.
16 Сентября 2014, 14:10:17
Ответ #2
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Переделать нужно модуль Блок категорий, добавить вывод в хук displayHome и поменять стили.
Со стилями то я разберусь, но никак не могу осилить как именно откорректировать блок и создать хуки. При всех моих попытках выдает ошибку размещения модуля в хук.
16 Сентября 2014, 14:15:57
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 13630
  • Репутация: +14563/-1
  • Сообщество PrestaShop
    • Просмотр профиля
16 Сентября 2014, 15:30:33
Ответ #4
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если что я только учусь) Получается я добавляю в 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;
   }
16 Сентября 2014, 15:58:58
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 1280
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В примере, который дал 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());
}
16 Сентября 2014, 16:13:37
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 1012
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Откройте файл php каждого модуля. Скопируйте код установки и хука из модуля слайдера в модуль категорий. Все просто.
27 Сентября 2014, 02:29:59
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 139
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А в виде модуля это реализовано? Не хотелось бы в файлах лазить, что-то править кривыми руками..., хотелось бы в разделе модули добавить модуль в виде файла, а система уже сама сделает правки где надо... Кстати, где почитать про это, про создание модуля?
27 Сентября 2014, 16:21:33
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 105584
  • Репутация: +39547/-0
    • Просмотр профиля
    • Webstudio UwK
Cоздание интернет сайтов Webstudio UwK