FWIW I wrote a _very_ simple Smarty parser that actually turns the templates into native Zend_View files. I've been meaning to work on it some more but things are pretty tight at the moment. It only performs variable replacement, includes and variable modifiers currently, but I was looking to extend it to provide 60-80% of current Smarty functions and make the parser more robust and more PHP5-like (allow chaining properties/methods etc).
Is anyone interested in seeing it so far? It's only a proof-of-concept but could perhaps spark something if anyone's interested in improving/extending it? Yes, Template Lite works on PHP 5 but its code itself is not PHP 5 compliant which is what Mark showed interest in porting it to. Thanks,
On 9/22/06, Richard Thomas <[EMAIL PROTECTED]> wrote: have attached the cote + example.. excuse the mess ;)
Richard Thomas wrote: > I already extended and have it running under zend framework without any > issue, it runs fine under php 5, although im not sure if I have estrict > now that I think about it/ > > its a mess right now but I can submit the work later to the list as an > example at least. > > Shekar C Reddy wrote: >> Hi All, >> >> I requested Mark Dickenson to try to port Template Lite to PHP 5 and >> he showed interest. I gave him some info for coming up with a proposal: >> >> http://templatelite_forums.aatraders.com/viewtopic.php?f=2&t=3&sid=675c1e15c66b4302df38a25a864e4111 >> <http://templatelite_forums.aatraders.com/viewtopic.php?f=2&t=3&sid=675c1e15c66b4302df38a25a864e4111 > >> >> >> Regards, >
$view = new TemplateLite(); $view->setScriptPath($config->zend->views); $view->addFilterPath($config->zend->filters); $view->addFilter('Translate'); Zend::register('view', $view);
$view = Zend::registry('view'); $view->assign('_URLS_STATIC', _URLS_STATIC); echo $view->render('layout/site.tpl.php');
class TemplateLite extends Zend_View_Abstract { private $_tpl = false;
public function __construct() { $config = Zend::registry('config'); require_once(_LIBS_OTHER.'/Template_Lite/class.template.php'); parent::__construct(); $this->setScriptPath($config->tpl_lite->compile_dir);
$this->_tpl = new Template_Lite; $this->_tpl->compile_dir = $config->tpl_lite->compile_dir;
/* The real path is handled by the Zend Framework */ $this->_tpl->template_dir = '/'; }
protected function _run($template) { $this->_tpl->display($template); }
public function assign($var) { if (is_string($var)) { $value = @func_get_arg(1); $this->_tpl->assign($var, $value); } elseif (is_array($var)) { foreach ($var as $key => $value) { $this->_tpl->assign($key, $value); } } else { throw new Zend_View_Exception('assign() expects a string or array, got '.gettype($var)); } }
public function escape($var) { if (is_string($var)) { return parent::escape($var); } elseif (is_array($var)) { foreach ($var as $key => $val) { $var[$key] = $this->escape($val); } return $var; } else { return $var; } }
public function render($name) { return parent::render($name); }
public function output($name) { echo parent::render($name); }
public function isCached($template) { if($this->_tpl->is_cached($template)) { return true; } return false; }
public function setCaching($caching) { $this->_tpl->caching = $caching; }
}
--
Simon Mundy | Director | PEPTOLAB
""" " "" """""" "" "" """"""" " "" """"" " """"" " """""" "" " 202/258 Flinders Lane | Melbourne | Victoria | Australia | 3000 Voice +61 (0) 3 9654 4324 | Mobile 0438 046 061 | Fax +61 (0) 3 9654 4124
|
- Re: [fw-general] Template Lite (PHP 5) for Zend Framework ... Simon Mundy
-