[zendframework][smarty]PC/Mobile版切替時にSmartyの設定で気をつけること

( ZendFramework )

最近ハマったこと。

携帯版とPC版でテンプレートを切り分けているときにちゃんとテンプレートキャッシュも別で保存しておかないと 最初に表示した画面の状態をずっと保持し続けてしまう。たとえば、PC版で表示したら携帯版で表示しても PC版で表示されてしまう。

当たり前のことだけど、別にしないとだめだよね。

Smartyのコンパイルファイル(templates_c側)を一緒のディレクトリ・ファイルにしないようにします。 なので携帯版はSMARTY_COMPILE_IDに「_mb」を追加して別管理にしました。

以下がディレクトリ構造。

---------------- 例 -------------------
[root@hoge] # tree templates_c
templates_c
|-- ref
|   |
|   `-- %%DE
|       `-- DE7
|           `-- DE7C2150%%header.html.php
`-- ref_mb
    |
    `-- %%DE
        `-- DE7
            `-- DE7C2150%%header.html.php

Smartyのキャッシュを有効にしたときはまたもう少し考えないといけないな。

例えば、日記を新しく作成した場合はどちらとも作成しないといけないね。