Как установить модуль

Сам процесс установки достаточно прост и понят, поэтому текста будет не много.

Как установить модуль

1. Залить архив. Войти в корневую директорию сайта, используя фтп-менеджер и загрузить архива с модулем.
Здесь я не буду писать о том как загрузить архив на сервер, но разобрать распространенные конфликтные ситуации просто необходимо.
Некоторые фтп-менеджеры не поддерживают загрузку .rar архивов, поэтому если загружаемый архив с модулем в формате .rar, возможно вам нужно будет перезаписать его в .zip
Еще один важный момент: структура архива не должна быть вложенной. Папки admin и catalog не должны быть вложенными, иначе модуль не будет установлен.
Хорошо, мы убедились, что файлы модуля не являются вложенными в другие папки и загрузили архив на сервер в корневую директорию.

2.

Распаковать архив
Распаковав файлы архива мы практически установили модуль в opencart, все что осталось это активировать и правильно его настроить через панель администратора. Можно закрывать фтп-менеджер.
Приступим к активации модуля. Для начала авторизируйтесь в панели администратора. Перейдите по адресу Дополнения -> Модули. В этом разделе расположены все успешно установленные модули. Найдите среди всех модулей установленный и нажмите на кнопку «Установить». Все! Мы установили модуль.
Некоторые модули требуют активации еще в самих настройках. Для это вам нужно в разделе Дополнения -> Модули найти кнопку «установить»напротив нужного модуля. После нажатия вы попадете на страницу настроек, здесь система предложит ряд параметров которые, можно изменять. Параметры индивидуальны для каждого модуля, поэтому разбирать их мы не будем.

На этом все, если вы так и не увидели нужного модуля в списке, убедитесь в том, что архив сохранен в формате .zip и папки admin и catalog не вложены в другие папки. Если все конфликтные ситуации ликвидированы, а модуль не отображается, возможно версия модуля не работает с версией вашего движка Opencart.

Оставить комментарий

.

Opencart — как разместить модуль (HTML-инфоблок) в любом месте на странице

Подробности
Категория: Opencart (OCstore)
Обновлено 22.01.2018

Иногда очень хочется воспользоваться встроенным в Opencart-2 (OcStore-2) модулем «HTML Содержимое«,
причем вставить его не в стандартные позиции:
column_left / column_right / content_top / content_bottom

а в свою собственную позицию.

В данном случае, автору понадобилось вставить текстовую информацию на странице карточки товара сразу под кнопкой «Купить».

Этот инфоблок будет выводиться на страницах всех товаров.

Шаг-1.
Создадим в админке этот самый инфоблок с нужной информацией.
Заходим в Модули, нажимаем на кнопку редактирования модуля «HTML Содержимое» и заполняем поля НазваниеМодуля, Заголовок (можно не заполнять), Описание -> сюда пишем нашу информацию или вставляем HTML-код,
и в самом низу меняем статус на Включено

Теперь нужно прикрутить этот инфоблок (модуль) к странице КарточкаТовара. На языке Opencart это означает: «Добавить модуль в схему Продукт». Если вам нужно вывести этот модуль на другой странице, например на странице Категории, то нужно «Добавить модуль в схему Категория».
То есть, идем в «Список Схем» и нажимаем на кнопку редактирования страницы «Продукт».
Здесь мы хотим обратить внимание, что под Схемами подразумеваются шаблоны Страниц: Продукт, Категория, Аккаунт, Производитель и т.д.

То есть, под каждую страницу на морде сайте создан свой собственный шаблон. Хотя, более точное обозначение было бы «каркас страницы», а не шаблон.

Итак, добавляем наш модуль в схему Продукт

Теперь, если зайти на страницу карточки товара, то мы увидим содержимое нашего модуля в верхней части страницы

Чтобы вывести модуль в нашей собственной позиции на странице, нужно дать название этой позиции. Мы назвали ее content_infoblock
И в этом месте у вас могут появиться грабли. Проблема может возникнуть с количеством символов в названии (спасибо нашему читателю Алексею за подсказку).
Дело в том, что в базе данных по умолчанию установлено ограничение для количества символов = 14 в поле `position` таблицы `oc_layout_module`
Поэтому, нужно либо придумать название модуля не более 14 символов, либо изменить значение для этого поля, например VARCHAR(255). Это можно сделать легко в PhpMyAdmin

