Добавляем свои Теги include={имя} в DLE
Версия: Урок 3

Внимание! Модули сайта находятся в процессе разработки. Функционал доступен частично.
МЫ НЕ СТОИМ НА МЕСТЕ, А СТАРАЕМСЯ СДЕЛАТЬ САЙТ УНИКАЛЬНЫМ!
Ограничение функций от сервисов Ucoz является помехой,но мы будем искать варианты, ведь многие функции либо скрыты и не запрещены,
либо давно забыты и убраны из списков.
Многое можно осуществить через JS и Json.
Мы ищем решение для добавления большего количества файлов.



Специальная тема.

C чего начнем?

А начнем с ковыряния уже готовых модулей, которые имеют свой ТЕГ для запуска модулей!

И нельзя не вспомнить про Ulogin, который увы, что-то уже очень давно молчит.

С 10 версии DLE прошло много времени. Сейчас на момент написания статьи уже 15 версия движка! Ну да ладно!

Код{my_module}Как нам создать такую универсальную, нужную и удобную штуку?

Например мы хотим вывести массив некой информации из БД, и чтобы не писать громоздкий код каждый раз, мы вставляем эти скобочки, и вуаля!

Я поковырял исходники, и всего в одном файлике нашел запись, идентичную ТЕГу вставки окошка Юлогина!

Файл /engine/modules/ulogin/ulogin_tpl_headers.php - его мы и рассмотрим для начала!

Код
<?php
if (!defined('DATALIFEENGINE'))
    die("Hacking attempt!");
$js_array .= "\n<script type=\"text/javascript\" src=\"//ulogin.ru/js/ulogin.js\"></script>";
$js_array .= "\n<script type=\"text/javascript\" src=\"{$config['http_home_url']}templates/{$config['skin']}/ulogin/js/ulogin.js\"></script>";
$js_array .= "\n<link media=\"screen\" href=\"//ulogin.ru/css/providers.css\" type=\"text/css\" rel=\"stylesheet\" />";
$js_array .= "\n<link media=\"screen\" href=\"{$config['http_home_url']}templates/{$config['skin']}/ulogin/style/ulogin.css\" type=\"text/css\" rel=\"stylesheet\" />";
 
$ulogin_message = array();
if (isset($_SESSION['ulogin_title'])) {
    $ulogin_message['title'] = $_SESSION['ulogin_title'];
    unset($_SESSION['ulogin_title']);
}
if (isset($_SESSION['ulogin_message'])) {
    $ulogin_message['message'] = $_SESSION['ulogin_message'];
    unset($_SESSION['ulogin_message']);
}
function get_ulogin_message($title='', $message='') {
    global $config;
    $tpl_config  = array(
        'title' => empty($title) ? '' : $title,
        'message' => empty($message) ? '' : $message,
        'message_type' => '',
        'template' => !empty($template) ? $template : 'ulogin/ulogin_message.tpl',
        'cachePrefix' => !empty($cachePrefix) ? $cachePrefix : 'news',
        'cacheSuffix' => !empty($cacheSuffix) ? true : false
    );</p>
<p><code>    $cacheName = md5(implode('_', $tpl_config));
    $ulogin_message  = false;
    $ulogin_message  = dle_cache($tpl_config['cachePrefix'], $cacheName . $config['skin'], $tpl_config['cacheSuffix']);
    if (!$ulogin_message) {
        if (file_exists(TEMPLATE_DIR . '/' . $tpl_config['template'])) {
            $tpl_2      = new dle_template();
            $tpl_2->dir = TEMPLATE_DIR;
            $tpl_2->load_template($tpl_config['template']);
            $tpl_2->set('{title}', $tpl_config['title']);
            $tpl_2->set('{message}', $tpl_config['message']);
            $tpl_2->set('{message_type}', $tpl_config['message_type']);
            $tpl_2->set('{display}', ($tpl_config['title'] || $tpl_config['message']) ? 'block' : 'none');
            $tpl_2->compile('ulogin_message');
            $ulogin_message = $tpl_2->result['ulogin_message'];
            create_cache($tpl_config['cachePrefix'], $ulogin_message, $cacheName . $config['skin'], $tpl_config['cacheSuffix']);
            $tpl_2->clear();
        } else {
            $ulogin_message = '<b style="color:red">Отсутствует файл шаблона: ' . $config['skin'] . '/' . $tpl_config['template'] . '</b>';
        }
    }
    return $ulogin_message;
}
$tpl->set('{ulogin_message}', get_ulogin_message($ulogin_message['title'], $ulogin_message['message']));

Исходя из этого, вы сможете через скобки вывести абсолютно любой файл через нужный вам тег!

Например:>

Код
$tpl->set('{my_mod}', get_my_mod($my_mod['title'], $my_mod['message']));

Но перед этим его также надо как-то подключить к движку... Почитаем инструкцию к архиву, а там мы и увидим, что к чему!

#### 6. В файле **engine/modules/main.php: перед

Код
(!) ` $tpl->set ( '{headers}', $metatags."\n".$js_array ); `
+ вставить `include_once ENGINE_DIR .'/modules/ulogin/ulogin_tpl_headers.php';

Здесь указывается путь к файлу для движка!

Значит, копируем по аналогии данные для своего ТЕГа, подменяя имена в файле main.php, по пути к своему мод-файлу активатору!

ВОТ И все!!!

Вам остается лишь придумать, что за файл мода вы желаете сделать, и под каким именем выводить его через ТЕГ!

Уважаемые пользователи!
Копирование новостей разрешено только с указанием ссылки на данную новость на другом сайте.
При обнаружении нарушения будут приняты меры, связанные с защитой авторских прав по пункту законов о плагиате и нарушении авторских прав.
На сайте используются только оригинальные материалы, без копирования из других источников. Все скрипты и коды здесь - наши авторские работы.
Чужие работы мы бережно выносим на отдельные html странички, со ссылками на оригинальный материал. ПРИМЕР
Уважайте чужой труд!
Категория: разработки DLE 15 | Добавил: SKYER | Теги: Добавить свои теги в ДЛЕ, добавить свои скобки в DLE, Добавить свои инклуды в дле

Всего комментариев: 0
avatar