Все для DataLife Engine / Все для DLE / FAQ по DataLife Engine / FAQ: DLE плагины — разработка и подключение модулей

FAQ: DLE плагины — разработка и подключение модулей

DLE плагины — разработка и подключение модулей
FAQ (полезная справка): DLE плагины — разработка и подключение модулей, список переменных и классов DLE, применяемые при подключение разных сторонних модулей на ваш сайт подробно вы узнаете в этой статье.

Наилучший вариант разработки, использовать новый плагин для создания и управления Система плагинов

FAQ: Модуль DLE Разработка и подключение модулей добавления на сервер файла.
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 соответственно.

В качестве параметров к подключаемым модулям вы можете задавать шаблонные теги скрипта (за исключением использования тега в шаблоне main.tpl и тегов принадлежащих шаблону main.tpl). Например, при добавлении в шаблон полной новости конструкции
{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://вашсайт/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 браузера.


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

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent