2005-09-18 Sun
僕が初めて作った人様のサイト「animation soup」では、ミニ掲示板に「NP_Chat」を使用させていただいています。スマイリーも使用できて大変楽しいのですが、「スマイリーを追加できますか?」とのご要望を受けてしまいました。「phpわかんねぇ〜」と思っていたのですが、やはりanimation soupさんが作るスマイリーを見たい〜! と思ったので頑張ってみました。
とはいってもどこどうしていいやら…と思いながらソースを眺めていたら、思いの外簡単にデフォルトのスマイリー表示機能を発見しました。98行目あたりにある「function init()」という関数で定義しています。
まず、このスマイリー表示機能ですが、書き込む際に任意のアイコンをクリックすると、そのアイコンではなく、アイコンに対応した文字列が記入されます。その文字列が「function init()」内にずらーっと配列(連想配列、ですよね?)として定義されています。例えば、「$smileys[:-D]」は「smiles/icon_biggrin.gif」という具合ですね。まあ詳細はわかりませんが「:-D」と入力されれば「smiles/icon_biggrin.gif」を表示しろということですね。定義方法は
$smileys = array(
':-D' => 'smiles/icon_biggrin.gif',
':P' => 'smiles/icon_razz.gif',
':-)' => 'smiles/icon_smile.gif',
':o' => 'smiles/icon_surprised.gif',
';-)' => 'smiles/icon_wink.gif'
':|' => 'smiles/icon_neutral.gif',
':?' => 'smiles/icon_confused.gif',
':-(' => 'smiles/icon_sad.gif',
'8O' => 'smiles/icon_eek.gif',
':x' => 'smiles/icon_mad.gif',
);
こんな感じです。ここに追加してもいいのでしょうが、追加分をはっきりさせるために自分で配列を定義しました。
$asoup = array( ':kuri:' => 'asoup/donguri.gif', ':ele:' => 'asoup/ele.gif', ':idea:' => 'asoup/hakase.gif', ':soup:' => 'asoup/nonsoup.gif', ':denki:' => 'asoup/denki.gif', );
こんな感じです。つまり、配列の値に対応する画像のURIを与えるだけです。
最後に
$this->smiley = array_merge($smileys0, $smileys, $smileys21, $asoup);
として、自分の定義した配列を登録すれば完成です。
« Old 2005-09-18
NP_chat|背景色を交互に変化させる
2005-09-18 New »
NP_chat|アイコン表示