最終更新: 2009-07-13 (月) 06:35:49
このページをDeliciousに追加 このページをはてなブックマークに追加 このページをlivedoor クリップに追加 このページをYahoo!ブックマークに追加

目次

概要

HTML_Emoji ライブラリをテンプレートエンジンに組み込むサンプルです。 次のような機能を Zend_View に追加します。

  • テンプレートに埋め込まれた絵文字を、キャリアに応じて自動的に変換します
  • <?= ... ?> で囲まれた範囲の絵文字の変換 & HTML エスケープを自動的に行います
  • $this->foo でなく $foo と書くことで変数の値を参照できます *1
  • docomo の携帯の場合は、Content-Type: application/xhtml+xml のヘッダを出力します
 

なお、これはあくまでもサンプルということで、次のような機能の制限があります。

  • PC 用と携帯用のビュースクリプトは共通
  • 文字エンコーディングは UTF-8 に固定

これでもそれなりに実用にはなると思いますが、 これとは別に、次のような機能も備えたテンプレートエンジンも開発しています。

  • Shift_JIS での出力
  • 半角カナでの出力
  • 携帯用のテンプレートを PC とは別にする (予定)
  • docomo の仕様を満たすための変換処理
    • HTML_CSS_Mobile ライブラリを用いた CSS のインライン化
    • <a>, <form> タグへの 'guid=ON' パラメータの追加
  • ビュースクリプトの先頭に XML 宣言が含まれていた場合の対策

ただし、こちらは今のところ配布する予定はありません。 興味をお持ちの方がおりましたら、ご相談下さい。

インストール

以下の3つのライブラリをインストールして下さい。

アーカイブをダウンロードしてきたら、include_path の通ったディレクトリで展開して下さい。 newproject/library のような、 各プロジェクトの library ディレクトリにインストールするのが良いでしょう。

$ cd newproject/library
$ tar xvfz Revulo_View_Emoji-1.0.tar.gz
$ tar xvfz Revulo_View_Phtmlc-0.6.tar.gz
$ tar xvfz HTML_Emoji-0.7.tar.gz

使い方

このコンポーネントは ViewRenderer ヘルパー経由で登録して使います。 例えばブートストラップ (index.php や Bootstrap.php) 中で、 フロントコントローラのインスタンスを作成した後に、 以下のように登録することができます。

$view = new Revulo_View_Emoji();
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->setView($view);

その他のタイミングで登録したい場合は、 ViewRenderer ヘルパーのマニュアル を参照して下さい。

 

使い方は標準の Zend_View と基本的に同じです。 ただし、絵文字の変換と HTML エスケープの処理がデフォルトで行われるので、 ビュースクリプトを書く際には次のように使い分けて下さい。

(通常の場合)
<?= $foo ?>

(絵文字の変換や HTML エスケープをして欲しくない場合)
<?php echo $foo ?>

ビュースクリプトに絵文字を埋め込みたい場合は、 絵文字入力ソフト「i絵文字」 をインストールして使って下さい。

設定

標準の Zend_View のオプションに加えて、以下のオプションが設定できます。

  • compilePath (デフォルト: 各モジュールの views/compile ディレクトリ)
    • コンパイルしたビュースクリプトを保存するディレクトリ
  • imageUrl (デフォルト: public/images ディレクトリ)
    • 絵文字用の画像ファイルが置かれている URL

設定するには、setCompilePath(), setImageUrl() の各メソッドを用いるか、 コンストラクタのオプションで指定するかして下さい。

 

imageUrl の値を images/ のように相対パスで指定した場合は、 index.php ファイルの置かれているディレクトリが基準となります。 または、http://…/images/ のように絶対 URL で指定することも可能です。

サンプル

動作確認用に簡単なサンプルを用意しました。 アーカイブをダウンロードし、適当なディレクトリで展開して下さい。 data/cache ディレクトリは、 Web サーバが書き込めるようパーミッションを設定して下さい。

$ cd emoji
$ tar xvfz Revulo_Sample_Emoji-1.0.tar.gz
$ chmod 777 data/cache

あとは http://…/emoji/public/ のような URL にアクセスすれば試すことができます。

ライセンス

MIT ライセンスです。

ダウンロード

更新履歴

  • Version 1.0 (2009/07/13)
    • 初公開
*1 今まで通り $this-> を使った表記も可能です。

(Counter:1, Today:1, Yesterday:0)
トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   最終更新のRSS