Добавление новой позиции Opencart 2x

Всё чаще и чаще при разработке магазинов приходится сталкиваться с решением дизайнеров о нестандартном для Opencart расположении блоков. В сети есть достаточное кол-во статей о том, как добавить новую позицию в opencart 2-ой ветки, но без доработки они нормально не заработают.

И есть всего одна тема, на opencartforum, в которой по шагам, без заморочек, и без необходимости доработок прописано, как это сделать. Решил перенести информацию в блог, т.к. та тема на форуме далеко от топа, и вчера мне найти её составило большого труда.

Будем добавлять позиции для opencart 2.1 и 2.3, и имейте ввиду, что название позиции ( в нашем случае header_content) не должно быть более 14 символов — это ограничение связано с размером данного поля в базе данных.
Добавление новой позиции Opencart 2x
Если хотите использовать название больше 14 символов, вам нужно изменить длину поля в базе данных:
Нам нужна таблица oc_layout_module, в ней поле position — увеличиваем длину поля до 64, к примеру
Добавление новой позиции Opencart 2x

Новая позиция в шапку сайта для Opencart 2.1

1. Открываем:
admin/language/russian/desing/layout.php
Перед:

Добавляем:

2. Открываем:
admin/controller/design/layout.php
Перед:

Добавляем:

3. Открываем:
admin/view/template/design/layout_form.tpl
Перед:

Добавляем:

Перед:

Добавляем:

4. Открываем:
catalog/controller/common/header.php
Перед:

Добавляем:

5. Создаём:
catalog/controller/common/header_content.php
Добавляем код:

6. Создаём:
catalog/view/theme/*theme_name*/template/common/header_content.tpl
Добавляем код:

7. Открываем:
catalog/view/theme/*theme_name*/template/common/header.tpl
И в нужное место добавляем:

Спасибо за описания решения пользовтелю Yurasik.

Новая позиция в шапку сайта для Opencart 2.3

1. Открываем:
admin/language/russian/desing/layout.php
Перед:

Добавляем:

2. Открываем:
admin/controller/design/layout.php
Перед:

Добавляем:

3. Открываем:
admin/view/template/design/layout_form.tpl
Перед:

Добавляем:

В двух местах Перед:

Добавляем:

4. Открываем:
catalog/controller/common/header.php
Перед:

Добавляем:

5. Создаём:
catalog/controller/common/header_content.php
Добавляем код:

6. Создаём:
catalog/view/theme/*theme_name*/template/common/header_content.tpl
Добавляем код:

7. Открываем:
catalog/view/theme/*theme_name*/template/common/header.tpl
И в нужное место добавляем:

Спасибо пользователю dayto за адаптацию предыдущего решения к версии 2.3.

Естественно, что данное решение подойдёт к любой сборке Opencart (ocStore, Opencart.pro).

Ссылка на тему — вдруг там что-то полезное допишут.

Комментариев: 7
  1. Павел

    Спасибо за статью, получилось с первого раза за 5 минут…
    Прост Огонь!!! :twisted: :twisted: :twisted:

  2. Alexandr

    Решение не будет работать в Opencart 2.3. Так как не будет сохранять модули в админке в схеме 100% проверено

    1. logi (автор)

      Название позиции должно содержать не больше 14 символов — это ограничение поля в базе MySQL при сохранении модуля в позиции.
      Информацию добавил в статью.

  3. Bozhynov Aleksandr

    Если создадите своё поле количество символов(букв) которого отличается от header_content, то это поле не будет сохранять модули в Схеме, если количество символов его будет больше чем в базе данных oc_layout_module, там есть столбец position с 14 символами, увеличьте на то количество, на которое посчитаете нужным для Вашей работы)))) ;-)
    Люблю, целую, Ваш Александр.

    1. logi (автор)

      Да, всё верно, сам сталкивался с этим — и забыл добавить в статью :(
      Добавил….

  4. Alexandr

    А вот мне не помогло изменение кол-ва символов, пришлось уложится в 14 символов :|

  5. Наиль

    Хорошо бы в статью поместить скриншот конечного результата.

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: