Вы не зашли.
#1.
tipsun
Off
(19)
Moderator
2011.08.20 23:11
Если есть похожая тема, то извините, я перену пост туда.
Вот сегодня думал насчет многократных замечаний и:
Код:
span style="color: #0000BB"><?php////////////где-нибудь инклудим, в шапке с конфигом например...// require_once 'f.html.php';//////////function html($tpl=array(), $tplSet='index.tpl') { $path = dirname(__FILE__) .'/tpl/'. $tplSet; if(!file_exists($path)) exit('Ошибка загрузки файла шаблона: ' . $tplSet); //*/ ob_implicit_flush(0); ob_start(); require_once $path; $html = ob_get_contents(); ob_end_clean(); ob_implicit_flush(1); //*/ $from = array('/\r|\n|\t/', '/ {2,}/'); $to = array(null, ' '); $html = preg_replace($from, $to, $html); exit($html); }////////////это в каком-нибудь файле выполняется...// index.php//////////$tpl = array();$tpl['title'] = 'HELLO WORLD';$tpl['array'] = range(1,9);$tpl['content'] = 'Эта история началась давным давно!';html($tpl, 'index.tpl'); //можно и так GLOBAL $tpl;//////////?> |
Ну да, знаю: типа на классах лучше, всего 1 раз подключать и т.д.
Код:
<!-- Шаблон index.tpl --> |
<html> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
<title><?=$tpl['title'];?></title> |
</head> |
<body> |
<h1><?=$tpl['title'];?></h1> |
<?=$tpl['content'];?><br/> |
<?php foreach($tpl['array'] as $key):?> |
<h3><?=$key;?></h3> |
<?php endforeach;?> |
</body> |
</html> |
Отредактировано tipsun (2011.08.21 01:01)
#2.
tipsun
Off
(19)
Moderator
2011.08.21 01:01
Я тут дальше копаюсь. Вот оказывается (пока что) как покайфу, когда раздельно логика и разметка.
Отредактировано tipsun (2011.08.21 01:01)
велосипедные шаблонизаторы не нужны
#4.
Nu3oN
Off
(11)
Moderator
2011.08.21 07:07
tipsun написал:Я тут дальше копаюсь. Вот оказывается (пока что) как покайфу, когда раздельно логика и разметка.

Во первых лучше делать так:
Код:
span style="color: #0000BB"><?phpfunction html($tplSet='index.tpl', $tpl=array()) { ///}?> |
Потому что иногда будет необходимость подключать шаблоны не передавая переменные!
Во вторых используй уже готовые варианты...
И наконец используй нативные шаблонизаторы!
Я буду лучше голоден, но между креслом и рулем и на дороге.
Nu3oN, а это не нативный? тут работает родной php синтаксис.
#6.
Nu3oN
Off
(11)
Moderator
2011.08.21 09:09
Gemorroj написал:
Nu3oN, а это не нативный? тут работает родной php синтаксис.
Нативный, но не лучший вариант исполнения его!
Я буду лучше голоден, но между креслом и рулем и на дороге.
#7.
tipsun
Off
(19)
Moderator
2011.08.23 02:02
Короче искать готовый нативный шаблонизатор - ок. Спс.
----
В шаблоне в принципе можно было бы сделать так:
Код:
<html> |
<head> |
<title>Статичный текст логичней так <?=TITLE;?></title> |
</head> |
<body> |
В функции/классе принять массив как $_ или $__<br/> |
Так: <?=$_['var'];?><br/> |
Или: <?=$__['var'];?><br/> |
Это в основном если массив данных, как я понял сам. Надо еще почитать, посмотреть. |
</body> |
</html> |
#8.
tipsun
Off
(19)
Moderator
2011.08.23 02:02
Zend Framework (та гребаная библиотека, в которой все есть).
Не думал что даже там не придумали как только в самом шаблоне экранировать спец. символы или я чет не так понял. Надо скачать, посмотреть.
Отредактировано tipsun (2011.08.23 02:02)
Прочел в интернете, что принимать значения через __set(__get) затратно.
Лучше сделать типа $class->assign('varName', 'Hello Hell'); (как на smarty и вроде Zend)
Отредактировано tipsun (2011.11.18 15:03)