PEAK XOOPS - あまり知られていない(?)Smartyフィルターの利用法(4) in englishin japanese

Archive | RSS |
XOOPS
XOOPS : あまり知られていない(?)Smartyフィルターの利用法(4)
Poster : GIJOE on 2006-07-12 05:03:13 (8098 reads)

in englishin japanese
一応最終回。
Modifierに使える関数は、PHPのビルトイン関数だけではありません。function_exists()で確認しているだけなので、ユーザ定義関数であってももちろん利用できます。

ただし、Smartyがコンパイルを行う時と、実際にレンダリングをする時の両方について、その関数が定義されている必要がある点に注意が必要です。

後者で問題になるようなら、単なる設計ミスですが、前者が意外と困難です。tplsadminなどでテンプレートを編集する場合、該当モジュールが読み込まれているわけではないので、モジュールが定義した関数を利用する、というのはかなり難しいのです。(必要に応じて、altsysやtplsadminが読み込んであげる、なんてのも手なんでしょうが)

mainfile.php あたりに1行追加して読み込む、なんて手もありますが、それくらいなら、素直にプラグインを作ってしまった方が良いでしょう。

逆に、include/functions.php 内に定義された関数であれば、コンパイル時にも読み込まれていることが確実であるため、安心して利用できます。マルチバイト言語圏でもっとも有効なのは、xoops_substr()でしょうか。


<{$news.title|xoops_substr:"0":"20"}>


これならマルチバイトの境界も認識し、... の処理も加わるので、mb_strcut()よりも使いやすいでしょう。

以上、全4回に渡った連載でしたが、これら関数Modifierの利用法を身につけることで、「ちょっとだけテンプレートをいじれば、すぐに思い通りの出力を得られる」、という究極のカスタマイズ職人に一歩近づけることでしょう。

0 comments

Printer friendly page Send this story to a friend

Comments list

Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!