それでは早速設置方法を。
modules/comment.inc.phpの131行目付近,<textarea name="c_com" id="c_com" cols="70" rows="10" onfocus="checkName();">'.$c_com.'</textarea>に
onkeyup="doCommentPreview()" onblur="doCommentPreview()"を追加し,以下のように変更します。
<textarea name="c_com" id="c_com" cols="70" rows="10" onfocus="checkName();" onkeyup="doCommentPreview()" onblur="doCommentPreview()">'.$c_com.'</textarea>次に,コメントプレビューを追加したい箇所に以下のコードを記述します。
<label for="comment_preview">comment preview:</label> <div class="comment-div" id="comment_preview">ご利用のブラウザ、設定ではご利用になれません。</div>これはtextareaの上に設置したい場合は129行目付近の
</div>の下の行に,textareaの下にコメントプレビューを表示したい場合は132行目付近の
</div>の下の行あたりですかねぇ。
そして以下のコードをコピペして,ext.jsという名前で文字コードEUCにて保存してください。このext.jsはindex.phpと同じ階層にextフォルダを作成し,その中にアップしてください。
// コメントプレビュー
function doCommentPreview(mode) {
// コメント入力テキストエリアのid属性
var textAreaId = 'c_com';
// プレビューを表示するタグのid属性
var previewAreaId = 'comment_preview';
// コメントプレビュー欄初期表示文字 または、画像タグ
var initString = 'ここにコメントのプレビューが表示されます。';
if (!isDoCommentPreview()) return;
if (!getElementCommentPreview(textAreaId) || !getElementCommentPreview(previewAreaId)) {
return;
} else if (null != mode && mode == 'init') {
getElementCommentPreview(previewAreaId).innerHTML = initString;
return;
}
var s = getStringCommentPreview(textAreaId);
if (null == s || '' == s || '<br />' == s) {
s = initString;
}
if (getElementCommentPreview(previewAreaId)) {
getElementCommentPreview(previewAreaId).innerHTML = s;
}
}
function getStringCommentPreview(e) {
var s = '';
s = getElementCommentPreview(e).value;
s = s.split('&').join('&amp;');
s = s.split('<').join('&lt;');
s = s.split('>').join('&gt;');
s = s.split('\'').join('&039;');
s = s.split('\n\n').join('<br />');
s = s.split('\n').join('<br />');
return s;
}
function getElementCommentPreview(e, f) {
var l = (document.layers) ? 1 : 0;
if(l) {
f=(f) ? f : self;
var a = f.document.layers;
if (a[e]) return a[e];
for (var w = 0; w < a.length;) {
return getElementCommentPreview(e, a[w++]);
}
}
if (document.all) return document.all[e];
return document.getElementById(e);
}
function isDoCommentPreview() {
var ua = navigator.userAgent;
var doNotAgentList = [
ua.indexOf('Opera/6') != -1,
ua.indexOf('Mac') != -1 && ua.indexOf('MSIE 5') != -1
]
for (var i = 0; i < doNotAgentList.length; i++) {
if (doNotAgentList[i]) return false;
}
return true;
}
doCommentPreview('init');
function getStringCommentPreview(e)の部分などをppBlogにあわせて修正しています。ppBlogのコメント欄は,2行改行すると1行空くようになっているので,ちょっと特殊なんですよね…それから,s = s.split('&').join('&amp;');
s = s.split('<').join('&lt;');
s = s.split('>').join('&gt;');
s = s.split('\'').join('&039;');
の join('&○○;'); の & は半角の & に直してください。 また,var initString にて初期に表示される文字列("ここにコメントのプレビューが表示されます。"という文字列)を変更することができます。画像タグも使用できるようです。最後に,modules/comment.inc.phpの139行目付近,</div>の下の行に
<script type="text/javascript" src="ext/ext.js"></script>と追加すれば表示されるはずです。
例によって私のことですから,どこか抜けがあると思います。容赦なくツッコんでくださいまし。











伴天連文字がわかるだけで、尊敬しちゃいます。
ホントに!