PEAK XOOPS - Re: EMLH smarty plugin and smarty default_modifiers in englishin japanese

Re: EMLH smarty plugin and smarty default_modifiers

List posts in the topic

question Re: EMLH smarty plugin and smarty default_modifiers

msg# 1.1.1.1
depth:
3
Previous post - Next post | Parent - No child | Posted on 2005/6/24 13:26
domifara  一等兵   Posts: 19
その後、情報として書き残しておきます
現時点でわかったこと
$this->default_modifiers = array('domi_easiestml'); 
default_modifiers の指定を使う方法場合の別の副作用ありました、
これに引っかかると面倒

症状:
最初は、Xoopsのsmartyデバグがエラーで表示されなかっただけなので後回しでしたが

smaryのdebug.tplを調べた結果
テンプレートの記述のうち
致命的な影響でるものがあることがわかりました
(現時点は、smartyデバグテンプレートしか影響はでてないけど)

テンプレートの記述でissetを使っているところがエラーになります(現在smarty2.6.9)

{if isset($_smarty_debug_output) 以下略
のような指定を指定いるところでは
Quote:
Parse error: parse error, unexpected '(', expecting T_VARIABLE or '$' in /home/XXXXXX/xo/templates_c/%%XX^XXX^XXXXXXXXXXXX%%debug.tpl.php on line 10

となります。
回避策としては、issetを使っている箇所に
{if isset($_smarty_debug_output|smarty:nodefaults) 以下略
と |smarty:nodefaults の指定を追加すれば動きます

Xoopsのテンプレートで
マニュアルに無いように思うので
issetを使っているものは、少ないと思いますが

やはり、既存使用しているテンプレートの記述との相性がでるようです
if (isset ( ((is_array($_tmp=$this->_tpl_vars['_smarty_debug_output'])) ? $this->_run_mod_handler('domi_easiestml', true, $_tmp) : smarty_modifier_domi_easiestml($_tmp)) )
影響が出ると思われるのは 、smartyのコンパイルキャシュ
ソースを見ると、smartyテンプレートの記述で
default_modifiers
の関数編集が自動で追加されているけど?
構文として?括弧のつけ方はあっていると思うけど
この場所でこの使い方、出来ないのかな?
んーphp文法エラーかな?smartyのコンパイルが悪いのかな?

ともかく、これが前述のエラーとなってテンプレートが表示できないです

ついでに調べた参考:
smarty security モードでもsmarty関数として、
ifの中で使える初期の関数
'array', 'list','isset', 'empty','count', 'sizeof','in_array', 'is_array',
は、smartyマニュアルに使えるとは書いてないような気がするけど?default_modifiers の指定を使うと全滅する可能性があります

Votes:3 Average:3.33

Posts tree

  Advanced search


Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!