2013-11-01 3 views
1

Я работаю в OpenCart 1.5.5 на каком-то новостном модуле для боковой панели. У меня все работает в фоновом режиме, но я не знаю, как я мог бы подключить этот модуль module/aselsi к правой боковой панели на домашней странице, странице продукта и категории.OpenCart показать собственный модуль на боковой панели

Я уже рассматривал некоторые исходные коды, но я не совсем понимаю, как это работает. Я попытался заставить его работать, вставив в теги базы данных oc_layout and oc_layout_route некоторую информацию, но это также не сработало.

Итак, мой вопрос: как я могу сделать свой модуль расширения/модуля на первой странице?

ответ

3

К running in the back-end Я думаю, вы создали пользовательский контроллер, модель и представление для какой-либо формы, где вы управляете своими новостями. Все в порядке.

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

  • admin/controller/module/banner.php
  • admin/language/<YOUR_LANGUAGE>/module/banner.php
  • admin/view/template/module/banner.php

в новый

  • admin/controller/module/aselsi.php
  • admin/language/<YOUR_LANGUAGE>/module/aselsi.php
  • admin/view/template/module/aselsi.php

и переименовать все имена классов, констант, модели и языка имена файлов из banner в aselsi. После этого Вы должны увидеть новый Aselsi модуль под Extensions> Модули в администрировании, где вы должны быть в состоянии присвоить этот модуль к страницам и позиций ...

Сразу хочу отметить, что простое копирование пасты + переименование недостаточно, вам придется отредактировать некоторые другие части, чтобы заставить их работать.

EDIT: Я сейчас не в коде, но да, вы правы, это имеет много общего с этой линией. Вы упоминаете в комментарии. Каждая установка модуля сохраняется как сериализованная строка (которая представляет собой сериализованный массив), который содержит настройки модуля - макет, положение, sort_order и т. Д. Ключ - это ключ модуля - aselsi в вашем случае, так же как и все остальные модули имеют свои собственные модули. Только установка модуля Вы устанавливаете модуль активным, но вы можете показать модуль, сохранив его настройки. В frontend контроллеры для левой и правой колонны и верхнего и нижнего содержимого затем отображаются активных модулей, которые затем отображаются на этом макете и в этом положении.

Установка/удаление модуля (в бэкэнд) может быть расширена до, например, добавлять/удалять новые таблицы БД для этого модуля и/или изменять текущие таблицы БД (путем добавления новых столбцов и т. д.).) путем реализации методов install и uninstall с их соответствующей логикой.

Надеюсь, это простое объяснение поможет немного.

+0

Хорошо, спасибо за ваш ответ. У меня действительно есть пользовательский контроллер blahblah. И я уже получил его в карте модуля, поэтому я уже установил его. Но я буду смотреть на код баннера, а затем скопировать и вставить (и отредактировать), и я увижу, как далеко я приеду. Благодаря! – Mathlight

+0

Хорошо, это работает. Я понимаю, что это как-то связано с этой строкой: '$ this -> model_setting_setting -> editSetting ('aselsi', $ this -> request -> post);' но я не понимаю, как это заставило бы его работать. .. Но я выясню позже, теперь я рад, что он работает: D – Mathlight

+0

Добро пожаловать. Я добавил простое объяснение того, как это работает. – shadyyx

Смежные вопросы