GameAP:Конфигурация модуля: различия между версиями

Материал из HLDM Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «Конфигурация модуля хранится в двух файлах в корневой директории модуля: * '''module_info.php''' - …»)
 
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
 +
[[Категория:АдминПанель|Конфигурация модуля]]
 +
[[АдминПанель:GameAP_Документация|Документация для разработчиков]]
 +
 
Конфигурация модуля хранится в двух файлах в корневой директории модуля:
 
Конфигурация модуля хранится в двух файлах в корневой директории модуля:
 
* '''module_info.php''' - Основные параметры
 
* '''module_info.php''' - Основные параметры
Строка 7: Строка 10:
 
== module_info.php ==
 
== module_info.php ==
 
Путь к файлу должен быть следующим '''application/modules/my_module/module_info.php'''
 
Путь к файлу должен быть следующим '''application/modules/my_module/module_info.php'''
 +
В php файле должен находиться массив $module_info с информацией о модуле. Информация будет добавлена в БД.
  
Пример содержимого:
+
{| class="wikitable" border="1"
 +
|-
 +
! Значение
 +
! Описание
 +
|-
 +
| '''name'''
 +
| Название модуля
 +
|-
 +
| '''cron_script'''
 +
| Имя cron скрипта (контроллера), который будет выполнен через GameAP Cron. Имя скрипта должно быть уникальное, недопустимо указывать имена существующих моделей и библиотек, например имена "cron", "servers", "users" не подойдут. Оптимальным вариантом будет добавление префикса с названием модуля, например my_module_cron.
 +
|-
 +
| '''description'''
 +
| Подробное описание модуля
 +
|-
 +
| '''version'''
 +
| Версия модуля
 +
|-
 +
| '''show_in_menu'''
 +
| Ссылка на главный контроллер будет отображаться в меню.
 +
|-
 +
| '''access'''
 +
| Доступ к модулю. Пользователям, ниже уровня доступа ссылка отображаться не будет. В модуле необходимо также проводить проверки на уровни доступа. '''user''' - отображение всем пользователям, '''srv_global''' - отображение пользователям с глобальными серверными правами и выше, '''admin''' - отображать только администратору
 +
|-
 +
| '''developer'''
 +
| Имя разработчика модуля
 +
|-
 +
| '''site'''
 +
| Сайт разработчика модуля
 +
|-
 +
| '''email'''
 +
| E-Mail разработчика модуля
 +
|-
 +
| '''copyright'''
 +
| Копирайт
 +
|-
 +
| '''license'''
 +
| Лицензия. Можно указать ссылку на сайт.
 +
|}
 +
 
 +
 
 +
'''Пример содержимого:'''
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
 
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
 
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
Строка 27: Строка 71:
 
== module_install.php ==
 
== module_install.php ==
 
Скрипт будет выполнен при установке модуля. В скрипте можно обновлять схему для БД.
 
Скрипт будет выполнен при установке модуля. В скрипте можно обновлять схему для БД.
 +
 +
'''Пример содержимого:'''
 +
<syntaxhighlight lang="php">
 +
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
 +
$this->load->dbforge();
 +
 +
if (!$this->db->table_exists('content')) {
 +
$fields = array(
 +
'id' => array(
 +
'type' => 'INT',
 +
'constraint' => 16,
 +
'auto_increment' => TRUE
 +
),
 +
 +
'category' => array(
 +
'type' => 'CHAR',
 +
'constraint' => 64,
 +
),
 +
 +
'page' => array(
 +
'type' => 'CHAR',
 +
'constraint' => 64,
 +
),
 +
 +
'title' => array(
 +
'type' => 'CHAR',
 +
'constraint' => 64,
 +
),
 +
 +
'text' => array(
 +
'type' => 'TEXT',
 +
),
 +
);
 +
 +
$this->dbforge->add_field($fields);
 +
$this->dbforge->add_key('id', TRUE);
 +
$this->dbforge->create_table('content');
 +
}
 +
</syntaxhighlight>
 +
При установке в базе данных будет создана таблица content.

Текущая версия на 16:29, 14 мая 2014

Документация для разработчиков

Конфигурация модуля хранится в двух файлах в корневой директории модуля:

  • module_info.php - Основные параметры
  • module_install.php - Параметры установки модуля

Оба файла должны находиться в корневой директории модуля, например в application/modules/my_module

module_info.php

Путь к файлу должен быть следующим application/modules/my_module/module_info.php В php файле должен находиться массив $module_info с информацией о модуле. Информация будет добавлена в БД.

Значение Описание
name Название модуля
cron_script Имя cron скрипта (контроллера), который будет выполнен через GameAP Cron. Имя скрипта должно быть уникальное, недопустимо указывать имена существующих моделей и библиотек, например имена "cron", "servers", "users" не подойдут. Оптимальным вариантом будет добавление префикса с названием модуля, например my_module_cron.
description Подробное описание модуля
version Версия модуля
show_in_menu Ссылка на главный контроллер будет отображаться в меню.
access Доступ к модулю. Пользователям, ниже уровня доступа ссылка отображаться не будет. В модуле необходимо также проводить проверки на уровни доступа. user - отображение всем пользователям, srv_global - отображение пользователям с глобальными серверными правами и выше, admin - отображать только администратору
developer Имя разработчика модуля
site Сайт разработчика модуля
email E-Mail разработчика модуля
copyright Копирайт
license Лицензия. Можно указать ссылку на сайт.


Пример содержимого:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

$module_info['name'] 		= 'My module';
$module_info['cron_script'] 	= 'cron_commercial';	
$module_info['description'] 	        = 'Мой модуль для GameAP';
$module_info['version'] 		= '1.0';
$module_info['show_in_menu'] 	= 1;
$module_info['access'] 		= '90';
$module_info['developer'] 		= 'ET-NiK';
$module_info['site'] 			= 'http://hldm.org';
$module_info['email'] 		= 'nikita@hldm.org';
$module_info['copyright'] 		= '(c) 2013, ET-NiK (http://hldm.org)';
$module_info['license'] 		= 'http://www.gameap.ru/license.html';

module_install.php

Скрипт будет выполнен при установке модуля. В скрипте можно обновлять схему для БД.

Пример содержимого:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
$this->load->dbforge();

if (!$this->db->table_exists('content')) {
	$fields = array(
			'id' => array(
								'type' => 'INT',
								'constraint' => 16, 
								'auto_increment' => TRUE
			),
			
			'category' => array(
								'type' => 'CHAR',
								'constraint' => 64, 
			),
			
			'page' => array(
								'type' => 'CHAR',
								'constraint' => 64, 
			),
			
			'title' => array(
								'type' => 'CHAR',
								'constraint' => 64, 
			),

			'text' => array(
								'type' => 'TEXT',
			),
	);

	$this->dbforge->add_field($fields);
	$this->dbforge->add_key('id', TRUE);
	$this->dbforge->create_table('content');
}

При установке в базе данных будет создана таблица content.