ヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノ[ xreaの規約による,xreaの,xreaのための広告スペース ]ヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノ

ppBlogでもコメントプレビューを実現したい!

それでは早速設置方法を。

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>
と追加すれば表示されるはずです。

例によって私のことですから,どこか抜けがあると思います。容赦なくツッコんでくださいまし。

2 of 212

— posted by naoK at 22:50   [ ppBlog ] Comment [13]  TrackBack [1]

思えば一年前の今日,こんなこと書いてました。
同じカテゴリからランダムピックアップ

この記事に対するコメント・トラックバック [14件]

Up1. 善麻呂 — 2005/08/15@17:53:09

homepagenaoKさんは、プログラミング(?)が出来るのですね。
伴天連文字がわかるだけで、尊敬しちゃいます。
ホントに!


Owner Comment naoK  2005/08/15@17:58:24

homepageいやいや,それほどでもあります(大嘘
ホントに大嘘です。自分では何かを作り出すことはできません。
これは,ほかの方が公開されているものをこのblog用に少し手直しさせていただいただけのもので,私も中身はよく分かっていなかったりするのが本当のところです(汗

しかし,伴天連文字て。笑。


3. りえ* — 2005/08/15@22:33:05

homepageなおくん、早速解説(人´ω`).ア☆.リ。ガ.:ト*・
 
でもー、ext.jsのコードをコピペしてupしたら
“ここにプレビューが表示されます。”の文章がウチんとこでは文字化けしてしまうょ。汗
コメントプレビュー表示は問題ないんやけども。
  
ウチのブログはEUCーJPなんやけど
ext.jsの漢字コードをEUC-JPに変換してみてもダメで・・・
コードの上部に、なんかEUC-JPて指定すればえぇんかな?
て。どうやって指定すればエェんでしょう・・・w(ΦωΦ;)
そこんとこを教えてください。○┓ペコ


Owner Comment naoK  2005/08/15@22:40:59

homepageりえ*さんとこのコメントプレビューを実際見てみました。
エンコードをShift-JISにすると,コメントプレビューの部分だけ正常に表示されているので,やっぱり先ほど指摘したところが原因ではないでしょうか。


Owner Comment naoK  2005/08/15@22:36:53

homepageもしかしたら,あとで変換したからダメなのかも。
もう一度ext.jsを最初からEUCで保存してみたらどうなりますか?


Up6. りえ* — 2005/08/15@22:52:29

homepageなおくんの言われた通り、最初からEUCで保存してupしてみますた。
でもやっぱり文字化け・・・(´Д⊂


Owner Comment naoK  2005/08/15@22:56:35

homepageええと,Shift-JISで保存されているみたいなんですが…
もしアレだったら,メールでext.jsを送りましょうか?


8. りえ* — 2005/08/15@23:01:18

homepage(;′ω`)ノ<なお君、出来ますた!w
 
原因は、テキストエディタ(TeraPad使用)のオプションで
【初期漢字コード】と【保存漢字コード】を指定するところがあるんやけど
初期漢字コードだけEUCに指定して、保存漢字コードは「自動」にしてたのが原因やったみたいでつ。(ΦДΦ;)
 
保存漢字コードもEUCに指定して、保存し直して再upしたら
文字化けしなくなりました!ヾ(Ф∀Ф)ノワーィ♪
 
ありがとですはぁと
これからTB発射用エントリ上げますねんw


Owner Comment naoK  2005/08/15@23:04:00

homepageレポートサンキューです!
早速注意書きを追加しておきます。


10. フリヲオカンブログ — 2005/08/15@23:43:38

homepage[s-132/]TB:naoKの「ホイきたー!」様:ppBlogでもコメントプレビューを実施したい!http://ppppp.s53.xrea.com/diary/1124027444.html 毎度...
続き »


Up11. りえ* Website — 2005/08/15@23:54:22

只今TB発射しますた〜ダッシュ
 
次はコメント開閉の解説をおながいsssssss( ゚ェ゚)・∵. ゴフッ

Owner Comment naoK Website  2005/08/16@00:03:46

TBサンキューです!
つ,次はコメント開閉ですね。これ,どうしようかな…まだまとまっていないので(汗
やっぱり別ファイルにしたほうがいいのかな。ちょっと考えて見ます。

13. りえ* Website — 2005/08/16@00:12:09

ウチんとこにも早速のコメントテスト&フォローとありがとうですはぁと
それと、解説お疲れ様でした。
 
コメント開閉の解説は、急かしてません!ほんまに!
時間が出来たらでエェですよ〜!ゆっくりで!ほんまに!w

Owner Comment naoK Website  2005/08/16@00:18:53

りょーかいです!りょーかいです!
ていうかあまり焦ってませんてば(笑

この記事に対する TrackBack URL:

設定によりTB元のページに、こちらの記事への言及(この記事へのリンク)がなければ、TB受付不可となりますのであらかじめご了承下さい。

コメントをどうぞ。 名前(ペンネーム)と画像認証のひらがな4文字は必須で、ウェブサイトURLはオプションです。

ウェブサイト (U):

タグは使えません。http://・・・ は自動的にリンク表示となります

ニコッ ムカッ えーん あちゃぁ ベーッ ラブリー ムンク 汗 ネムー 風邪 グスン はぁと zzz うっ いかり ダッシュ グッ ドクロ ケーキ

     

[X] [Top ↑]