Помощник
|
Шаблонизатор на основе str_replace |
FordogeN
|
Сообщение
#1
|
||
|
|
||
|
|||
ZiTosS |
9.1.2010, 0:40;
Ответить: ZiTosS
Сообщение
#2
|
|
FordogeN, хех а где условие твоего цикла? Его всё равно придётся указывать в шаблоне.
Если уж использовать свои шаблонизаторы в проектах, то используй только замену блоков контентом, но никаких условий и циклов. Если уж хочешь использовать условия, циклы, функции - возьми smarty, там всё это реализовано. А вообще реализация циклов в шаблонах приводит тебя к созданию временных исполняемых файлов, либо использованию eval() что очень не безопасно. Реализация примерно такая: Есть шаблонизатор [php]<?php class Templater{ // различные переменные состояния // функции передачи переменных // функции определения используемого модуля и его вызов на обработку // функции вывода контента } ?>[/php] Есть его модули, которые создают код определённого оператора [php]<?php // класс для формирования кода цикла for class _TemplaterModuleFor{ // класс знает как ему распрядиться куском шаблона, режет его, формирует код для исполнения и так далее и возвращает в основной шаблон. } ?>[/php] Просто если хочется реализовать подобное, можно заглянуть в реализацию Smarty, он как раз на классах. |
|
|
FordogeN
|
Сообщение
#3
|
|
Задача поставлена так, что шаблоны должны храниться в БД, а для каждого элемента отдельное поле создавать это как по мне глупо и жутко не удобно.
-------------------- |
|
|
ZiTosS |
9.1.2010, 1:06;
Ответить: ZiTosS
Сообщение
#4
|
|
FordogeN,
DLE сделали проще, в некоторых шаблонах можно встретить подобное: [name] здесь что-то [/name] Затем в шаблонизаторе у них реализована возможность обюработки не целого файла-шаблона, а подобного куска с именем. Это конечно изврат, но реализовать возможно. Если уж хочешь циклы, тебе придётся реализовать возможность доступа к массивам, сложная это задача выйдет, 10 раз пожалеешь, я тебе обещаю. |
|
|
FordogeN
|
Сообщение
#5
|
|
Я DLE толком не ковырял... Недолюбливаю мягко говоря.
А вот то что пожалею это ты сказал в точку - уже раза 2 пожалел)) Только что нашел где-то в просторах сети вот такой кусок кода [php]$title = between("<title>", "</title>", $html);[/php] Но не могу понять как его применить. -------------------- |
|
|
ZiTosS |
9.1.2010, 3:09;
Ответить: ZiTosS
Сообщение
#6
|
|
|
FordogeN, в PHP нет функции between, там где ты нашёл её использование, должна быть её реализация. Функция просто, возвращает всё из третьего параметра, что находится между первым и вторым параметром. Но тебе это явно не пригодится.
Вообщем используй Smarty или подобные, если уж не хочешь простые шаблоны использовать.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Требуется рерайтер-копирайтер на постоянной основе | 2 | extrimov | 1301 | 30.1.2022, 14:08 автор: extrimov |
|
Партнерская программа продажи ПК лицензионных игр и свой магазин на ее основе Как создать свой магазин с множеством товаров не вкладывая в товар |
1 | AprelKapel | 2852 | 5.11.2021, 23:42 автор: Kuzzma |
|
Требуется контент менеджер на постоянной основе | 3 | DukeNukem | 6223 | 23.3.2021, 15:14 автор: seroga27 |
|
Нужен копирайтер по тематике Форекс/Трейдинг на постоянной основе | 2 | kuprum | 1115 | 4.8.2020, 17:39 автор: kuprum |
|
Нужен копирайтер по тематике Форекс/Трейдинг на постоянной основе | 0 | kuprum | 959 | 3.8.2020, 21:53 автор: kuprum |
Текстовая версия | Сейчас: 26.4.2024, 7:23 |