• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь DLE 8.2 Разработка и подключение модулей

Статус
В этой теме нельзя размещать новые ответы.

MSW

Мой дом здесь!
Регистрация
27 Авг 2007
Сообщения
491
Реакции
414
1) DLE 8.2
2) Nulled by FintMax (нашёл на просторах интернета)

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

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

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

создаю файл test.php с содержимым:
PHP:
<?php
echo "> ".$_GET['param']." - ".$_GET['param2']." <";
?>
помещаю его в директорию скрипта: /engine/modules/

подключаю в любой шаблон:
PHP:
{include file="engine/modules/test.php?param=value1&param2=value2"}

в результате в шаблоне выводит:

если обратиться к файлу напрямую:
хттп://адрес.сайта/engine/modules/test.php?param=value1&param2=value2

то ответ выводится:

Подскажите, пожалуйста, что может не так делаю, или не так считываю данные?
 
  • Заблокирован
  • #2
1) DLE 8.2
2) Nulled by FintMax (нашёл на просторах интернета)
Из документации на ДЛЕ 8.2:
создаю файл test.php с содержимым:
PHP:
<?php
echo "> ".$_GET['param']." - ".$_GET['param2']." <";
?>
помещаю его в директорию скрипта: /engine/modules/
подключаю в любой шаблон:
PHP:
{include file="engine/modules/test.php?param=value1&param2=value2"}
в результате в шаблоне выводит:
если обратиться к файлу напрямую:
хттп://адрес.сайта/engine/modules/test.php?param=value1&param2=value2
то ответ выводится:
Подскажите, пожалуйста, что может не так делаю, или не так считываю данные?

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

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

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

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

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

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

Также вы можете использовать подключение своих модулей и для замены основного блока, где выводятся новости и другая основная информация, для этого необходимо использовать данный тег совместно с тегами [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 браузера.

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

PHP:
echo "> ".$param." - ".$param2." <";

теперь осталось както получать из файлов шаблона имя пользователя, или его айди, особенно из шаблона comments.tpl
там есть переменная {author} - но она содержит в себе не только имя пользователя, но и уже ссылку на выпадающее меню для выбора действия.....
 
  • Заблокирован
  • #5
1) DLE 8.2
2) Nulled by FintMax (нашёл на просторах интернета)
Из документации на ДЛЕ 8.2:
создаю файл test.php с содержимым:
PHP:
<?php
echo "> ".$_GET['param']." - ".$_GET['param2']." <";
?>
помещаю его в директорию скрипта: /engine/modules/
подключаю в любой шаблон:
PHP:
{include file="engine/modules/test.php?param=value1&param2=value2"}
в результате в шаблоне выводит:
если обратиться к файлу напрямую:
хттп://адрес.сайта/engine/modules/test.php?param=value1&param2=value2
то ответ выводится:
Подскажите, пожалуйста, что может не так делаю, или не так считываю данные?
Если я правильно понял проблему, то вам нужно понять как пользоваться переменными, передаваемыми в скрипт? Я тоже по началу не понял) Но как всегда все просто. при вызове
PHP:
{include file="engine/modules/test.php?param=value1&param2=value2"}
перемнные доступы не через $_GET, а напрямую. Тоесть в скрипт нужно ставить не $_GET['pram1'] а $pram1.
 
  • Нравится
Реакции: MSW
Если я правильно понял проблему, то вам нужно понять как пользоваться переменными, передаваемыми в скрипт? Я тоже по началу не понял) Но как всегда все просто. при вызове
PHP:
{include file="engine/modules/test.php?param=value1&param2=value2"}
перемнные доступы не через $_GET, а напрямую. Тоесть в скрипт нужно ставить не $_GET['pram1'] а $pram1.
спасибо, это я уже понял, теперь осталось понять как передать само значение которое в шаблоне является переменной, например в шаблоне комментс.тмп -

PHP:
{include file="engine/modules/test.php?param={author}"}

{author} - эта переменная так и передаётся переменной в скрипт test.php, а не самом содержанием, и только при выводе обратно - преобразовывается.
а как получить именно само значение что находиться в шаблонной переменной {author}
 
  • Заблокирован
  • #7
Тут всё сложнее :-( Решения нейти не могу, но знаю что собака зарыта в порядке пименения функций в templates.class.php. Тоесть сначало класс обрабатывает инклуд скрипта, а потом только выставляет переменнные. Выхода ещё не нашол. Возможно целка в next версиях учётёт это и чтонить накалдует
 
Вот что посоветовали на другом форуме:

проблемма в том что тег {include file=""} обрабатывается раньше чем шаблонные переменные таже {author} поэтому так и получается
как вариант перенести обработку тега из load_template в compile (надо смотреть)

Перенос обработки тега помогает шаблонные переменные становятся доступны однако такое замечание не все переменные можно передать например переменную {news-id} можно передать а {author} нет потомучто она содержит теги (форматированный вывод) попадаются запрещенные символы так запрещены символы = & и " может и еще какие

Если обработку тега перенести в compile все намного проще становится необходимость передавать шаблонные переменные в модуль отпадает потомучто они доступны автоматически в виде

{author} => $this->data['{author}']
{news-id} => $this->data['{news-id}'] и тд

------------
автор: nash300
источник:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху