月別過去ログ

« Movable Typeバナーの場所 | メイン | カテゴリー別タイトル一覧の表示法 »

MTのコメントで絵文字を使う

2005年05月23日

ずっとやってみたかった、コメントで絵文字を使う方法!
ぽちっとアイコンを押せばその絵文字が挿入されるので
コメントを付けてくれる方もちょっと楽しいのではないかな?
と思っています(*'-')

しかし、コメント数が多くなったり、絵文字が使われれば使われるほど
表示が重くなってしまう
のでそこらへんはご注意くださいね!


チームニゴイでございます。さんのエントリーコメントにアイコン
Magic Whiteさんのエントリーコメントに絵文字機能復帰です
を参考にさせていただきました。

ここでは少し補足しながら覚書きを書いておきます。(自分が忘れないため・・・)
*2007年1月7日に3.3対応に書き換えました。


テンプレートに直接スクリプトを書き込んでいってもいいのですが、
長くなってしまう事と、後々のカスタマイズのしやすさを考えて
テンプレート・モジュールを使います。

スクリプトは3つです。
・画像設定スクリプト
・画像リスト出力スクリプト
・画像変換スクリプト

スクリプトを読み込ませるテンプレートは
・エントリー・アーカイブ(個別エントリーアーカイブ)
・コメントプレビューのテンプレート

必要に応じてスタイルシートで表示方法を指定する事もできます。

1・好きなアイコンを探してくる。
自分が使いたいアイコンを素材屋さんなどから探してきて、アップロードします。



2・画像設定スクリプトのテンプレートモジュールを作ります。
管理画面の、テンプレート>モジュールの、右上にある
「モジュールを新規作成」をクリック。

テンプレートの名前をCommentEmojiAに。
モジュールの中身に

<script type="text/javascript">
<!--
// コメントにカスタマイズ絵文字入力機能:画像設定
function getCommentEmojiList() {
var list = new Array();
// 画像名、画像URLの設定
list[list.length] = new Array('・・・', '<$MTBlogURL$>emoji/0.gif');
list[list.length] = new Array('ハート', '<$MTBlogURL$>emoji/1.gif');
list[list.length] = new Array('', '<$MTBlogURL$>emoji/2.gif');
return list;
}

function getCustmizeEmojiAttribute() {
// 画像タグに含める属性値(alt属性以外)
var att = 'border="0" style="vertical-align:middle"';

// ***************** 設定ここまで *****************
att = (att != '') ? (' ' + att) : '';
return att;
}
// -->
</script>

と入れて保存。

赤文字の所はコメントを書く時、絵文字を押した時に
コメントフォームの中に絵文字の変わりに表示される文字です。
[ハート]という風に表示されます。好きな言葉にできます。

青文字の所はその画像があるURLを書く所です。
'<$MTBlogURL$>emoji/0.gif'だと、
MTのindex.htmlと同じ場所にあるemojiというフォルダの中にある0.gifという画像。ですね。
<$MTBlogURL$>の所にはウェブログの設定で入れているブログのURLが入ります。
<$MTBlogURL$>の上の階層に画像を置いたりした場合は
'http://(フォルダまでのURL)/emoji/0.gifという風に
どーんとパスを書いてやればいいと思います。
フォルダの名前も好きな名前にして大丈夫です。

list[list.length] = new Array('・・・', '<$MTBlogURL$>emoji/0.gif');

は、好きなだけ増やす事ができます。
しかしあまり増やしすぎると重くなってしまいますのでほどほどに・・・ね。



3・CommentEmojiAを読み込む設定をします。
エントリー・アーカイブの</head>の上に

<$MTInclude module="CommentEmojiA"$>

と書きます。



4・画像リスト出力スクリプトのテンプレートモジュールを作ります。
管理画面の、テンプレート>モジュールの、右上にある
「モジュールを新規作成」をクリック。

テンプレートの名前をCommentEmojiBに。
モジュールの中身に

<script type="text/javascript">
<!--
// コメントにカスタマイズ絵文字入力機能:画像リスト出力
function writeCustmizeEmojiTagList() {
// コメントを入力するテキストエリアを指定
var textarea = 'document.comments_form.text';

// ***************** 設定ここまで *****************
var list = getCommentEmojiList();
var att = getCustmizeEmojiAttribute();
for (var i = 0; i < list.length; i++) {
window.document.write('<a href="javascript:;" onClick="addCustmizeEmoji(' + textarea + ', \'' +
list[i][0] + '\');"><img src="' + list[i][1] + '"' + att + ' alt="' + list[i][0] + '" /></a>');
}
}

// reference from jugem.jp (c)
function addCustmizeEmoji(obj, tag) {
var item = '[' + tag + ']';
if (document.selection) {
obj.focus();
sel = document.selection.createRange();
sel.text = item;
} else if (obj.selectionStart || obj.selectionStart == '0') {
var startPos = obj.selectionStart;
var endPos = obj.selectionEnd;
obj.value = obj.value.substring(0, startPos)
+ item + obj.value.substring(endPos, obj.value.length);
} else {
obj.value += item;
}
}
writeCustmizeEmojiTagList();
// -->
</script>

と入れて保存。



5・CommentEmojiBを読み込む設定をします。
エントリー・アーカイブのコメントフォームの好きな場所に

<$MTInclude module="CommentEmojiB"$>

と書きます。

私は3.3では以下の赤文字の所に入れています。

<div id="comments-open-footer" class="comments-open-footer">
<$MTInclude module="CommentEmojiB"$>

<input type="submit" accesskey="v" name="preview" id="comment-preview" value="確認" />
<input type="submit" accesskey="s" name="post" id="comment-post" value="投稿" />
</div>



6・画像変換スクリプトのテンプレートモジュールを作ります。
管理画面の、テンプレート>モジュールの、右上にある
「モジュールを新規作成」をクリック。

テンプレートの名前をCommentEmojiCに。
モジュールの中身に

<script type="text/javascript">
<!--
// コメントにカスタマイズ絵文字入力機能:画像変換
function changeCustmizeEmojiTag() {
// (1)コメント全体のタグの id 属性
var commentAreaIdName = '';
// (2)コメント全体のタグ名
var commentAreaTag = 'div';
// (3)各コメントの class 属性
var commentBodyClassName = 'comment-content';

// ***************** 設定ここまで *****************
var list = getCommentEmojiList();
var att = getCustmizeEmojiAttribute();
var objComArea;
var classComArea;
var objComBody = new Array();
if (commentAreaIdName != '') {
objComArea = document.getElementById(commentAreaIdName);
if (!objComArea || !objComArea.innerHTML) return;
classComArea = objComArea.getElementsByTagName(commentAreaTag);
} else {
classComArea = document.getElementsByTagName('*');
}
for (var i = 0; i < classComArea.length; i++) {
if (classComArea[i].className == commentBodyClassName)
objComBody[objComBody.length] = classComArea[i];
}
for (var i = 0; i < objComBody.length; i++) {
objComBody[i].innerHTML = getStringCustmizeEmojiTag(list, objComBody[i].innerHTML, att);
}
}

function getStringCustmizeEmojiTag(list, s, att) {
for (var i = 0; i < list.length; i++) {
s = s.split('[' + list[i][0] + ']').join('<img src="' + list[i][1] + '"' + att + ' alt="' + list[i][0] + '" />');
}
return s;
}
changeCustmizeEmojiTag();
// -->
</script>

と入れて保存。

*注
緑文字の所のclass 属性、3.2以降はこのままでOKです。
3.2以前のバージョンでは、多分commentbodyだと思います。
ご確認ください。



7・CommentEmojiCを読み込む設定をします。
エントリー・アーカイブの<MTEntryIfCommentsOpen>の上に

<$MTInclude module="CommentEmojiC"$>

と書きます。



8・classの指定。
3.3では最初から指定がしてあるので、何もしなくてOKです。

3.2などの場合、
個別エントリーアーカイブの<div id="c<$MTCommentID$>">を

<div id="c<$MTCommentID$>" class="comment-content">
にします。 緑文字の所は、commentbodyなど、 上で出てきたものと同じにしてください。



9・コメントプレビューのテンプレートにも読み込む設定をします。
・</head>の上に

<$MTInclude module="CommentEmojiA"$>

と書きます。
・好きな場所でいいですが、とりあえず<div id="comments-open-footer" class="comments-open-footer">の下に
<$MTInclude module="CommentEmojiB"$>

と書きます。
・</MTEntryIfCommentsOpen>の上に
<$MTInclude module="CommentEmojiC"$>

と書きます。

必要な方は、スタイルシートなどで見た目を調節してください。



保存して、再構築で完成ヽ(・∀・)ノ!

画像の名前とURLを設定するのが面倒ですが、がんばってください!
かわいいアイコン探す楽しみが増えました♪

このカスタマイズは3.1で試しました。以後ずっと使っています。
2007年1月7日に3.3対応に記事内容を書き換えました。
3.2、3.1での方法も注釈を入れて書いていますので、確認しながらお試しください。
トラックバック (2)

