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