2008/7/23 水曜日

Smartyのテンプレート内でjavascriptを使う

Filed under: Smarty — ne-zu @ 23:06:45 このエントリをはてなブックマークに追加

Smartyのテンプレート内でjavascriptを使う - パンプキンスパイスラテ

Smartyでページを構築してたら、どうしてもjavascriptの部分でエラーになってしまう。しかもSmartyのエラー。悩んで調べてみたら、どうやらSmarty内でjavascriptを使うには、<中略>{literal}~{/literal}で囲まなければならないらしい。

Smartyのテンプレート内ではそのまま使えませんね。
leteralで囲むのも良いのですが、私はよく

PHP:
  1. $config = array(
  2.     'left_delimiter'  => '<{',
  3.     'right_delimiter' => '}>',
  4. );
  5. $smaty = new Smarty($config);

のように、オプションでデリミタを変えてしまいます。少し可読性は落ちますが、Javascriptを組むときに楽です。

2008/6/18 水曜日

SmartyでShift-jis 出力

Filed under: Smarty — ne-zu @ 23:26:56 このエントリをはてなブックマークに追加

LAMPのテクメモ: Smarty Shift-jis 出力
携帯サイトでSmartyを使っている時はやはり出力時にShift-jisに変換したいです。
できれば機種依存文字もざざっと片付けたいですね。

2008/2/27 水曜日

Zend FrameworkでSpeedy

Filed under: ライブラリ, Zend Framework, Smarty — ne-zu @ 23:32:58 このエントリをはてなブックマークに追加

Zend Framework/自作コンポーネント/Speedy - Revulo's Laboratory

Zend FrameworkのテンプレートはSmartyを組み込んでしまう私ですが、Speedyを組み込んじゃおうというライブラリ。Smarty重いぜっという時に使ってみようと思います。

2008/2/2 土曜日

Smartyでこんなメソッドがあった

Filed under: Smarty — ne-zu @ 14:59:51 このエントリをはてなブックマークに追加

Smartyでこんなメソッドがあった - mtonaiの日記 - ノッキングオングループ

[smary]
{html_select_date}
[/smarty]

日付のフォームをどどっと出してくれる便利メソッドですが、使ってなかったです。
なんかイマイチ使いでが悪かったというかカスタマイズしにくかったというか。
でもコメント欄にもある、

http://www.phppro.jp/phptips/archives/vol23/#1

{html_select_date field_order="YMD" month_format="%m月"}

と記述すると、01月~09月となってしまい、頭に不要な0がついてしまいます。php内部で処理するための値であればそこまで気にならないかもしれませんが、表示部分で気にする人がいてダメ出しされる場合もあるでしょう。

そこで、month_format="%m月"の「%m」の部分を「%-m」に書き換えてみましょう。これで頭の不要な0を取り除く事が出来ます。

と例を出してもらうと、何が出来るのか分かりやすいですね。

2007/12/14 金曜日

Smarty でvar_dumpとかprint_rのようにdump

Filed under: Smarty — ne-zu @ 23:53:40 このエントリをはてなブックマークに追加

Smarty でvar_dumpとかprint_rみたいに。 (こまちドーナツ)

PHP:
  1. {$array|@debug_print_var}

ふむふむ。これは便利ですね。でもちょっと表示数が少ないような気もしますが。

2007/12/7 金曜日

Smartyで日本語などのマルチバイト文字をmb_strimwidthで丸める時の注意。

Filed under: 基本, Smarty — ne-zu @ 23:26:14 このエントリをはてなブックマークに追加

PHPの種 ブログ » Smartyで日本語などのマルチバイト文字の丸め。文字数で表示を制限する。
で、書いたmb_strimwidthを用いた方法ですが、内部エンコーディングに左右されるてしまうので、きちんと文字コードを設定しておいたほうが良いですね。まあ、mb系では内部エンコーディングに注意!なのはいつものことなのですが、mb_strimwidthはエンコードが違っても多少ちゃんと動いてしまうので見逃しやすいんですよね。

SMARTY:
  1. {$hoge|mb_strimwidth:0:16:"...":'UTF-8'|escape}

と、いうことでお気をつけくださいませ。

2007/11/30 金曜日

Smartyで文字を連結する -> cat

Filed under: Smarty — ne-zu @ 23:35:29 このエントリをはてなブックマークに追加

ふと、Smartyで文字列を連結したくなりましたが、やり方がわかりませんでした。
{$hoge + $huga}
とか?

いやいや、

cat
与えられた変数に値を連結します。

SMARTY:
  1. {$articleTitle|cat:" yesterday."}

という方法で連結します。簡単ですね。

2007/11/24 土曜日

Zend FrameworkでSmarty使用時に修正子プラグインを使うには。

Filed under: Zend Framework, Smarty — ne-zu @ 10:58:51 このエントリをはてなブックマークに追加

Zend FrameworkのViewHelperとしてSmartyを使用している場合に、Smartyの修正子プラグインを使う時、みなさんどのように組み込んでいますか?
とりあえずや、そのコントローラ内でしか使用しない修正子の場合は、コントローラのメソッドとして書き込み、

PHP:
  1. class IndexController extends Zend_Controller_Action
  2. {
  3.     public function indexAction()
  4.     {
  5.         $this->view->getEngine()->register_modifier(
  6.             "hoge",
  7.             array($this, 'smarty_modifier_hoge')
  8.         );
  9.     }
  10.  
  11.     public function smarty_modifier_hoge($string)
  12.     {
  13.         return $string . " and hoge.";
  14.     }

あるいは、

PHP:
  1. $this->view->getEngine()->register_modifier(
  2.             "hoge",
  3.             array('IndexController','smarty_modifier_hoge')
  4.         );

のように組み込みんだりします。

2007/10/21 日曜日

Smartyで日本語などのマルチバイト文字の丸め。文字数で表示を制限する。

Filed under: Smarty — ne-zu @ 23:57:09 このエントリをはてなブックマークに追加

Smartyで文字を丸める時は、truncate修飾子などを使いますが、残念ながら日本語などのマルチバイトに対応していません。
ですが、PHPの関数をそのまま使用できるので、マルチバイト対応のmb_strimwidthを使ってみてはどうでしょうか。

SMARTY:
  1. {$hoge|mb_strimwidth:0:15:"..."|escape}

無事丸められましたでしょうか。

自分でオリジナルの修飾子を作るのも良いと思います。

2007/9/24 月曜日

Smartyで数値を3桁毎にカンマで区切るには。

Filed under: Smarty — ne-zu @ 16:06:22 このエントリをはてなブックマークに追加

Smartyで通貨などの数値を出力する時に、

1,234,567

などとカンマをつけて出力したい時に一番簡単な方法は、PHPのnumber_format関数を使うことです。
SmartyはPHPの関数をそのまま修飾子に使えますので、

SMARTY:
  1. {$num|number_format}

これでOKです!

次のページ »

Powered by PHP-SeeD and WordPress ME