Модуль: различия между версиями
Qexy (обсуждение | вклад) (Новая страница: «Модуль - это дополнительный компонент, ориентированный на расширение функционала [https://ru…») |
Qexy (обсуждение | вклад) |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 5: | Строка 5: | ||
== Создание простейшего модуля до версии 2.4 (включительно) == | == Создание простейшего модуля до версии 2.4 (включительно) == | ||
+ | === Основной файл модуля === | ||
Файл: location/'''example'''.php (модуль example будет доступен на странице mysite.com/?mode='''example''') | Файл: location/'''example'''.php (модуль example будет доступен на странице mysite.com/?mode='''example''') | ||
− | + | <syntaxhighlight lang="php"> | |
− | + | <?php | |
// Защита от прямого обращения к файлу | // Защита от прямого обращения к файлу | ||
Строка 21: | Строка 22: | ||
?> | ?> | ||
− | + | </syntaxhighlight> | |
+ | |||
== Создание простейшего модуля для версии Reloaded == | == Создание простейшего модуля для версии Reloaded == | ||
+ | === Основной файл модуля === | ||
Файл: modules/'''example'''.php (модуль example будет доступен на странице mysite.com/?mode='''example''') | Файл: modules/'''example'''.php (модуль example будет доступен на странице mysite.com/?mode='''example''') | ||
− | < | + | <syntaxhighlight lang="php"> |
<?php | <?php | ||
// Защита от прямого обращения к файлу | // Защита от прямого обращения к файлу | ||
Строка 33: | Строка 36: | ||
// Определение видимости свойства core | // Определение видимости свойства core | ||
private $core; | private $core; | ||
+ | Определение видимости свойства cfg и выставление значения по умолчанию | ||
+ | public $cfg = array(); | ||
// Конструктор класса, получаемый обязательный параметр core | // Конструктор класса, получаемый обязательный параметр core | ||
public function __construct($core){ | public function __construct($core){ | ||
Строка 45: | Строка 50: | ||
} | } | ||
?> | ?> | ||
− | </ | + | </syntaxhighlight> |
+ | |||
+ | === Файл конфигурации модуля === | ||
+ | Файл configs/modules/'''example'''.php (Данный конфиг будет доступен в нашем объекте module под свойством cfg - $this->cfg) | ||
+ | <syntaxhighlight lang="php"> | ||
+ | <?php | ||
+ | $cfg = array ( | ||
+ | 'MOD_ENABLE' => true, // Статус модуля [Включен-true|Выключен-false] | ||
+ | 'MOD_TITLE' => 'Тестовый модуль', // Название модуля | ||
+ | 'MOD_DESC' => 'Описание тестового модуля', // Описание модуля | ||
+ | 'MOD_AUTHOR' => 'Qexy', // Автор | ||
+ | 'MOD_SITE' => 'http://mysite.com', // Сайт автора | ||
+ | 'MOD_EMAIL' => 'mysuperemail@mysite.com', // E-Mail автора | ||
+ | 'MOD_VERSION' => '1.0', // Версия | ||
+ | 'MOD_URL_UPDATE' => 'http://myothersite.com', // Адрес обновлений (в данный момент не используется) | ||
+ | 'MOD_CHECK_UPDATE' => true, // Проверка на обновления (в данный момент не используется) | ||
+ | ); | ||
+ | ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Файл языкового пакета модуля === | ||
+ | Файл language/YOUR_LANGUAGE/'''example'''.php (Данный языковой пакет будет доступен в объекте core под свойством lng_m - $this->core->lng_m) | ||
+ | <syntaxhighlight lang="php"> | ||
+ | <?php | ||
+ | $lng = array( | ||
+ | 'your_elem1' => 'Проверка', | ||
+ | 'your_elem2' => 'модуля', | ||
+ | ); | ||
+ | ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
− | == | + | == Полезные ссылки == |
− | + | # [[Внутреннее API]] | |
+ | # [[Ядро]] |
Текущая версия на 11:33, 22 февраля 2016
Модуль - это дополнительный компонент, ориентированный на расширение функционала движка.
Содержание
История
До версии WebMCR 2.4(включительно), модули располагались в директории location и подгружались в основу движка без каких-либо стандартов. Для разработчиков было крайне просто создавать модули, т.к. для их работы было необходимо написать всего 3-4 строчки кода. С появлением версии Reloaded, стандарт модулей изменился и теперь для их работы необходимы определенные условия, например, они должны находится в директории modules, иметь языковой файл, иметь файл конфигурации, иметь класс module и метод content. Это усложнило процесс создания простейшего модуля, но добавило множество новых возможностей.
Создание простейшего модуля до версии 2.4 (включительно)
Основной файл модуля
Файл: location/example.php (модуль example будет доступен на странице mysite.com/?mode=example)
<?php
// Защита от прямого обращения к файлу
if(!defined('MCR')){ exit; }
// Название страницы
$page = 'Hello, world!';
// Содержимое страницы
$content_main = 'Content';
?>
Создание простейшего модуля для версии Reloaded
Основной файл модуля
Файл: modules/example.php (модуль example будет доступен на странице mysite.com/?mode=example)
<?php
// Защита от прямого обращения к файлу
if(!defined("MCR")){ exit("Hacking Attempt!"); }
// Создание обязательного объекта
class module{
// Определение видимости свойства core
private $core;
Определение видимости свойства cfg и выставление значения по умолчанию
public $cfg = array();
// Конструктор класса, получаемый обязательный параметр core
public function __construct($core){
// Присвоение свойству core, переменной $core, которая в свою очередь является объектом
$this->core = $core;
}
// Метод, возвращаемый результат
public function content(){
return "Hello, world!";
}
}
?>
Файл конфигурации модуля
Файл configs/modules/example.php (Данный конфиг будет доступен в нашем объекте module под свойством cfg - $this->cfg)
<?php
$cfg = array (
'MOD_ENABLE' => true, // Статус модуля [Включен-true|Выключен-false]
'MOD_TITLE' => 'Тестовый модуль', // Название модуля
'MOD_DESC' => 'Описание тестового модуля', // Описание модуля
'MOD_AUTHOR' => 'Qexy', // Автор
'MOD_SITE' => 'http://mysite.com', // Сайт автора
'MOD_EMAIL' => 'mysuperemail@mysite.com', // E-Mail автора
'MOD_VERSION' => '1.0', // Версия
'MOD_URL_UPDATE' => 'http://myothersite.com', // Адрес обновлений (в данный момент не используется)
'MOD_CHECK_UPDATE' => true, // Проверка на обновления (в данный момент не используется)
);
?>
Файл языкового пакета модуля
Файл language/YOUR_LANGUAGE/example.php (Данный языковой пакет будет доступен в объекте core под свойством lng_m - $this->core->lng_m)
<?php
$lng = array(
'your_elem1' => 'Проверка',
'your_elem2' => 'модуля',
);
?>