Разработка и подключение модулей

Return to Introduction  Previous page  Next page

DataLife Engine предоставляет удобные механизмы для подключения разработанных вами модификаций скрипта. Данные механизмы позволяют обеспечить работоспособность и после обновления скрипта на новую версию, т.к. данные механизмы позволяют осуществлять подключение без правки файлов скрипта. Для подключения разработанных вами модулей вам необходимо в любом необходимом вам шаблоне добавить тег:

 

{include file="engine/modules/mymod.php"}

 

Где engine/modules/ это путь к файлу вашего модуля, а mymod.php имя подключаемого файла. Стандартные файлы модулей DataLife Engine находятся в этой папке и мы вам рекомендуем использовать данную папку, однако это не является обязательным требованием и файл может находится в любой другой папке на сервере. Единственное ограничение безопасности по подобному подключению модулей, это то что на папку в которой находится файл не должно быть прав на запись (CHMOD 777). Также мы рекомендуем вам использовать именно относительные пути при подключении модулей, DataLfe Engine автоматически распознает относительные пути и подключает ваши модули уже согласно настройкам скрипта и путям где установлен скрипт. Тем самым вы можете создавать универсальные инструкции по установке ваших модификаций.

 

Также вы можете подключать PHP файлы вашего модуля передав им различные параметры, например:

 

{include file="engine/modules/mymod.php?param=value1&variable2=value2"}

 

Благодаря подобному подключению, вы можете делать ваши модификации многофункциональными, которые будут выполнять различные роли и функции при различных подключениях. Переданные переменные будут доступны в вашем модуле как $param и $variable2 соответственно.

 

Начиная с версии DataLife Engine 8.3 в качестве параметров к подключаемым модулям вы можете задавать шаблонные теги скрипта, например при добавлении в шаблон полной новости конструкции {include file="engine/modules/mymod.php?param={news-id}"}, вы можете передавать вашему стороннему модулю в качестве параметра ID новости и т.д. Вниманию разработчиков: Передаваемые в скрипт параметры, это аналоги GET параметров URL браузера, соответственно при выборе передаваемых тегов вы должны учитывать ограчения GET строки, другими словами вы не можете передать в качестве параметра содержимое полной новости к примеру.

 

Также вы можете использовать подключение своих модулей и для замены основного блока, где выводятся новости и другая основная информация, для этого необходимо использовать данный тег совместно с тегами [aviable=раздел]текст[/aviable] и [not-aviable=раздел]текст[/not-aviable] Описание тегов смотрите в документации в разделе "Вывод новостей на страницах". Вы можете использовать как стандартный список разделов, так и использовать создание собственного раздела сайта, передав его в URL браузера. Рассмотрим простейший пример. Вы хотите добавить к стандартным разделам сайта, добавить свой раздел и выводить информацию в нем из вашего модуля. Допустим вы хотите создать раздел FAQ. Для этого в шаблоне main.tpl прописывается конструкция:

 

[aviable=faq]{include file="engine/modules/mymod.php"}[/aviable]

[not-aviable=faq]{content}[/not-aviable]

 

После подобного подключения помимо работы стандартных разделов сайта при обращении по адресу: http://site.ru/index.php?do=faq вместо новостей будет выводится ваш новый раздел из вашего модуля.

 

Для работы ваших модулей и вывода информации именно в том месте шаблона, где вставлен вышеуказанный тег, обязательно только одно важное условие. Вывод информации должен осуществляется только через функцию PHP echo. Рассмотрим пример простейшего модуля и вывода информации. Создадим файл mymod.php со следующим содержимым:

 

<?php

 

echo "Тестовый модуль";

 

?>

 

При подключении этого файла в шаблоне, в данном месте шаблона появится текст: Тестовый модуль

 

Список переменных и классов DLE которые вы можете использовать в вашем подключаемом модуле, без дополнительного объявления:

 

$is_logged - содержит информацию, является ли посетитель авторизованным пользователем или гостем, и содержит значения true или false.

 

$member_id - содержит массив с информацией о авторизованном пользователе, включая всю его информацию из профиля.

 

$db - класс DLE для работы с базой данных.

 

$tpl - класс DLE для работы с шаблонами.

 

$cat_info - массив содержащий информацию обо всех категориях на сайте.

 

$config - массив содержащий информацию обо всех настройках скрипта.

 

$user_group - массив содержащий информацию о всех группах пользователей и их настройках.

 

$category_id - содержит ID категории которую просматривает посетитель.

 

$_TIME - содержит текущее время в UNIX формате с учетом настроек смещения в настройках скрипта.

 

$lang - массив содержащий текст из языкового пакета.

 

$smartphone_detected - содержит информацию о том, просматривает ли пользователь сайт со смартфона или с обычного браузера, и содержит значения true или false.

 

$dle_module - содержит информацию о разделе сайта, который просматривает пользователь, либо информацию переменной do из URL браузера.

 

Внимание: Ваш модуль должен только читать данные из данных переменных, внесение изменений в значения переменных повлечет сбои в работе стандартных возможностей скрипта и дальнейшей его некорректной работе.