Stalkerok
Новичок
работа с блоками шаблонов
есть файл:
++++++файл++++++
_________________________________
|<cont_start> |<block_start> |
|_______________|________________|
|<news_start> |<photo_start> |
|_______________|________________|
<cont_end>
<news_end>
<block_end>
<photo_end>
+++++++++++++++
причём самих блоков может быть больше или меньше.
надо извлеч блочную информацию из этого файла.
вот что у меня получилось:
пример работы
а мне надо как то сделать чтобы просто прописать:
но я не как не пойму как разделить и записать отдельные куски файлов в массив или динамические переменные?
есть файл:
++++++файл++++++
_________________________________
|<cont_start> |<block_start> |
|_______________|________________|
|<news_start> |<photo_start> |
|_______________|________________|
<cont_end>
<news_end>
<block_end>
<photo_end>
+++++++++++++++
причём самих блоков может быть больше или меньше.
надо извлеч блочную информацию из этого файла.
вот что у меня получилось:
PHP:
function load_tpl($file_name){
global $file_contents;
$file_name="templates/$file_name.html";
$fh = fopen($file_name, "r");
$file_contents = fread($fh, filesize($file_name));
fclose($fh);
}
PHP:
function parse_tpl($variables_name,$change_variables_name) {
global $file_contents,$contents_blok;
$separator="/*/";
$variables=explode($separator, $variables_name);
$change_variables=explode($separator, $change_variables_name);
$contents_blok=explode("<--block-->", $file_contents);
$x=0;
while ($x < count($variables)):
$contents_blok[1]=str_replace("{".$variables[$x]."}",$change_variables[$x],$contents_blok[1]);
$x++;
endwhile;
return $contents_blok[1];
}
PHP:
function print_tpl($content) {
global $contents_blok;
echo eval($contents_blok[0].$content.$contents_blok[2]);
}
PHP:
function ShowNews() {
$result = mysql_query("SELECT * FROM news ORDER BY id DESC");
$num_row = mysql_num_rows($result);
while ($row = mysql_fetch_array($result)) {
$text[] = $row["text"];
$link[] = $row["link"];
}
mysql_free_result($result);
load_tpl("news");
$content_tpl=null;
for ($i = 0; $i < ($num_row); $i++) {
$content_tpl.=parse_tpl("text","$text[$i]");
}
print_tpl($content_tpl);
}
а мне надо как то сделать чтобы просто прописать:
PHP:
load_tpl("tpl");
$i.=parse_tpl("cont","text","$text");
$i.=parse_tpl("news","date","$date");
echo eval $i;