2004年10月21日

トラックバック表示方法変更&テンプレート修正

October 21,2004 12:38 AM
Tag:[]
Permalink

世間は Movable Type 3.11で盛り上がってますが(私もか(笑))、自サイトのトラックバック表示をポップアップ画面から同一画面で開くように変更しました。
ブログを始めた当初はコメントやトラックバックがポップアップで開くサイトに憧れて(?)カスタマイズしたのですが、コメントはマルチカラム化との整合性の面でポップアップから同一画面表示に変更し、トラックバックも同一画面で開く方に傾いてきていたので修正しました。

修正のきっかけは当テンプレートご利用の198さんからのご質問です。私がサイトで表示を確認していたところ、トラックバック部分のデザインがきちんとできていないことに気がつき、直しました。

それに伴い公開中のテンプレートも勝手ながら一部修正致しました。修正したのはMT 3カラム テンプレート(サイズ固定)の個別アーカイブ(1カラム・3カラムとも)および、Movable Type 3.01D-ja 個別アーカイブテンプレートです(こちらは3カラム用を追加しました)。MT 3カラム テンプレートの変更は今回見送りました。
スタイルシートの変更はありません。

どのように表示されるかは、このサイトの任意のエントリーでご確認ください(横着ですいません)。オリジナルのテンプレートにある表示内容も下記のように修正しました。

  • トラックバックURLとトラックバックの表示を分割。トラックバックがないエントリーはトラックバックURLのみ表示します
  • 「このリストは?を参照しています」という文言を削除しました

テンプレートの修正内容は下記の通りです。
Individual Entry Archive の

<div class="blogbody">
        :
     (40行くらい)
        :
<MTEntryIfAllowComments>

の部分を下記のものにごっそり取り替えれば(多分)OKです(修正前のコードはエントリーによってタグの位置やコメントの文言等が異なっていたので割愛させて頂きました)。

<div class="blogbody">
<h3 class="title">●<$MTEntryTitle$></h3>
 
<$MTEntryBody$>
 
<div id="a<$MTEntryID pad="1"$>more"><div id="more">
<$MTEntryMore$>
</div></div>
 
<div class="posted">投稿者 <$MTEntryAuthor$> : <$MTEntryDate$>
<!-- トラックバックを別ウィンドウに表示する場合ここから
<MTEntryIfAllowPings>
| <a href="<$MTCGIPath$><$MTTrackbackScript$>?__mode=view&entry_id=<$MTEntryID$>" onclick="OpenTrackback(this.href); return false">トラックバック</a>
</MTEntryIfAllowPings>
     トラックバックを別ウィンドウに表示する場合ここまで -->
 
</div><!-- posted -->
</div><!-- blogbody -->
 
<!-- トラックバックを同一ウィンドウに表示する場合ここから -->
<MTEntryIfAllowPings>
<a name="trackbacks"></a>
<div class="comments-head">トラックバックURL</div>
<div  class="comments-body">
<p class="techstuff">このエントリーのトラックバックURL:<br />
<$MTEntryTrackbackLink$></p>
</div>
 
<MTIfNonZero tag="MTEntryTrackbackCount">
<div class="comments-head">トラックバック</div>
<MTPings>
<div  class="comments-body">
<p id="p<$MTPingID$>">
≫ <a href="<$MTPingURL$>"><$MTPingTitle$></a> from <$MTPingBlogName$><br />
<$MTPingExcerpt$> <a href="<$MTPingURL$>">[続きを読む]</a>
</p>
<div class="comments-post">トラックバック時刻:  <$MTPingDate$></div>
</div><!-- comments-body -->
</MTPings>
</MTIfNonZero>
</MTEntryIfAllowPings>
<!-- トラックバックを同一ウィンドウに表示する場合ここまで -->
 
<MTEntryIfAllowComments>

以上です。ご参考になれば幸いです。

Comments [6] | Trackbacks [0]
2004年10月19日

Trackbackの連続投稿を受け付けない方法

October 19,2004 12:15 AM
Tag:[]
Permalink

Movable Typeでは同一IPからの連続したコメントおよびTrackbackを受け付けない設定になっています。
#今頃気づきました…