Итак, определившись с названием модуля, пропишем его в выпадающем списке в админке.
Для этого открываем файл

/admin/view/template/design/layout_form.tpl

и находим кусок кода

<?php if ($layout_module[‘position’] == ‘content_top’) { ?>
<option value=»content_top» selected=»selected»><?php echo $text_content_top; ?></option>
<?php } else { ?>
<option value=»content_top»><?php echo $text_content_top; ?></option>
<?php } ?>

ниже добавляем название нашей позиции

<?php if ($layout_module[‘position’] == ‘content_infoblock’) { ?>
<option value=»content_infoblock» selected=»selected»>Инфоблок</option>
<?php } else { ?>
<option value=»content_infoblock»>Инфоблок</option>
<?php } ?>

 Далее находим строку

и ниже вставляем

Теперь идем в админку в Схемы, входим в редактор страницы «Продукт» и для модуля «HTML Содержимое > Инфоблок ДоствкаОплата»
выбираем позицию «Инфоблок»

Теперь обновив на сайте страницу карточки товара наш инфоблок исчезнет.

Потому что страница ничего не знает о новой позиции. Переходим к шагу 2.

Шаг-2.
Подготовим данные для вывода на странице товара нашего инфоблока.
Мы знаем, что данные для страницы карточки товара готовятся в контроллере

/catalog/controller/product/product.php

 Открываем его и, почти в самом конце, сразу после строки

Внимание! Эта строка встречается в скрипте 2 раза.

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

 // Получаем данные для модуля Инфоблок

} else {
$route = ‘common/home’;
}

$data[‘modules’] = array();

foreach ($modules as $module) {
$part = explode(‘.’, $module[‘code’]);

}

if (isset($part[1])) {

if ($setting_info && $setting_info[‘status’]) {

        }
    }
}

// Конец Инфоблок

 Ниже этого кода должно быть

……
} else {
……

 Этот блок кода является универсальным и может использоваться для вывода любого модуля в нашей собственной позиции content_infoblock на ЛЮБОЙ странице.
Например, если нам потребуется прикрутить наш инфоблок (или любой другой модуль!) на страницу Категория, то мы вставим этот кусок кода в контроллер Категории

/catalog/controller/product/category.php

И таких позиций мы можем создавать сколько угодно, с уникальными именами разумеется.

Итак, данные мы получили. Остался последний шаг — вывести их на морде в нужной позиции. Делаем шаг-3.

Шаг-3.
Открываем шаблон страницы продукта

/catalog/view/theme/default/template/product/product.tpl

Находим кнопку «Купить» (примерно 313 строка)

<div class=»form-group»>
  <label class=»control-label» for=»input-quantity»><?php echo $entry_qty; ?></label>
  <input type=»text» name=»quantity» value=»<?php echo $minimum; ?>» size=»2″ id=»input-quantity» class=»form-control» />
  <input type=»hidden» name=»product_id» value=»<?php echo $product_id; ?>» />
  <br />
  <button type=»button» id=»button-cart» data-loading-text=»<?php echo $text_loading; ?>» class=»btn btn-primary btn-lg btn-block»><?php echo $button_cart; ?></button>
</div>

 и ниже добавляем код вывода нашего инфоблока(ов)

<?php foreach ($modules as $module) { echo $module; } ?>

 Любуемся на результат нашего труда:

Если вы спросите: почему модуль выводится циклом? Мы ответим: потому что мы можем создать несколько разных модулей и указать им нашу позицию, по аналогии со стандартными позициями. Все модули с нашей позицией выведутся на странице один за другим. В данном примере массив состоит из одного элемента-модуля.

Справедливости ради хотим выразить благодарность автору статьи http://free-it.ru/posts/kak-dobavit-novuyu-poziciyu-dlya-opencart-2-0

Именно в этой статье мы почерпнули бесценную информацию, как прикрутить любой модуль на любую страницу в Opencart 2.
Однако мы принципиально упростили методику и сделали ее более универсальной, с нашей точки зрения. Но в конечном итоге, решать вам.

Если будут вопросы, пишите!

Вам также может понравиться

Об авторе admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *