今日は分かりづらい二つのエラーに悩まされてあまり進みませんでした(^ ^;)
その一
smarty で,{elseif} が閉じられていない,unclosed tag だと怒られる。でも,どう見ても閉じられている。
仕方がないので,{elseif} を削ったところ,その下の {else} が閉じられていないとまた怒られる。仕方ないのでこれも削ると通った。
しばらくコードを見て悩んだのですが,テンプレートファイルの文字コードが shift-jis で保存されているのが原因でした。これではいくらコードを見ていても分かりません。
"smarty unclosed tag" で検索すると少数ひっかかるので,たまに同じ事をやってしまう人がいるのでしょう。
その二
やはり smarty がらみ。これが曲者で,PHPデバグモードでは正常に処理される。デバグモードをオフにすると,発現する。PHPデバグモードで確認して,「ああ,表示されるね。よしよし」と思ってオフにするとアウトなのです。
なんでこんな挙動になるのかはよく分かりませんが,
<{assign var=a value=`$obj->getShow('id')`}>
と,間違えてバッククオート(`)を付けていたのが原因のようです。