Модуль: различия между версиями

Материал из WebMCR wiki
Перейти к навигации Перейти к поиску
(Новая страница: «Модуль - это дополнительный компонент, ориентированный на расширение функционала [https://ru…»)
 
 
(не показано 6 промежуточных версий этого же участника)
Строка 5: Строка 5:
  
 
== Создание простейшего модуля до версии 2.4 (включительно) ==
 
== Создание простейшего модуля до версии 2.4 (включительно) ==
 +
=== Основной файл модуля ===
 
Файл: location/'''example'''.php (модуль example будет доступен на странице mysite.com/?mode='''example''')
 
Файл: location/'''example'''.php (модуль example будет доступен на странице mysite.com/?mode='''example''')
{| class="wikitable"
+
<syntaxhighlight lang="php">
|<?php
+
<?php
 
// Защита от прямого обращения к файлу
 
// Защита от прямого обращения к файлу
  
Строка 21: Строка 22:
  
 
?>
 
?>
|}
+
</syntaxhighlight>
 +
 
  
 
== Создание простейшего модуля для версии Reloaded ==
 
== Создание простейшего модуля для версии Reloaded ==
 +
=== Основной файл модуля ===
 
Файл: modules/'''example'''.php (модуль example будет доступен на странице mysite.com/?mode='''example''')
 
Файл: modules/'''example'''.php (модуль example будет доступен на странице mysite.com/?mode='''example''')
<source lang="php">
+
<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:
 
}
 
}
 
?>
 
?>
</source>
+
</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' => 'модуля',
);
?>


Полезные ссылки

  1. Внутреннее API
  2. Ядро