◇重複トラックバックはこっそり削除しますのでお気になさらないでください。
◇トラックバックスパムと判断しましたらサックリ削除いたしますのでご了承ください。

この一覧は、次のエントリーを参照しています: MTのコメントで絵文字を使う:

» コメントにも 絵文字を使う♪ ( ++Blog-MELL++ )
コメントにも 絵文字があると 楽しいですよね 以前のバージョンでも やっていたの...

» 絵文字の導入コメントフォーム編 ( PARADISE BLOG )
前に、一度行ったカスタマイズだけど、バージョンアップ後は付けてなかったので エン...

コメント (24)
» 投稿者: りぃ

絵文字の使い方は[!]
文の好きな[ハート]場所で下に並んでいる
好きな絵文字をクリックしてください。

投稿したら[ ]で囲まれた文字の所が
対応する絵文字になります。

» 投稿者: くんぞ〜

こんばんは[ニコッ]
参考およびコメントありがとうございました[ピカッ]

アイコンがあると華やぎますよね〜[♪]
これからもよろしくお願い致します。

» 投稿者: りぃ

きゃ〜!
お越しいただきまして、コメントまでいただきまして
ありがとうございます[ハート×2]

アイコンいいですよね〜(*'-')
こちらこそ、これからもよろしくお願いします!

» 投稿者: yasu*

難しいです[涙]
なんせど初心者なんで・・・。
でも設置したいです・・・。
ついでにカウンターも

これって初心者むりですか?[|||]

» 投稿者: りぃ

>yasu*さん
初心者でも決して無理ではありません[!]
私もこの改造は失敗の連続でした。
(他の方法で出来なかったからこの方法にしたり、色々やりました)
でも諦めずにタグとにらめっこしていけば出来ると思います。

どこら辺が分からないでしょうか?どんな些細な事でも言ってください。
お手伝いできると思います。

» 投稿者: yasu*

何もかもです[涙]
この間やっと、カウンター設置が解ったのです。
恥ずかしながら・・・。
でもですね、これをしようと思ったら、すべてカスタマイズできるフォーマットを使うのはわかるんですよね・・・。
そっからがまったくです[|||]

» 投稿者: りぃ

>yasu*さん
あ、ライブドアブログを使っていらっしゃるんですね。
この記事は Movable Type 用に書いてるのでさぞかし
チンプンカンプンだったと思います[タラッ]

私はライブドアブログをちゃんと使った事が無いので
ライブドアブログ用の解説はできません[涙]ゴメンネ

変わりに、ライブドアブログ用のコメントで絵文字を使う方法を
解説されている記事を見つけてきました。
buena suerte!さんの「コメントに絵文字機能をlivedoor Blogで!」という記事です。
URLはhttp://blog.livedoor.jp/cie/archives/13836504.html


丁寧に解説されているようですし、質問にも答えてくださっているようなので
頑張ればきっと絵文字を使えるようになると思います。
がんばってください[!]

» 投稿者: yasu*

たすかりました。
ありがとうございます。
何事もやる気だと自分を励ましております。
感謝です[うっとり]

» 投稿者: りぃ

>yasu*さん
本当、何事もやる気ですね!あと根気![ポッ]
カスタマイズ頑張ってください。応援してます

» 投稿者: mituru

こんにちは、りぃさん
お世話になっています。

この前、此方の記事を参照させて頂いたので
トラックバックをさせて頂きました。
ありがとうございます。

MT3.2を使っている時は、MTMacroプラグインの方法で
問題なく出来たんだけど、3.3でも絵文字は表示されるけど
Javaエラー「未知のエラーとかって」出るので・・・原因は、不明。汗

