開発のページ
BlognPlus用コメントアイコン&絵文字モジュール(ver1.8)
機能と説明
ブログスクリプトであるBlognPlusのコメントに、アイコンおよび絵文字を使えるようにするモジュールです。
1 「ぶろぐん」のコメントにアイコン機能を追加します
2 「ぶろぐん」のコメント本文に挿入できる絵文字を追加します
3 アイコン未選択時にスパムと見なして投稿を拒否できます(ON/OFF)
4 携帯電話からもアイコン付で投稿(ver1.10~)
5 使用できる絵文字は、自分で用意したもの&ぶろぐん標準絵文字の両方使用可能
6 投稿者あるいは管理者によるコメント削除が可能(ver1.5~)
※ コメントスパム対策モジュール(ver3.20以降)と併用の場合は、必ずver1.7以降をご使用ください。
※ 次期バージョンでは、BlognPlus(2.7.0予定)での仕様変更に合わせた形で改めてリリースさせていただく予定です。(現状ではindex.phpへの改造は避けられませんでしたorz)
※ コメントアイコン&絵文字モジュール(ver1.8)はBlognPlus ver2.5.6と2.6.2のどちらにも対応しています。
※ ver1.7aにてコメント削除パスワードの記録内容を変更いたしました。以前のバージョンで登録された削除PW付きのコメントは、そのままでは削除できません。どうしても削除する必要がある場合は、管理者による削除にて対応をお願いいたします。
インストールの前に
このモジュールは、本来blognには実装されていないコメントにアイコンおよび絵文字を使用できるようにするものですが、その実装においてJavaScriptを多様するものとなっています。そのため、JavaScriptの実行段階においてブラウザ上でスクリプトエラーが発生していた場合、うまくコメント欄に絵文字が挿入されないということが予想されます。(モジュール内の関数が呼び出せないことによるエラー)
このモジュールのインストールの前に、できるだけそういったエラーを解消されることをお勧めします。(IEの場合、ページ表示時にステータスバーに「!ページでエラーが発生しました」と表示されます)
コメントスパム対策モジュールを併用の場合、モジュールのインストール時に注意が必要です。必ずインストール手順の[7](コメントスパム対策モジュールとの連携)をご確認の上、必要な処理をお願いいたします。
name02="ペタ2" (データはすべて二重引用符「""!" (各絵文字に対応する表示名。**はemof**と一致させること)
emoj02="?" (データはすべて二重引用符「"」で囲んでください)
・
・
zipを解凍したままの状態でももちろん使えます。その場合、明るい背景用に黒い足アイコンを使用し、ブログン標準絵文字のみを使用するという設定になっています。
独自に絵文字を追加する場合は、絵文字画像を独自に用意していただいた上で、emomaxに追加する絵文字数を設定し、emof01に対する表示名emoji01というようにemof**とemoji**の**を対応させて画像ファイル名と表示名を設定してください。
(このバージョンから絵文字画像のサンプルは同軸していません)
(参考)
アイコン機能を使わない場合は、
iconmax=0 (アイコンの最大数)
絵文字機能を使わない場合は、
emoblogn=0 (ぶろぐん標準絵文字も使用する→1 しない→0)
emomax=0 (独自追加する絵文字の最大数 0にすると、独自絵文字を使用しません)
[3]「index.php」に1ヶ所書き加える
(index.php 1330~1340行目付近/BlognPlus ver2.5.6の場合)
(index.php 1155~1165行目付近/BlognPlus ver2.6.0の場合)
            $cmt_tmp_buf = str_replace ("{COMMENTBODY}", $comment, $cmt_tmp_buf);
// add sxcicon by SAKI start
            include(BLOGN_MODDIR."/sxcicon/sxciconadd2.php");
// add sxcicon by SAKI end
            $cmt_skin_center .= $cmt_tmp_buf;
[4]スキンファイルに必要なタグを記述する(PC版)
(0)JavaScriptエリアにスクリプト置換タグを記述
(1)フォームにname属性を追加する(name="CommentFORM")
(2)アイコン選択用セレクトボックスを記述(フォーム内の好きな場所でOK))
(3)絵文字一覧表示部分を記述(フォームの内外のどこでも可/textareaの近くがいいです)
(4)コメント表示(一覧)エリアに削除ボタン記述
スキン中でアイコン関係、絵文字関係、削除関係のタグはそれぞれ個別に記述可能です。使わない機能はスキンから削除しても大丈夫なはずです。
(使用するスキンの「head」内 JavaScriptエリア)※絵文字使用の場合に必要
<script language="JavaScript">
<!--
{SXCEMOJS}
//-->
</script>
あらかじめスクリプトエリアがあれば、その中に「{SXCEMOJS}」を加えるだけでいいです。
(使用するスキンのコメント入力フォーム部分 以下の例は私のブログの場合です)
              <form name="CommentFORM" action="index.php?mode=comment" method="post">
                <input type="hidden" value="{CEID}" name="blogn_cid" />
                <label for="c_name">name:※</label><br />
                  <input id="c_name" tabindex="1" name="blogn_cname" value="{CNAME}" /><br />
                <label for="c_email">email:</label><br />
                  <input id="c_email" tabindex="2" name="blogn_cemail" value="{CEMAIL}" /><br />
                <label for="c_url">URL:</label><br />
                  <input id="c_url" tabindex="3" name="blogn_curl" value="{CURL}" /><br />
<!-- ここから 2 アイコン使用のためのセレクトボックスの記述※アイコン使用の場合に必要 -->
                <label for="sxcicon">Icon:</label><br />
                  {SXCICON}<br />
<!-- ここまで 2 -->
                <label for="c_mes">comments:※</label>
<!-- ここから 3 絵文字リストの記述はベタに画像(リンク付)を並べます<div>とかで整形するのがいいと思います※絵文字使用の場合に必要 -->
<br />
<div>{SXCEMLIST}</div>
<br />
<!-- ここまで 3 -->
                  <textarea id="c_mes" tabindex="4" name="blogn_cmes" rows="4" cols="30"></textarea>
                <div>
<!-- ここから 4 削除パスワード入力エリアの記述※削除機能の場合に必要 -->
                  削除用PW:{SXCMTDELPW}
<!-- ここまで 4 -->
                  <input type="submit" value="コメント送信" /> 
                  <input id="set_cookie" type="checkbox" value="on" name="set_cookie"{CSCOOKIE} /> 
                  <label for="set_cookie">Cookieに登録</label>
                </div>
              </form>
注)クッキーへ保存に関わるチェックボックスに{CSCOOKIE}を追加しておくことで、「クッキー保存」の是非をクッキーに保存できるようになります。(よろしければ使ってください)(from Ver 1.8)
(使用するスキンのコメント表示部分 以下の例は私のブログの場合です)
            {COMMENTNOINPUT}
            <h3 class="entry_subtitle">この記事に対するコメントの受付は終了しています。</h3>
            {/COMMENTNOINPUT}
            <h3 class="entry_subtitle">
            コメント</h3>
            {COMMENTLOOPASC}
              <div class="entry_body2">
              {COMMENTBODY}</div>
<!-- ここから 5 削除実行ボタンフォームの記述※削除機能の場合に必要 -->
              <div >{SXCMTDELFORM}</div>
<!-- ここまで 5 -->
              <p class="entry_state">
              | {COMMENTUSER} | 
              {COMMENTEMAIL}EMAIL{/COMMENTEMAIL} | 
              {COMMENTURL}URL{/COMMENTURL} | 
              {COMMENTYMD}Y/m/d h:i A{/COMMENTYMD} | 
              {COMMENTID} |</p>
            {/COMMENTLOOPASC}
            {COMMENTINPUT}
[5]スキンファイルに必要なタグを記述する(携帯版)
(注:携帯での絵文字使用には対応していません)
(skinフォルダのiskin.html コメント入力フォーム)
<form action="index.php" method="post">
<input type="hidden" value="comment" name="mode">
<input type="hidden" value="{CEID}" name="blogn_cid"> <label for="c_name">name:</label><br>
<input type="text" id="c_name" tabindex="1" size="8" name="blogn_cname" value="{CNAME}"><br>
<label for="c_email">email:</label><br>
<input type="text" id="c_email" tabindex="2" size="8" name="blogn_cemail" value="{CEMAIL}"><br>
<label for="c_url">URL:</label><br>
<input type="text" id="c_url" tabindex="3" size="8" name="blogn_curl" value="{CURL}"><br>
<!-- ここから 6 セレクトボックスの記述※アイコン使用の場合に必要 -->
<label for="sxcicon" tabindex="4" size="8" >Icon:<label><br>
{SXCICON}<br>
<!-- ここまで 6-->
<label for="c_mes">comments:</label><br>
<textarea id="c_mes" tabindex="5" name="blogn_cmes" rows="2" cols="20"></textarea><br>
<br>
<!-- ここから 7 削除パスワード入力エリアの記述※削除機能の場合必要 -->
削除用PW:{SXCMTDELPW}
<!-- ここまで 7-->
<input type="submit" value="コメント送信"> <input id="set_cookie" type="checkbox" value="on" name="set_cookie"{CSCOOKIE}> <label for="set_cookie">Cookieに登録</label>
</form>
(skinフォルダのiskin.html コメント表示部分)
<u>コメント</u><br>
{COMMENTLOOP}<br>
{COMMENTBODY}<br><br>
<div align="right">by {COMMENTUSER}</div>
<br>
<!-- ここから 8 削除ボタンフォームの記述※削除機能の場合必要 -->
{SXCMTDELFORM}<br>
<!-- ここまで 8-->
|{COMMENTYMD}Y/m/d h:i A{/COMMENTYMD}|{COMMENTID}|<br>
<hr >
{/COMMENTLOOP}<br>
[6]管理者によるコメント削除機能
パスワードを設定したコメント投稿者自身によるコメント削除だけでなく、管理者によるコメント削除が可能です。
そのために、コメント内に設定されたパスワードを無視して削除できるスーパーパスワードを設定する必要があります。
(sxcionフォルダのsxcicon.php 先頭部分)
// コメント削除用スーパーパスワード。このパスワードでどのコメントも削除できる。
// 空白なら、使用しない。
$sxCmtSperPw = '****';
初期設定では、空白になっています。
また、スーパーパスワードが設定されていた場合、削除パスワードが設定されていないコメントであっても管理者の手によって削除が可能になります。
[7]コメントスパム対策モジュールとの連携
このモジュールは、コメントスパム対策モジュールと併用する場合、必ず対策モジュールよりも先に実行される必要があります。
BlognPlusのシステム上、どのモジュールが先に実行されるかは不定であることから、双方のモジュールが正常に動作するために、以下の手続きを行ってください。
※asm4cmt.php の先頭に@include文を1行追加する
※なお、下の例はコメントスパム対策モジュールver3.20の場合ですが、それ以外のバージョンであっても、先頭に追加することで動作するはずです。
//ここから
@include(BLOGN_MODDIR."sxcicon/sxcicon.php");
//ここまで追加する
blogn_mod_asm4cmt_input_comment($blogn_user, $blogn_post_cid, $blogn_post_cname, $blogn_post_cemail, $blogn_post_curl, $_POST["blogn_cmes"], $blogn_post_set_cookie, $blogn_server_remode_addr, $blogn_server_http_user_agent, $blogn_server_http_referer, $blogn_get_token, $_POST[$tsname0], $_POST[$tsname1]);
/* ----- コメント入力処理 ----- */
アンインストール
インストール方法で追加した記述を「index.php」とスキンファイル内から削除後、「modlue」ディレクトリから「sxcicon」フォルダを削除してください。
履歴
2005.11.18(ver0.08)
アイコン機能、スパム対策機能実装(テストバージョン)
2005.11.21(ver1.00)
絵文字機能実装(公開)
2005.11.22(ver1.10)
バグフィックス
携帯電話からの投稿に対応
2006.6.25(ver1.20)
絵文字にカーソルを載せるとaltでポップアップ表示
2006.6.26(ver1.20a)
無知を露呈。altだけでなくtitle属性も併用
2006.6.27(ver1.20b)
絵文字だけでなく、アイコンにもaltおよびtitleでポップアップ表示
2006.7.04(ver1.30)
絵文字にぶろぐん標準絵文字(記事に使っているもの)を追加で使用できるようにする
2007.1.11(ver1.31)
blogn2.4.0対応
readme.txtに「インストールの前に」記述
2007.1.14(ver1.31b)
バグ修正
2008.6.27(ver1.4)
アーカイブの中からサンプル絵文字画像を削除。(著作権に配慮)
アイコンフォルダ等の基準をsxciconのインストールフォルダに変更
BlognPlus2.5~以降およびコメントスパム対策モジュール2.85の仕様変更に対応
2009.2.14(ver1.5)
投稿者によるコメント削除機能を追加。
他、モジュールディレクトリ取得関係で気になった部分を修正
2009.2.18(ver1.5b)
アイコンを選択していなかったときに削除パスワードが保存されていなかったことを修正
削除PWの無いコメントに対して、ログインモードでのみ削除ボタンを表示するように訂正
2009.2.20(ver1.5c)
コメント投稿受付部分の記述方法を変更。関数→includeに。
旧来の関数による記述も可能(交換性)
2009.4.6(ver1.6)
BlognPlus2.6.0に対応
コメント記述(変換)部分の記述方法を変更。関数→includeに。
2009.4.15(ver1.7)
コメントスパム対策モジュールver3.20に対応
コメント投稿受付部分のindex.phpへの改造を不要にした。
2009.4.17(ver1.7a)
コメントスパム対策モジュールver3.20との連携に不都合の可能性があったのを修正
コメント削除PWの取扱の変更(暗号化)
「Cookieに登録」をアイコンセレクトボックスに適用
2009.8.5(ver1.8)
BlognPlus2.6.2に対応
「Cookieに登録」のチェックボックス自体をクッキーに保存できるようにするタグ({CSCOOKIE}を追加)