ずいぶん久々のメモ。
Smarty使用時にphpファイルとtplファイルを同じディレクトリ構成にしておいて、下記を実装するための方法。
※もっと一般的な別の方法があるのかもしれません。
- デフォルト→同じディレクトリのtplファイルを参照
- 個別指定→指定tplファイル参照
ディレクトリ構成(/news/というディレクトリを想定)
- /smarty/template/news/*.tpl
- /html/news/*.php
MySmarty.class.php
require_once(”Smarty.class.php”);
class MySmarty extends Smarty {
public function __construct() {
$this -> Smarty();
$this -> template_dir = “/path/smarty/templates/”;
$this -> compile_dir = “/path/smarty/templates_c/”;
$this -> config_dir = “/path/smarty/configs/”;
$this -> cache_dir = “/path/smarty/cache/”;
}
}// default template path
$tpl = preg_replace( “/^\/(.*).php$/”, “$1.tpl”, $_SERVER[’PHP_SELF’] );
/news/index.php から /news/index.tpl
require_once( “/path/smarty/libs/MySmarty.class.php” );
$smarty = new MySmarty();
$smarty -> assign( array(
……..
tpl => $tpl
) );
$smarty -> display( “***.tpl” );
/news/index.php から /news/custom.tpl
require_once( “/path/smarty/libs/MySmarty.class.php” );
$smarty = new MySmarty();
$tpl = “news/custom.tpl”;
$smarty -> assign( array(
……..
tpl => $tpl
) );
$smarty -> display( “***.tpl” );
特に大した話でもありませんが、自分用のメモ。
Tags:PHP Smarty template tpl
Popularity: 12%