визуальный редактор и блоки кода

DinDim

Новичок
визуальный редактор и блоки кода

Здравствуйте, существует визуальный редактор для заполнения содержимого страницы. Наряду с обыкновенным форатированным текстом в него необходимо вставлять "блоки". Суть их в том что дальше они будут заменены на включаемые области в страницу, будь-то новостная лента или фотогалерея. Подскажите, как можно реализовать эту технологию. Натолкните на мысль. Как сделать парсинг включенных "блоков" и заменить их на исполняемый код PHP
 

DinDim

Новичок
Автор оригинала: ybilevych
А как выглядит код этих блоков?
Да пусть хоть бы так {{LENTANEWS}} а заменить нужно на <? $class->out_news(); ?> или на что либо другое, тут вопрос в другом как это сделать ведь по сути получается что в код пхп вставляется еще код,
т.е. подробнее есть функция вывода содержимого визуального редактора
$class->out_content() которая просто делает echo $content. В этом содержимом могут присутствовать блоки типа {{LENTANEWS}} которые нужно заменить на исполняемый код пхп или более правильно вывести включаемый блок. Вот как это сделать в этом и вопрос.
 

ybilevych

Новичок
Можно сделать следующим образом:
При выводе в $class->out_content() вместо echo $content парсать контент. Когда парсер встречает блок, по свичу выводит этот блок. И так в цикле до конца контента

Можно для скорости распарсать контент при записи, где определить позицию, длину и тип каждого блока и сохранить рядом с самим контентом (если в базе, то в соседней колонке, если в файлах, то в соседнем файле). Далее при выводе в цикле пройтись по этому массиву и вывести все части...
 

DinDim

Новичок
Идея понятна, я и сам так думал, но так не получится. Мне нужно вставить именно функцию а не результаты ее выполнения. Объясню почему:
вот как осуществляется вывод:

$content = $class->out_content() ;
$smarty->assign(Array("content"=> $content;));

$smarty->display('out_content.tpl');

а мне нужно вставить в $content еще грубо говоря один вызов шаблона смарти вот в этом и загвоздка, т.е. вставлять нужно код, он вставляется по парсер смарти его начисто отметает.
 
Сверху