Помощник
|
Подключение дополнительных модулей |
НЕПЛОХОЙ
|
Сообщение
#1
|
||
|
|
||
|
|||
v1ex |
2.6.2009, 10:17;
Ответить: v1ex
Сообщение
#2
|
|
Решение я нашел)) но очень не хорошее. Почему, же? Можно начать с такого... Ну самое просто, что я могу предложить, это примерно так: index.php: [php]<?php // Подключение файлов require_once 'functions.php'; // Модуль по умолчанию $module = 'index'; if (isset($_GET['module'])) { $module_tmp = trim($_GET['module']); if (preg_match("/^[a-z0-9_]+$/i", $module_tmp)) { $module = $module_tmp; } else { die('Ошибка'); } } if (file_exists('modules/' .$module. '/module.php')) { require_once 'modules/' .$module. '/module.php'; } else { die('Ошибка'); } ?>[/php] modules/guest/module.php (модуль гостевой): [php]<?php // Допустим это модуль гостевой книги // Заголовок $template['title'] = 'Гостевая книга'; // Якобы динамическая генерация контента $template['messages'] = 'Сообщения гостевой книги'; $template['xz'] = 'Еще, какой нить контент...'; // Отобразить шаблон (в template переменные шаблона) display_template('header.tpl', $template); display_template('guest.tpl', $template); display_template('footer.tpl', $template); ?>[/php] functions.php (функция для наипростейшего шаблонизатора): <?php function display_template($file, $template) { require_once $file; } ?> header.tpl, guest.tpl, footer.tpl: [php]<html> <head> <title><?php print $template['title']; ?></title> </head> <body> -------------------------- <h1>Сообщения</h1> <?php print $template['messages']; ?> <h2>Еще что-то</h2> <?php print $template['xz']; ?> ----------------------- <div>Copyright 2009</div> </body> </html>[/php] |
|
|
НЕПЛОХОЙ
|
Сообщение
#3
|
|
не ожидал услышать столь развернутый ответ)))) Кажется тут же и ответ на другой мой вопрос (про шаблонизатор).
Щас вот закончу один свой проект и надо будет обмозговать информацию |
|
|
ZiTosS |
2.6.2009, 14:50;
Ответить: ZiTosS
Сообщение
#4
|
|
Евгений, шаблонизатора тут как такового нету.
|
|
|
v1ex |
2.6.2009, 15:25;
Ответить: v1ex
Сообщение
#5
|
|
Согласен. Но я и не вижу смысла делать "навороченный" шаблонизатор. Какая разница будем ли мы парсить документ, и заменять конструкции шаблонизатора на тект, или сразу обрабатывать PHP код? Тот-же смарти, делает три лишних шага. Из тех же своих конструкций, он делает PHP код, сохраняет его, а потом выводит его? Зачем? Только не надо говорить, что бы "не программист", мог натянуть шабло... Там те же, условные, циклические конструкции и т.п., с которыми "не программист" просто не сможет разобраться... А PHP - код это удобнее, сделать поддержку хуков и вообще отлично...
|
|
|
ZiTosS |
2.6.2009, 17:30;
Ответить: ZiTosS
Сообщение
#6
|
|
v1ex, не отрицаю
|
|
|
gaaarfild |
28.8.2009, 15:18;
Ответить: gaaarfild
Сообщение
#7
|
|
[php]$index = array(
"title" => $module_title, "module" => module_create($_GET['module']), "bottom_block" => "Нижний центральный блок", "copyright" => $config['copyright'], ); $html .= parseTpl("templates/{$config['main_tpl']}/index.tpl", $index);[/php] Каким образом сделать, чтобы модуль загружался в шаблон?? В то место, куда надо? Иначе просто require_once загружает его в самом начале. [php]function module_create($module) { if (isset($_GET['module'])) { $module_tmp = trim($_GET['module']); if (preg_match("/^[a-z0-9_]+$/i", $module_tmp)) { $module = $module_tmp; } else { die('Ошибка'); } } else {$module = "Content";} if (file_exists('modules/' .$module. '/index.php')) { $module_load = require_once ('modules/' .$module. '/index.php'); } else { die('Указанный модуль не найден'); } }[/php] |
|
|
ZiTosS |
29.8.2009, 23:36;
Ответить: ZiTosS
Сообщение
#8
|
|
gaaarfild, ничего не понятно... хотя может ты имеешь ввиду функцию
file_get_contents() или же тебе надо использовать eval, что не очень корректно. Обычный require_once никогда тебе не вернёт интерпритированного содержимого, это вставка кода... |
|
|
gaaarfild |
1.9.2009, 22:15;
Ответить: gaaarfild
Сообщение
#9
|
|
Ну каким образом организуется загрузка модуля в шаблонизатор, если использовать твой вариант простейшего шаблонизатора?
|
|
|
ZiTosS |
3.9.2009, 3:10;
Ответить: ZiTosS
Сообщение
#10
|
|
gaaarfild, что в твоём понимании модуль?
Я в данном шаблонизаторе подключал только HTML вставку (шаблон с включениями). Все логические операции и различные итерации вынесены за пределы шаблона. |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
ВНИМАНИЕ: 77.me - Crypto processing и High risk processing для вашего бизнеса.Подключение за час! | 0 | 77_me | 1416 | 14.2.2024, 19:09 автор: 77_me |
|
Написание скриптов на PHP, в т.ч. модулей для CMS, и другие услуги Создание модулей и хаков для DLE и других движков, перенос контента |
170 | Coppermine | 118345 | 24.2.2023, 12:30 автор: boltuk |
|
Подключение Оплатил-получил ссылку для скачивания | 5 | fairtex | 1731 | 19.9.2019, 23:34 автор: alexbup |
|
SmmPanel - Платформа создания SMM сервиса / подключение API / быстрый заказ + реферальная система | 4 | KrisGuseva | 7050 | 3.12.2018, 16:08 автор: KrisGuseva |
|
Masons.mobi - wapclick партнерская программа (прямое подключение) | 4 | MasonS | 1872 | 25.9.2018, 14:59 автор: -MasonS- |
Текстовая версия | Сейчас: 26.4.2024, 7:21 |