Разделы
Каталог модулей
Вход на сайт
Последние сообщения на форуме
Последние комментарии
7 минут назад - rap1us 2 часа и 30 минут назад - BasssTa 9 часов назад - Aribova 1 день и 12 часов назад - vladimir 1 день и 16 часов назад - ПриватБанк 1 день и 16 часов назад - vladimir 1 день и 16 часов назад - arowana 1 день и 21 час назад - k12st 2 дня и 17 часов назад - Spaun Опрос
Топ-новости
Другие сайты о ДЛЕ
Архив сайта
Какие-то ссылки
|
Главная страница » Хаки » Инструкция include в шаблонах DataLife
Инструкция include в шаблонах DataLifeХаки
Задача: Нужно добавить в шаблонный движек возможность инструкции inсlude.
Предположим у нас есть много - мгого категорий на сайте. И при заходе в каждую мы видим новости/статьи сайта. Но если ещё нужно добавить в каждый раздел текст оформленный каким-либо образом отличным от самой новости, тут нам может понадобится делать для каждой категории кучу шаблонов и папок для каждого или делать [category=X]text bla bla bla[/category] что я и делал пока не получил длиннюще полотно :). Решение: 1. В файл engine/modules/functions.php дописываем перед ?> добавляем function include_file ($custom_category, $file, $do ,$current_category ) { global $db; $sql_get_cat = "SELECT alt_name FROM ".PREFIX."_category WHERE `id`={$custom_category}"; $res_get_cat = $db->query($sql_get_cat); list($alt_name) = $db->get_array($res_get_cat); if ($alt_name<>$current_category) return ""; $file = file(TEMPLATE_DIR.'/include/'.$file); if (sizeof($file)>0) { $file = implode("",$file); return $file; } else { return ""; } } Это функция подключения файла. 2.Далее в файле main.tpl пишем {include category="9" file="9.tpl"} Где 9 это номер категории а 9.tpl это включаемый шаблон. Здесь мы указываем куда подключить файл. 3. Файл index.php Пишем после if ( stristr( $tpl->copy_template, "{custom" ) ) { $tpl->copy_template = preg_replace( "#\\{custom category=['\"](.+?)['\"] template=['\"](.+?)['\"] aviable=['\"](.+?)['\"] from=['\"](.+?)['\"] limit=['\"](.+?)['\"] cache=['\"](.+?)['\"]\\}#ies", "custom_print('\\1', '\\2', '\\3', '\\4', '\\5', '\\6', '{$do}')", $tpl->copy_template ); } вот это: if ( stristr( $tpl->copy_template, "{include" ) ) { if ($_GET['subaction']!=="showfull") { $do = $_GET['do']; $category = $_GET['category']; $tpl->copy_template = preg_replace( "#\\{include category=['\"](.+?)['\"] file=['\"](.+?)['\"]\\}#ies", "include_file('\\1', '\\2', \"{$do}\", \"{$category}\")", $tpl->copy_template ); } else { $tpl->copy_template = preg_replace( "#\\{include category=['\"](.+?)['\"] file=['\"](.+?)['\"]\\}#ies", "", $tpl->copy_template ); } } Теперь записывая вот так: {include category="9" file="9.tpl"} Мы включаем в main.tpl файл 9.tpl из директории ВАШ_ШАБЛОН/include/ если текущая категория с id = 9. Эта вставка работает только в списке новостей(ну мне так нужно было :) )
Информация
![]() Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||