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]
После подобного подключения помимо работы стандартных разделов сайта при обращении по адресу:
Для работы ваших модулей и вывода информации именно в том месте шаблона, где вставлен вышеуказанный тег, обязательно только одно важное условие. Вывод информации должен осуществляется только через функцию 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 браузера.
Внимание: Ваш модуль должен только читать данные из данных переменных, внесение изменений в значения переменных повлечет сбои в работе стандартных возможностей скрипта и дальнейшей его некорректной работе.
Источник: dle-news.ru