smartyを利用して全角カタカナを半角カタカナで出力するときの注意点

| | コメント(0) | トラックバック(0)
前にZend Frmaeworkで携帯サイトを作る(PCサイトを作った後で)3で、全角カタカナを半角にする方法を書いた。
が、これが、メール送信時にZend_Viewを使っていると困ったことになるかもしれない。
メールは半角カタカナ対応してないのに、フィルタが半角にしちゃうからカタカナが全部?とかに文字化けしてしまう。



 ということでメール送信時にはフィルタを一回切らないといけない。

Zend FrameworkのZend_ViewをSmartyにで作ったSmartyのラッパクラスに以下のメソッドを追加。

    /**
     * filterをロードします。
     */
    public function loadFilter($filter, $name)
    {
        $this->_smarty->load_filter($filter, $name);
    }
   
    /**
     * outputfilterを解除します。
     */
    public function unloadOutputFilter($name)
    {
        $this->_smarty->unregister_outputfilter($name);
    }

メールの送信前後でこんな感じで使う。
hogeAction
    public function hogeAction() {
    ~前略~
       // メールは半角カタカナが使えないのでフィルタを一回きる
       $this->view->unloadOutputFilter('convert_hankakukana');
       $config = Utils::getConfig();
       $mail = new Hmr_Mail_Client();
       $mail->addTo($row->mobile_email);
       $mail->setFrom($config->mail->from);
       $mail->setSubject($config->mail->subject);
       $mail->send($this->view->render('mailbody/hoge.tpl'));
       $db->commit();

        // 一回きったフィルタを復活させる。
        $this->view->loadFilter('output', 'convert_hankakukana');
    }

これでOK。のはず。



トラックバック(0)

このブログ記事を参照しているブログ一覧: smartyを利用して全角カタカナを半角カタカナで出力するときの注意点

このブログ記事に対するトラックバックURL: http://hirop0164.s326.xrea.com/mt/mt-tb.cgi/270

コメントする


画像の中に見える文字を入力してください。

ブックマーク

はてなブックマークに追加 Yahoo!ブックマークに登録 del.icio.us に登録 ライブドアクリップに追加 Google Bookmarks に追加

Ajax: 2009年5月: 月別アーカイブ

このブログ記事について

このページは、ぴろしが2009年3月 4日 17:02に書いたブログ記事です。

ひとつ前のブログ記事は「ERROR: The DSP imagick.dsp does not exist.- PHPでWindowsでImageMagick」です。

次のブログ記事は「CentOSにImageMagickとimagickをインストール」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。