話し替わって今日は、雨も上がってお天気が良いけど
子供が風邪を引いているので、出かけるの止めちゃいました。(^^ゞ
風邪が流行っているので気をつけて下さいね。

では、良い週末をお過ごし下さいね。

» 投稿者: りぃ

≫mituruさん

お役に立てたようで嬉しいです[ポッ]

あら、3.3からMacroプラグイン駄目なんですね(´・ω・`)
たくさん仕様が変わっちゃったから、どこかでエラーが出てるのかな。
情報ありがとうございます。記事を修正する時に付け加えておきます。

お子様の風邪は大丈夫ですか?
今年は幸いまだ風邪をひいていません。
が、毎年1回は風邪をひく自信があるので気をつけますっ[うわーん]

» 投稿者: mituru

こんばんは、りぃさん
風邪治りました。ありがとうございます。
子供の場合は、急な発熱があるので困ります。

年内の仕事が終ったので、これでお休みに入れます
年内は、カスタマイズ等で大変お世話になりました。

では、良い年をお迎え下さいね。

» 投稿者: りぃ

≫mituruさん

今年もあと明日だけになってしまいましたね~。
1年間お仕事お疲れ様でした。
くれぐれも無理はしない程度に、来年もがんばってくださいね[!]

来年も、少しずつですがカスタマイズを記事にしていきたいと思っています。
あまり期待しないで待っててくださいネ[うわーん]

良いお年を!

» 投稿者: 匿名

はじめまして [♪]

りぃさんの説明どおり設定していきました。

説明が完璧なので、難なくクリアー!!
見栄えのいいGIFもさくさくと収集して終了。

ありがとうございました m(_ _)m

しかし、なんか不細工です・・・[えーん]

GIFにマージンみたいなのが入っていて、田植え直後の田んぼみたいに広がってしまっています。

画像自体は大きさに問題なしなんですが。
HTMLならば MARGIN とか PADDING で調整できるのですが、JAVAは全くの素人なのでわかりません。

お助けくださいませ。

» 投稿者: 3daru

↑ 名前が抜けておりました。

失礼しました。 [てへへ]

» 投稿者: りぃ

≫3daruさん

はじめまして[ポッ]

ちょっ、田植え直後の田んぼって・・・!
あまりに表現が上手で爆笑してしまいましたっ[テレ]

間隔が広がってしまうのは・・・
最後のスタイルシートも記入して保存したでしょうか?
もしそうなら、その部分を削除してみたら詰まって並ぶかもしれません。
できなかったらまたコメントください。

この記事自体情報が古くなってて申し訳ないです。
今から3.3用に記事内容を修正したいと思います。

» 投稿者: 3daru

ありがとうございます!

田植え直後の田んぼから、収穫前の田んぼに変えることが出来ました。

カスタマイズした時にCSSが効かなくなっていたのが原因でした。
申し訳ありません [涙] JAVAの問題ではありませんでした。

記事内容の修正、ありがとうございます。 とっても分かりやすいです。
ありがとうございました。

» 投稿者: りぃ

≫3daruさん

無事に稲穂が実ったようでよかったです(笑)[祝]

また分からない所とか変な所とかあったらコメントしてください[ニコッ]

» 投稿者: ジュリママ

こんにちは。
何度も絵文字入力にトライしてましたがナカナカ・・・
しかし
こちらの、親切・丁寧な解説で
やっと出来ました[♪]
ありがとうございました[ニコッ]

» 投稿者: りぃ

≫ジュリママさん

こんにちは[ポッ]
カスタマイズ成功おめでとうございます!
お役に立てたようで嬉しいです[うっとり]

» 投稿者: スウ

初めまして!

こちらの丁寧な説明で、絵文字を使えるように出来ました[ハート]
これで、素っ気無いブログが少しは可愛くなった気が(っ´∀`)っ
助かりました。ありがとうございましたm(__)m

» 投稿者: りぃ

≫スウさん

はじめまして[ポッ]
カスタマイズ成功おめでとうございます。
お役に立ててよかったです~。

(お返事遅れてごめんなさい[涙])

» 投稿者: Chapa

この度こちらのエントリーを参考に「コメントで絵文字」のカスタマイズをさせて頂きました。
ありがとうございました。

大変わかりやすかったのでトラックバックを遅らせて頂いたところ、文字コードを確認しなかったので文字化けしてしまいました。

お手数ですが削除お願いできますでしょうか?
よろしくお願い致します。

» 投稿者: りぃ

≫Chapaさん

参考にしていただきありがとうございます[ポッ]
お役に立てて嬉しいです。

トラックバックの件、作業完了しました。
対応がとても遅くなってしまいごめんなさい[えーん]

コメントを投稿

◇コメントスパムと判断しましたらサックリ削除いたします。ご了承ください。

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

おしらせ
  • このサイトの更新を停止いたします。詳細は「更新停止します」の記事に書いてありますのでそちらをご覧ください。
    日記サイトpi:s、WordPressのカスタマイズをメモしておく
    WordPress*Memoはこっそり更新していきます(`・ω・´)
    今までありがとうございました。-りぃ-
blog status
  • 利用中サーバー
  •  エックスサーバー
  • 利用中ドメイン登録代行サービス
  •  VALUE-DOMAIN

  • 記事数 : 51
  • コメント数 : 207
  • トラックバック数 : 53
  • カウンターカウンター
    カウンターカウンター カウンターカウンター
  • お気に入りに追加
  • track feed