« 朝日節健在 | メイン | ビットマップフォントを作る »

MTにトリップ機能を

J2さんとこのコメント欄でちょっと話に出てたMTへのトリップ機能の追加をさらさらっとやってみた。

テストコードはMovable Type 3.151-jaで検証。
多分他のバージョンでもいけるはず。


テスト完了。
ということでこのサイトではトリップが使えるようになりました。
投稿時、DBに格納する前にトリップを生成してますので、管理者にトリップが漏れることはありません。
とりあえずこのエントリあたりで鳥テストしてから使ってみてください。

追記:
プレビューで変換済のトリップが出る件

追記:
プレビューへの対応への注意点追記

6/3 追記:
2chのトリップと同一になるよう、trip()内でシードをShift-JISにエンコードするよう修正。
(trip()3行目と、use Jcode; の行を追加)

10/31 追記:
善さんがMT3.2での修正点をエントリにしてくれました。
MT3.2で導入する場合は先方のエントリを参照してくださいまし。
著::善ポコのタコ部屋::Movable Type 奮闘記::アップグレード 3.171→3.2(番外編::トリップ機能実装に関する備忘録)

{mt dir}/lib/MT/App/Comments.pmの400行目付近_make_comment()のmy $nick = $q->param('author');
の後の行に以下のブロックを追加


$nick =~ s/◆/◇/g;
if (index($nick,'#')!=-1){
my $i=index($nick,'#');
my $base=substr($nick,0,$i);
my $trip=trip(substr($nick,($i+1),length($nick)));
$nick = $base.' ◆'.$trip;
}


_make_comment()より前に以下の関数を追加


# make trip
sub trip($){
my $seed = shift;
$seed = jcode($seed)->sjis ;
my $salt = substr($seed, 1, 2);
$salt =~ tr/\x00-\x20\x7B-\xFF/./;
$salt =~ tr/\x3A-\x40\x5B-\x60/A-Ga-f/;
return(substr(crypt($seed, $salt), -10));
}



trip()はこちらから拝借。


Jodeを使えるよう先頭(12行目付近)に宣言追加



use Jcode;

こんだけ。

$nick = $base.' ◆'.$trip;が2ch風になってるので適当に変更するもまたヨシ。


善さん指摘のプレビュー時のトリップ化対策

※MT3.151-jaだとうまくいくのにここだとうまくいかないので何か違うのかも

{mt dir}/lib/MT/App/Comments.pmの430行目付近_make_comment()の
$comment->author(remove_html($nick));
の後の行に以下の行を追加


$comment->nick(remove_html($q->param('author')));

{mt dir}/lib/MT/Template/Context.pmの1187行目付近_hdlr_comment_fields()の
$comment_author = encode_html($ctx->_hdlr_comment_author()) || "";
を以下の行に置換

my $nickdef = $ctx->stash('comment_preview')->nick;
$comment_author = encode_html($nickdef) || "";

MT3.151-jaで動作確認済


注意

この修正でプレビュー画面に反映させるためには、MTのテンプレート「コメント・プレビューのテンプレート」の中で、入力フィールドを次のタグで表示させる必要があります。


<MTIfCommentsAllowed>
<MTCommentFields preview="1" static="1">
</MTIfCommentsAllowed>

このMTCommentFieldsタグでしか、Context.pmの修正部分を通過しないため、修正が正常に反映されません。

トラックバック

このエントリーのトラックバックURL:
http://www.qyen.info/mt/mt-tb.cgi/1319

この一覧は、次のエントリーを参照しています: MTにトリップ機能を:

» MovableTypeに2ちゃんねる風トリップ機能を追加 送信元 音極道茶室
前エントリーで言及していたトリップ機能。 ニヤリの和尚さんがやっちゃってくれまし... [詳しくはこちら]

» MT4i にもトリップ機能を 送信元 著::善ポコのタコ部屋
ニヤリ/MTにトリップ機能をに触発され、MT4i のコメント入力にもトリップ機... [詳しくはこちら]

» トリップ始めました 送信元 nomaddaemon
J2さんトコ経由で和尚さんが開発されたトリップ機能を導入してみますた。 コメント... [詳しくはこちら]

» トリップ機能を追加 送信元 PoPo.NET
ニヤリ: MTにトリップ機能をを参考にトリップ機能を付けました。 前からトリップ... [詳しくはこちら]

» Movable Type 奮闘記::アップグレード 3.171→3.2(番外編::トリップ機能実装に関する備忘録) 送信元 著::善ポコのタコ部屋
本日未明、MT のバージョンを 3.171 から 3.2 へとアップグレードさ... [詳しくはこちら]

» MTにトリップ機能を for MT.3.33 送信元 ニヤリ@qyen.info
MT2.6のころに作ったトリップ用パッチをプラグインにしてみた。 テスト完了後公... [詳しくはこちら]

コメント (34)

名前欄に◆を入れると◇に置換されます。
これでトリップ偽装も回避できるかな。

