URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5322
[ Назад ]

Исходное сообщение
"CMS?"

Отправлено mishgan , 22-Окт-07 09:12 
Решил вот на досуге сделать свою кмс. Механизм простой. В отдельной папке лежат шаблоны в которых в определенных местах вставленны так называемые кмсные теги ну например как в шаблонах phpbb {TEXT_BODY} и т.д. PHP cкрипт текст из шаблона грузит в переменную и потом обрабатывает заменяя эти теги соответственно на текст лежащий в базе. Но вот вопрос если я хочу чтоб при нахождении определенного тега выполнялась бы функция. Как мне это реализовать получше?

Содержание

Сообщения в этом обсуждении
"CMS?"
Отправлено angra , 23-Окт-07 23:19 
Простейший шаблонизатор теперь гордо зовут CMS?
Не совсем понятно что именно у тебя не получается. Нашел тег - вызвал соответствующую этому тегу функцию, результат подставил вместо тега. Если у тебя не фиксированный набор функций и имя функции задается в теге, то используй eval, проблемы безопасности тебя ведь не волнуют :)



"CMS?"
Отправлено mishgan , 25-Окт-07 15:26 
Ну шаблонизатор я конечно сделаю в первую очередь. Далее планирую расширить возможности
eval я не использую ....... я использую call_user_func



"CMS?"
Отправлено mishgan , 05-Фев-08 15:55 
появился другой вопрос. Делаю модуль обработки плагинов. в базе данных лежит инфа CMS-ный тег и файл на какой ссылается этот тег. Скрипт находит этот тег в шаблоне и  в это место инклудит файлик (include ()). Теперь сам вопрос... Хотелось бы като в этой базе хранить переменные... ну например тег {NEWS_1} ссылается на например на news.php?id=1, тег {NEWS_2} ссылается на например на news.php?id=2 и так далее. Т.е. должен выполнится код
include ("news.php?id=1")... но это не работает
. А вот как это сделать я не придумал. Мож кто подскажет чего

"CMS?"
Отправлено tux2002 , 05-Фев-08 16:08 
>появился другой вопрос. Делаю модуль обработки плагинов. в базе данных лежит инфа
>CMS-ный тег и файл на какой ссылается этот тег. Скрипт находит
>этот тег в шаблоне и  в это место инклудит файлик
>(include ()). Теперь сам вопрос... Хотелось бы като в этой базе
>хранить переменные... ну например тег {NEWS_1} ссылается на например на news.php?id=1,
>тег {NEWS_2} ссылается на например на news.php?id=2 и так далее. Т.е.
>должен выполнится код
>include ("news.php?id=1")... но это не работает
>. А вот как это сделать я не придумал. Мож кто подскажет
>чего

Давно не занимался PHP
$id = 1;
include "news.php"

Она не видна в news.php?


For example:
1
2 $a = 1;
3 include "b.inc";
4
Here the $a variable will be available within the included b.inc script.


"CMS?"
Отправлено mishgan , 05-Фев-08 19:38 
>
>Давно не занимался PHP
>$id = 1;
>include "news.php"
>
>Она не видна в news.php?

В том то все и дело что в таком виде будет видна. а вот как это сделать если в базе хранится значение news.php?id=1



"CMS?"
Отправлено tux2002 , 06-Фев-08 07:58 
>>
>>Давно не занимался PHP
>>$id = 1;
>>include "news.php"
>>
>>Она не видна в news.php?
>
>В том то все и дело что в таком виде будет видна.
>а вот как это сделать если в базе хранится значение news.php?id=1
>

Variable variables
Sometimes it is convenient to be able to have variable variable names. That is, a variable name which
can be set and used dynamically. A normal variable is set with a statement such as:
1
2 $a = "hello";
A variable variable takes the value of a variable and treats that as the name of a variable. In the above
example, hello, can be used as the name of a variable by using two dollar signs. i.e.
1
2 $$a = "world";
3
At this point two variables have been defined and stored in the PHP symbol tree: $a with contents
"hello" and $hello with contents "world".

Если хранится news.php?id=1 - разбей на токены (разделители ? = )


"CMS?"
Отправлено gavro , 08-Фев-08 18:03 
>Решил вот на досуге сделать свою кмс. Механизм простой. В отдельной папке
>лежат шаблоны в которых в определенных местах вставленны так называемые кмсные
>теги ну например как в шаблонах phpbb {TEXT_BODY} и т.д. PHP
>cкрипт текст из шаблона грузит в переменную и потом обрабатывает заменяя
>эти теги соответственно на текст лежащий в базе. Но вот вопрос
>если я хочу чтоб при нахождении определенного тега выполнялась бы функция.
>Как мне это реализовать получше?

выгружай данные в XML, шаблон делай в XSL.
Честно говоря, мне совершенно не понятно, почему вопрос с шаблонами/шаблонизаторами до сих пор считается одним из актуальных, когда почти 9 лет как был реализован XSLT, причем он стандартизован W3C, имеет удобный синтаксис, достаточно возможностей, преобразование на стороне клиента - что еще?
Тем не менее, ни в одной статье о шаблонизаторах я не встречаю даже упоминания об XLST.