Создание модуля
Пишем модуль на примере модуля FAQ
Все модули GMS находятся в директории system/GMS/third_party/.
Папка модуля и файлы
Для начала создайте папку faq в директории third_party. Каждый модуль имеет 3 обязательных файла:
- mcp.faq.php - Файл для админ панели (backend)
- upd.faq.php - Файл установки и удаления модуля
- mod.faq.php - Файл для работы пользователями (frontend)
Для того чтобы отображать в админ панели название модуля, необходимо создать языковой файл.
Файл faq_lang.php находится в директории third_party/faq/language/russian/.
Название файла состоит из имени модуля и приставки lang соединённых подчёркиванием и с расширением php.
Языковой файл содержит 2 обязательных значения массива:
<?php $lang = array( // Required for MODULES page 'faq_module_name' => 'FAQ', 'faq_module_description' => 'Модуль вопросов и ответов а также справочной информации по кабинету.', // END ''=>'', );
Обязательные ключи это faq_module_name и faq_module_description.
Они используются для отображения модуля в админ панели.
Установка модуля, файл upd.faq.php
Файл установки содержит класс состоящий из трёх обязательных методов.
Класс имеет имя модуля и префиксом _Upd, в данном случае это класс Faq_upd.
Метод install()
Данный метод устанавливает все необходимые данные.
Пример использования:
function install(){
$data = array(
'module_name' => 'Faq',
'module_version' => $this->version,
);
$this->GMS->db->insert('modules', $data);
return true;
}
Метод uninstall()
Данный метод удаляет данные если это необходимо.
Пример использования:
function uninstall(){
$this->GMS->db->where('module_name', 'Faq');
$this->GMS->db->delete('modules');
return true;
}
Метод update()
Данный метод используется при обновлении модуля, если версия модуля новее установленной версии то GMS запустит данный метод для обновления.
Метод принимает 1 входящий параметр - старую версию модуля.
Полный пример файла установки
<?php defined('APPPATH') or die('No direct script access.');
// ------------------------------------------------------------------------
/**
* FDCore Studio
*
* @package GMS
* @author NetSoul
* @copyright Copyright (c) 2011, FDCore Studio
* @link http://fdcore.ru/gms/
* @since Version 1.0
*/
// ------------------------------------------------------------------------
class Faq_upd {
var $version = '1.0';
function __construct()
{
$this->GMS =& get_instance();
}
function install(){
$data = array(
'module_name' => 'Faq',
'module_version' => $this->version,
);
$this->GMS->db->insert('modules', $data);
return true;
}
function uninstall(){
$this->GMS->db->where('module_name', 'Faq');
$this->GMS->db->delete('modules');
return true;
}
function update($v=''){
return true;
}
}
Создание backend модуля
Функциональная часть модуля в админ панели находится в файле mcp.faq.php
Для в файле содержится класс Faq_mcp.
Пример файла:
<?php
class Faq_mcp{
function __construct()
{
$this->GMS =& get_instance();
}
function index(){
$this->tags['title'] = 'Вопросы и ответы';
return $this->GMS->twig->display_mcp('index.html', $this->tags);
}
}
По умолчанию выполняется метод index().
Создание frontend модуля
Пользовательская часть содержится в файле mod.faq.php и отличается лишь названием класса - Faq_mod
продолжение следует...
