1 に答える
1
私が通常行うことは、最善の方法ではないかもしれませんが、役立つかもしれませんが、、、などのテンプレートを含むグローバルテンプレートを用意し、header
データ駆動型テンプレートを含めることです。menu
footer
content
{* Smarty Template *}
{* Core Template *}
{* Multi-lang - Loads all inner components of the page *}
<!DOCTYPE HTML>
<html>
<head>
{include file=$lang|cat:"/head.tpl"}
</head>
<body>
{include file=$lang|cat:"/menu.tpl"}
{include file=$lang|cat:"/body.tpl"}
{include file=$lang|cat:"/footer.tpl"}
</body>
</html>
私ができるところは、次のような簡単なbody.tpl
ことです。
{* Smarty Template *}
{* Base Template for BODY *}
<div>
{include file=$lang|cat:"/"|cat:$view|cat:".tpl"}
</div>
ここで、表示したい(別のテンプレート)を$view
表します。content
ご覧のとおり、私のセットアップは多言語になって$lang|cat:
います。複数の言語を処理したくない場合は、パーツを削除できます。
head
一部のページでまたはをオーバーライドする場合は、次のmenu
ような操作を行うのは非常に簡単です。
{if isset($headerOverride) }
{include file=$headerOverride}
{else}
{include file=$lang|cat:"/head.tpl"}
{/if}
テンプレートをオーバーライド可能な小さなチャンクに分割することで、テンプレートのかなり堅固な構造を維持しながら、例外でカスタムコードをロードできるようになると思います。
于 2012-12-14T04:58:21.557 に答える