cakePHP + smarty + 絵文字表示

とりあえず表示だけ。
入力、保存、出力はまたあとで。

携帯絵文字変換スクリプト様++

便利なものを作成してくださっている。
携帯絵文字変換スクリプトをPHPで作ってみた。 携帯サイトを作ろう! -ちょっと詳しいモバイルサイトの作り方-
最新版はこっちにあるらしい
携帯絵文字変換スクリプト 3キャリア対応版 - HTMLタグボード
ダウンロードは最新版から落とそう。

Smartyで携帯絵文字カスタム関数様++

別にそういう名前の関数ではないのだけど、なんて呼んでいいのかわからないので、こうやって呼びました。
Smarty で携帯絵文字 - ZeBeVogue別館

簡単に言うと、

{emoji num="120"}

とか書くだけで、3キャリア対応絵文字が出るようになります。
素敵。

設定

変換スクリプトを落として解凍しましょう

trans.php - 絵文字変換スクリプト本体
emojix.csv - 絵文字変換テーブル(XHTML用)
emojih.csv - 絵文字変換テーブル(HTML用)
images - PC表示用絵文字格納フォルダ

これら四つのファイルを受け取ります。
自分が使用するサイトに合わせて、

を選びましょう。


次に、カスタム関数を保存して、function.emoji.phpという名前にします。
保存先は、smarty/plugins/以下


そしてここに、先ほどダウンロードした、

  • emojix.csv - 絵文字変換テーブル(XHTML用)

も保存します。

function.emoji.phpの調整

cake + smarty の環境だと画像ファイルの設定が相対パスになっていて動かないので、絶対パスに変えます
75行目を

	//絵文字変換表
	$emoji_data = "絶対パス"

また、emojix(emojih).csv ファイルの名前も適時変えましょう。
まぁ、どんな方法でも読み込めればOKです



あとは、tpl側で、

{emoji num="120"}

で動きます。


追記

SoftBankで不要な改行が入ってた。
csvから絵文字取りだす部分で、

$line = rtrim( $line );

とかでいける。
改行コードは環境に合わせて。


sjis以外の文字コード使う場合、docomoが化けるので、その場合は、csvファイル自体の文字コード変えて対応。


PCでのアクセス時に画像を出したい場合は、imgのパイルパスを適時変える