すげーーーーー(・∀・)
仕事はえーーー(・∀・)
キスさせてけろ(*´3`)

トリップ偽装テスト。
ちなみに今回のトリップは捨てでーす

和尚さん、はじめまして。

私も最近 MT を導入して、コメント欄にトリップ機能が欲しいと思っていたところでした。おおー、素晴らしい。

一応動作確認してみたのですが、「確認」ボタンをクリックして確認画面に遷移した場合、名前欄にトリップが生成された状態で初期表示されてしまいます。まずはご報告まで。

J2さん>
んー(*´(   ) いただきます

なにこのウホッな展開w

善さん>
プレビュー画面のもそれっぽく直しました〜。
ただ、このサイトだとプレビュー画面のi18Nコンバートが上手くいかないんですが。

私もテストー!
わくわく♪

OTZ ◆PoKFVc1/zg:2005年06月01日 23:20

2ちゃんのトリッパーは通用せん(´・ω・`)、って当たり前か(ワラ

BB 名前の欄 = $1 . "◇" . &trip($2) ;:2005年06月02日 01:42

すいません、テストさせていただきます_| ̄|○

BB#BABYSBREATH:2005年06月02日 01:59

あ、やっとわかりました。
お邪魔いたしました_| ̄|○

BB ◆h0GnzY2Rlw:2005年06月02日 02:16

何でですかー(T△T)

BB ◆h0GnzY2Rlw:2005年06月02日 02:16

あ、できてる…
ほんとお邪魔しました_| ̄|○

OTZ ◆orz7Hcs.IM:2005年06月02日 02:52

テスツ

おもしろいことしてるなぁw

(*´(   )   (´Д` ;) 
 ↑
おもしろいこと

OTZさん>
10桁トリッパーなら使えるはずー

教祖>

     (m) ピコーン
      |ミ|
.      `´       
(*´∀(   ゚)   Σ(´Д` ;) 
.
.
.
.
(*´∀`)   ((((   ゚)´Д` ;) うわちょっ!おまっ!
.
.
.
.
(*´∀`)     (    )゚:; ) ぐわああああwせdrf
.
.
.
.
(*´∀`)     (    )`* ) んっ

OTZ ◆orzR8.5.ak:2005年06月02日 13:15

10桁のトリッパーでやってますよ。
6月01日 23:20ので出来なかった理由は、10桁の文字列に半角カナがあるとだめぽなのかなと、推測してみるテスツ

OTZさん>
あー。半角カナはだめぽいなぁ。
cript()通す前にShift_JISに変換すれば何とか・・・
それでも全角~がまずいか。
うーむ。


 ペロペロ (*´(    )`* ) ムチュチュパ


 いかん_| ̄|○ 自分にまでダメージが 

_| ̄|○ 俺も地味にダメージうけてるのは内緒だ

初めましてPoPoといいます。
このBLOGを参考にトリップ機能を付けてみたんですが◆が??になってしまいます。
なぜでしょうか??

はじめまして。

恐らく、Comments.pmをUTF-8で保存するといけるんじゃないかと思います。

utf-8で保存しFTPでアップロードした結果成功しました。
本当にありがとうございます。
ちょこちょこニヤリに出現します(´∀`)ニヤリ

A ◆.CzKQna1OU:2005年08月23日 01:36

テスト

A ◇.CzKQna1OU:2005年08月23日 01:37

テスト

A ◆vrHzFYVWg6:2005年08月23日 01:51

テスト

A ◆7e4gMz7QcI:2005年08月23日 01:53

テスト

  ◆OiPxwjtqjY:2005年08月23日 01:59

テスト

テスト ◆Q3F88HDBmA:2005年10月28日 23:31

こんにちは。
このトリップ機能、mt-comments.cgi上で出来る方法ありませんか?
試しにmt-comments.cgiを自分で書き換えたのですが、エラーが出て上手くいかず・・・orz

aki ◆.CzKQna1OU:2005年11月17日 15:53

ためさせてもらいます

OTZ◇、;lぽいぬ:2005年12月03日 00:18

テスト

◆BAKASU9Oxg:2006年03月01日 22:38

てst

書いてある通りにやったらうまく出来たんで、感謝のTB送ろうと思ったんですが何故かエラーが出てTB送れなかったっす、、、(´・ω・`)

岸 ◆KiSHIDAN5Q:2006年04月12日 02:00

トリップテストさせてください

てすと ◆.CzKQna1OU:2008年04月06日 21:02

テストさせてください

てす ◆HLm7b3cG0c:2008年04月06日 21:03

度々ごめんなさい

コメントを投稿

コメント欄でトリップが使えます。名前の後ろに半角#と好きな文字列を入力してください。
例: 通りすがりの名無しさん#ほげざむらい

About

2005年06月01日 10:09に投稿されたエントリーのページです。

ひとつ前の投稿は「朝日節健在」です。

次の投稿は「ビットマップフォントを作る」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。