Перейти к содержанию
View in the app

A better way to browse. Learn more.

Русскоязычное сообщество Opencart

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

В связи с блокировкой банка QIWI оплата через сайт не возможна.
Для оплаты и получения дополнений просьба писать в личные сообщения 
Admin*у
или в Телеграмм https://t.me/pascha_opencart
После оплаты Вам так же будет доступно скачивание дополнений и обновлений на данном форуме

OCMOD opencart создание модуля

Рекомендуемые сообщения

Опубликовано

С версии opencart 2 в поставке CMS уже встроена система модификации файлов OCMOD. Она пришла на замену VQMOD и имеет некоторые отличия как в принципах формирования файлов xml так и в установке файлов модификаций. Очень большим плюсов OCMOD является тот, что он уже встроен в opencart и не нуждается в дополнительной установке.

Структура папок модуля для OCMOD

Весь модуль должен быть упакаван в zip архів и иметь название xxx.ocmod.zip где ххх – любое слово латиницей.

Внутренняя структура архива:

папка upload

- обязательная папка в которой находяться файлі модуля с подпапками

папка admin - папка с файлами модуля

папка catalog - папка с файлами модуля

и так далее - другие папки

файл instal.xml

- файл с изменениями которые нужно внести в файлы ядра opencart

файл instal.php

- php файл с функциями которые надо выполнить во время установки модуля

файл instal.sql

- sql файл с командами insert, update или delete которые надо выполнить во время установки модуля

Подробнее о структуре файла instal.xml

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

Просмотреть все созданные файлы можно в папке system/storage/modification в данной папке повторяется полная структура папок ядра где размещается модифицированый файл.

Поговорим о самой структуре файла.

Пример файла:

<?xml version=”1.0 encoding=”utf-8″?>
<modification>
<name>Modification Default</name>
<version>1.0</version>
<author>OpenCart Ltd</author>
<link>http://www.opencart.com</link>
<file path=”catalog/controller/common/home.php”>
<operation>
<search><![CDATA[
$data[‘column_left’] = $this->load->controller(‘common/column_left’);
]]></search>
<add position=”replace”><![CDATA[
test123
]]></add>
</operation>
</file>
</modification>

Атрибуты:

“name”

- название модификатора должно быть уникалное в разрезе всех установленных модификаторов. Обязательно к заполнению.

“version”

- версия вашего модификатора/модуля. Не обязательно но желательно к заполнению.

“author”

- автор модуля/модификатора.Не обязательно но желательно к заполнению.

“link”

- линк на любой сайт. Можете указать свой сайт ии оставить пустым.

Теги: “file“

- в данном теге прописывается путь и название файла в который мы будем вносить изменения.

<file path=”catalog/controller/common/home.php”>

изменения будут вноситься в файл

home.php который находится в папке catalog/controller/common

<file path=”catalog/controller/{common,product}/home.php”>

поиск файла home.php будет происходить уже в двух папках в

catalog/controller/common и catalog/controller/product.

То есть можно укозать несколько папок для поиска файла. Для єтого нужно просто указать все папки между двух "{}" через запятую. Если указать путь к файлу так:

<file path=”catalog/controller/*/home.php”>

То поиск файла home.php будет происходить во всех подпапках папки controller.

Так же есть возможность задать несколько файлов в которые мы хотим внести изменения.

Для нескольких файлов :

<file path=”catalog/controller/common/{home,header}*.php”>

Для всех файлов с разширением .php директории “common":

<file path=”catalog/controller/common/*.php”>

“operation“

- тег в котором заключено описание что именно искать и что делать с найденным элементом. Для каждлго задания данный тег открывается и закрывается отдельно. В теге может быть указан атрибут:

error = "skip" - (работает только начина с версии opencart - 2.3) позволят пропускать задачу при возникновении ошибки, без прерывания выполнения всех задач.

<operation error = “skip”></operation>

“search”

 – в данном теге указываем элемент поиска. То, что нужно найти в файле/файлах указаных в теге

“file”

В теги serch можно указывать несколько атрибутов:

trim="(true|false)" - удалять пробелы в указаном искомом тексте

regex="(true|false)" - используется только когда поиск текста происходит через регулярное выражение

index="(number)" - указывает к какому по очереди искомому тексту применять изменения описанные в теге "add"(о нем ниже).  Тоесть если указаный код выглядит так:

<search index=”2″><![CDATA[$data[‘column_left’]]]></search>

то, если в указаном файле, код – “$data[‘column_left’]” встречается несколько раз, то изменения будут применены только ко второму по счету совпавшему тексту.

 "add"

- в данном теге указывается текст который надо вставить в искомый файл. Место куда именно внужно вставить указывается атрибутами:

trim="(true|false)" - перед вставкой уода будут удалены все ненужные пробелы. (не обязателен)

position="(Replace|Before|After)" - обязателен атрибут.

replace - заменить найденый текст (который указаный в теге "search") на текст который указан в теге "add"

before - вставить  текст с теге "add" над котом указаный в теге "search"

after - вставить  текст с теге "add" под котом указаный в теге "search"

offset="(число)" - атрибут указывает сколько строчек отступить от кода указаного в теге "search" и только потом вставить новый код. Если тег "add" будет иметь атрибут position="before" и offset="5"

<add position=”before” trim=”true” offset=”5″>

. То будет найдена искомая строка, потом от нее будет отсчитано 5 строк вверх и после пятой строки встится новый код. Обратите внимание если указать

<add position=”replacetrim=”true” offset=”5″>

 то система найдет искомый код отступить от него в низ 5 строчек и заменить сам искомый текст и эти 5 строк на новый код.

Все тексты которые мы ищим и те которые хотим вставить должны  заключаться в специальные теги в  начале  “<![CDATA[” и закрываться в конце “]]>". Пример:

<search><![CDATA[ искомый текст ]]></search> <add position="replace"><![CDATA[ добавляемый текст ]]></add>

И так, давайте теперь разберем код который  я наводил в начале статьи:
 

<?xml version=”1.0 encoding=”utf-8″?>
<modification>
<name>Modification Default</name>
<version>1.0</version>
<author>OpenCart Ltd</author>
<link>http://www.opencart.com</link>
<file path=”catalog/controller/common/home.php”>
<operation>
<search><![CDATA[
$data[‘column_left’] = $this->load->controller(‘common/column_left’);
]]></search>
<add position=”replace”><![CDATA[
test123
]]></add>
</operation>
</file>
</modification>

Что он делает?

Ответ:

ищем файл catalog/controller/common/home.php

в данном файле ищем строку

$data['column_left'] = $this->load->controller('common/column_left');

 найденную строку замеяем на ” test123″

Надеюсь я хоть чуточку улучшил вам понимание в даном моде и в том как с ним работать.

Последние посетители 0

  • Ни одного зарегистрированного пользователя не просматривает данную страницу

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.