Примеры файлов install.php, install.sql и install.xml в OCMOD-модуле Opencart 2
В ocmod-модуле для Opencart 2.x может быть три файла модификации install.php, install.sql и install.xml. Мы приведем примеры таких файлов, для того чтобы вы сами могли создавать свои модули.
install.xml - файл ocmod-модификации, в котором указываеться, что и где вставлять в существующие файлы;
install.php - скрипты, которые должны выполнится во время установки модуля;
install.sql - запросы к базе данных, которые должны выполниться во время утсановки модуля.
install.php - скрипты, которые должны выполнится во время установки модуля;
install.sql - запросы к базе данных, которые должны выполниться во время утсановки модуля.
Пример оформления файла install.xml: (см. описание параметров ocmod)
<?xml version="1.0" encoding="utf-8"?>
<modification>
<name>Название модуля</name> <code>Unical-ID-module</code>
<version>1.0</version>
<author>Автор модуля</author>
<link>https://www.opencart2x.ru</link>
<file path="catalog/controller/common/home.php">
<operation>
<search trim="true|false" index="0|1|2.."><![CDATA[
$data['column_left'] = $this->load->controller('common/column_left');
]]></search>
<add position="replace|before|after" trim="true|false" offset="2"><![CDATA[
$custom_var = 'Эта переменная вставиться через OCMOD';
]]></add>
</operation>
</file>
</modification>
Пример оформления файла install.php:
<?php
// Добавление прав на управление модулем
$this->load->model('user/user_group');
$this->model_user_user_group->addPermission($this->user->getGroupId(), 'access', 'module/news');
$this->model_user_user_group->addPermission($this->user->getGroupId(), 'modify', 'module/news');
// Проверка на наличие и добавление доп.колонок в таблицу БД
$this->db->query("ALTER TABLE `" . DB_PREFIX . "modification` CHANGE `xml` `xml` MEDIUMTEXT NOT NULL");
$chk = $this->db->query("SHOW COLUMNS FROM `" . DB_PREFIX . "modification` WHERE `field` = 'date_modified'");
if (!$chk->num_rows) {
$this->db->query("ALTER TABLE `" . DB_PREFIX . "modification` ADD COLUMN `date_modified` datetime NOT NULL");
$this->db->query("UPDATE `" . DB_PREFIX . "modification` SET `date_modified` = `date_added` WHERE `date_modified` = '0000-00-00 00:00:00'");
}?>
Пример оформления файла install.sql
/* Создание таблицы в базе данных */
CREATE TABLE IF NOT EXISTS `oc_news_description` (
`news_description_id` int(11) NOT NULL AUTO_INCREMENT,
`news_id` int(11) NOT NULL,
`language_id` int(11) NOT NULL,
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`description` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`short_description` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`news_description_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
/* Добавление новых строк в таблицу */
INSERT INTO `oc_url_alias` (`query`, `keyword`) VALUES
('information/news', 'news'),
('information/posts', 'posts');
Популярные модули Opencart 2