Mailinglisten-Archive |
Hallo, Ralf Eggert schrieb am Dienstag, 29. Juni 2004 um 23:46: > danke für deinen Hinweis, auch wenn ich nicht so ganz schlau daraus > werde. :-( http://smarty.php.net/manual/de/caching.cacheable.php > 1. Geht das überhaupt? test.php ======== <?php $foobar = new foobar; $foobar->startSmarty(); $foobar->displayPage(); class foobar { var $smarty = null; function startSmarty() { define(SMARTY_DIR, dirname(__FILE__).'/smarty/'); require(SMARTY_DIR. 'Smarty.class.php'); $this->smarty = new Smarty; $this->smarty->template_dir = dirname(__FILE__).'/templates'; $this->smarty->compile_dir = dirname(__FILE__).'/templates_c'; $this->smarty->config_dir = dirname(__FILE__).'/configs'; $this->smarty->cache_dir = dirname(__FILE__).'/cache'; $this->smarty->caching = true; $this->smarty->use_sub_dirs = false; function smarty_block_dynamic($param, $content, &$smarty) { return $content; } $this->smarty->register_block('dynamic', 'smarty_block_dynamic', false); } function displayPage () { $this->smarty->assign('timestamp', mktime()); $this->smarty->display('index.tpl'); } } ?> index.tpl ========= das bleibt immer gleich: {$timestamp|date_format:"%H:%M:%S"}<br /> {dynamic} das ändert sich: {$timestamp|date_format:"%H:%M:%S"} {/dynamic} Output index.tpl ================ das bleibt immer gleich: 09:58:57 das ändert sich: 09:59:59 index.tpl im Cache ================== a:4:{s:8:"template";a:1:{s:9:"index.tpl";b:1;}s:9:"timestamp";i:1088582337;s:7:"expires";i:1088585937;s:13:"cache_serials";a:1:{s:61:"/www/smarty_test/templates_c/%%117^%%1172603085^index.tpl.inc";s:32:"2ce8d75eb43ddca2b424eac08c069d72";}} das bleibt immer gleich: 09:58:57 {nocache:2ce8d75eb43ddca2b424eac08c069d72#0} > 2. Falls nein, wie kann ich das Problem lösen, dass ich in einer global > deklarierten Funktion auf meine CMS Klasse zugreifen kann, wenn diese > Funktion keine Methode meiner CMS Klasse ist? $foo->bar()? > Irgendwie stehe ich total auf dem Schlauch... :-( Ich habe es so gemacht, wie im Smarty-Handbuch: Zentrale Datei, die Smarty lädt. Die wird einmal von einem Script per require_once() gezogen, wenn ich das Ding in einem Objekt brauche, wird Smarty als Referenz hineingereicht. <?php class display extends base { function displayIndex (&$smarty) { $smarty->display('foo.html'); } } ?> <?php require_once('smarty_user.inc.php'); $display = new display(); $display->displayIndex($smarty); ?> Gruss, Andreas
php::bar PHP Wiki - Listenarchive