といってもデフォルトでは「20秒間受け付けない」という設定になっているので、Trackbackについてはほぼ無条件に受け付けているようなものでしょう。
ということで任意の秒数を設定することができます。例えば10分(=600秒)間受け付けない設定にする場合は、mt.cfg の48行目

# ThrottleSeconds 20

の赤字部分とその横の半角空白を削除して

ThrottleSeconds 600

とします。

この変更に際しては注意点が2点あります。
まず、この値はコメントとTrackbackで共用しているので、秒数を長くし過ぎると異なるコメントを連続投稿する場合に影響が出てしまいます。
これを回避するための作戦として、エレガントではありませんが

lib/MT/App/Comments.pm

の136行目

my $throttle_period = $app->{cfg}->ThrottleSeconds;

my $throttle_period = $app->{cfg}->ThrottleSeconds / 10;

のように割算の式を追加すればコメントのタイミングだけ短くすることができます。ThrottleSeconds に600(秒)を指定しているのであれば、この例では10で割っているので60秒となります。

もう一点ですが、このプログラムでは送信IPアドレス(厳密にはblog_idも?)しかチェックしていないため、他の記事への異なるコメントやTrackbackも受け付けられません。

Comments [0] | Trackbacks [1]
2004年10月18日

トラックバックのタイムアウトについて

October 18,2004 12:55 PM
Tag:[]
Permalink

エントリーを投稿してトラックバックを送信した時、トラックバックの失敗を促すエラーが時々発生します。これはトラックバックping送信処理のタイムアウトが主な原因のようです。

例えばAサイトからBサイトにトラックバックを送信すると、Bサイトの mt-tb.cgi が起動されます。Bサイトではトラックバック受信処理を行い、成功すれば処理が正常に完了したことをAサイトに返送します。AサイトではBサイトからの応答を一定のタイミングで待ってまして、このBサイトからの返送が遅いとAサイトでトラックバックタイムアウトが発生します。
タイムアウトになっても相手サイトにトラックバックは正常に送信されていますので再送の必要はありません。送信サイトの表示を更新して確認されると良いでしょう。

タイムアウトにしたくない場合、タイムアウト時間を送信サイト側で変更することで多少回避することができます。変更箇所は Movable Type 3.01D-ja /3.1x の場合、mt.cfg の259行目です。3.2 では mt-config.cgi の300行目辺りです。

# PingTimeout 20

先頭の "#" と半角空白を削除して、値を

PingTimeout 30

等の任意の秒数に変更します。エントリーの登録時間に影響しますのであまり長くしないようにしましょう。デフォルトでは15秒に設定されています。

タイムアウトが発生した場合、ログを確認することでどのサイトへのpingが成功しなかったかが分かります。エントリー登録完了画面でpingタイムアウトが発生していたらログへのリンクが表示されます。それをクリックすると下記のようなログが表示されます。

2004.10.xx 15:12:23 xxx.xxx.xxx.xxx Ping 'http://rpc.weblogs.com/RPC2' failed: HTTP error: 500 read timeout
2004.10.xx 15:12:24 xxx.xxx.xxx.xxx Ping 'http://ping.blo.gs/' failed: HTTP error: 500 read timeout

上記2サイトは、「管理メニュー」→「ウェブログの設定」→「ウェブログの設定」(3.2 では「設定」→「新規投稿」)の真中辺りにある「広報 / リモートインターフェイス / トラックバック」(3.2 では「更新Ping/トラックバックの設定」)で「Movable Typeが自動的に通知するサイト」の

blo.gs
weblogs.com

にチェックボックスがつけられた場合に送信されます(3.2 では technorati.com もあります)。個人的には(多分)上記2サイトのエラーしか発生したことがありません。

エントリー登録時以外にログを参照したい場合は、メインメニュー画面右下にある「Movable Type のログの確認」というリンクをクリックすれば表示されます。3.2 ではメインメニュー画面右下にある「ログ」または、各ブログの管理メニューに「ログ」で確認できます。

参考サイトは下記です。ありがとうございました。

Modern SyntaxトラックバックPINGエラーで何度も送ってしまう罠

2006.05.23 追記
3.2 の記述を追加しました。また「Trackback」を「トラックバック」に統一しました。

Comments [6] | Trackbacks [17]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner


AMN
Categories
Monthly Archives
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3