1

smarty (3) のテンプレートとして 2 つの並列ディレクトリを追加しようとしています (失敗しました)。

要するに、基本テンプレートと別のカスタムを作成したいと思います。カスタム ファイルが存在しない場合、smarty は必ず存在するベース テンプレートを使用する必要があります。

それを行うものはすでにありますか?

もちろん、これはインポートでも機能します。

4

1 に答える 1

4

はい、を使用して複数のテンプレート ディレクトリを指定できますsetTemplateDir

<?php

// setup template directories
$smarty->setTemplateDir(array(
    './templates',            // element: 0, index: 0
    './templates_2',          // element: 1, index: 1
    '10' => 'templates_10',   // element: 2, index: '10'
    'foo' => 'templates_foo', // element: 3, index: 'foo'
));

/*
  assume the template structure
  ./templates/foo.tpl
  ./templates_2/foo.tpl
  ./templates_2/bar.tpl
  ./templates_10/foo.tpl
  ./templates_10/bar.tpl
  ./templates_foo/foo.tpl
*/

// regular access
$smarty->display('file:foo.tpl'); 
// will load ./templates/foo.tpl

// using numeric index
$smarty->display('file:[1]foo.tpl'); 
// will load ./templates_2/foo.tpl

// using numeric string index
$smarty->display('file:[10]foo.tpl'); 
// will load ./templates_10/foo.tpl

// using string index
$smarty->display('file:[foo]foo.tpl'); 
// will load ./templates_foo/foo.tpl

// using "unknown" numeric index (using element number)
$smarty->display('file:[2]foo.tpl'); 
// will load ./templates_10/foo.tpl

?>

詳細については、Smarty から入手できます。

http://www.smarty.net/docs/en/api.set.template.dir.tpl

そしてここ

http://www.smarty.net/docs/en/resources.tpl#templates.from.specified.template.dir

于 2013-07-19T02:02:06.863 に答える