0
4

1 に答える 1

1

私が通常行うことは、最善の方法ではないかもしれませんが、役立つかもしれませんが、、、などのテンプレートを含むグローバルテンプレートを用意し、headerデータ駆動型テンプレートを含めることです。menufootercontent

{* 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 に答える