Smarty文法・プラグイン
【この日記は、XOOPSのお勉強用の備忘記録です】まったくの、技術情報なので興味のない方は読み飛ばしてくださいね。Xoops熟練者の方、つっこみ大歓迎です。よろしくね。-----Smartyの文法Smartyはテンプレートファイルをカスタマイズすることによって表示方法を変更するプラグイン。(PHPソースをいじらなくてOK) 基本文法 変数 | 関数変数の表示方法を変更したい場合、関数によって編集する。【関数一覧】 ・replace 置換 ・regex_replace 正規表現の置換 ・date_format UNIXスタンプの日付を編集(PHPのstrftime) ・escape エスケープ ・cycle 繰り返し処理 ・assign テンプレートへアサイン ・html_table 配列をテーブルに出力 ☆mbtruncate 文字列をまるめる(引数:バイト数)ソース追加必要 ☆xoops_mailenc メールアドレスを暗号化(引数:なし)ソース追加必要 ☆mb_convert_encoding 日本語コードをエンコード (引数:なし)ソース追加必要 ★xoops_tellafriend 友達に紹介をフォームにする(TellaFriendインストール要) ★ryus_date 日付フォーマット編集、NEWマーク表示 使い方はこちら【mbtruncate:文字列のまるめ】 class/smarty/pluginsに「modifier.mbtruncate.php」を作成し 以下のソースを記述する。<? phpfunction Smarty_modifier_mbtruncate($string, $length=80, $etc='...', $break_words=false){ if ($length==0) return ''; if (strlen($string) > $length){ $length -=strlen($etc); if (!$break_words) $string = preg_replace('/\s+?(\S+)?$/', '', mb_strcut($string, 0, $length+1)); return mb_strcut($string , 0, $length).$etc; } else return $string;}?> 【xoops_mailenc:メアド暗号化】 class/smarty/pluginsに「modifier.xoops_mailenc.php」を作成し 以下のソースを記述する。<?function Smarty_modifier_xoops_mailenc($mail_desc){ $string = 'document.wirte(\''.$mail_desc.'\');'; for ($x=0; $x < strlen($string); $x++) { $js_encode .= '%' . bin2hex($string[$x]); } return '<script type="text/javascript" language="javascript">eval(unescape(\''.$js_encode.'\'))</script>'; }?>【mb_convert_encoding:地図をリンクする】 テキスト住所から地図表示サービス(MapFan)で地図にリンクする。 class/smarty/pluginsに「modifier.mb_convert_encoding.php」を作成し 以下のソースを記述する。<?function Smarty_modifier_mb_convert_encoding($string, $to="Shift_JIS"){ return mb_convert_encoding($string,$to);}?>リンクには以下のソースを記述する。<a href="http://www.mapfan.com/index.cgi?addr="> テキスト住所が$link.addressに格納されている場合です。