Версия: Урок 3
Внимание! Модули сайта находятся в процессе разработки. Функционал доступен частично. МЫ НЕ СТОИМ НА МЕСТЕ, А СТАРАЕМСЯ СДЕЛАТЬ САЙТ УНИКАЛЬНЫМ!
Ограничение функций от сервисов Ucoz является помехой,но мы будем искать варианты, ведь многие функции либо скрыты и не запрещены, Последняя фиксация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 | | | |
Всего комментариев: 0 | |