MTRandomEntries を使ってみる。

| コメント(2) | トラックバック(0)

image357

なんか、夏休み開けてから AC とか入試関係と、その他もろもろでなかなか大変な毎日です。

おかげで、ブログもさぼりっぱなしだったりしますね。

そんな中、たまたま、MT のプラグインディレクトリなんか見てたのですが。

こんなものを見つけました。

ランダムなエントリー (記事) を抽出して表示してくれるらしい。面白い。

というわけで、さっそく使ってみた。

サイドバーに表示するように設定してみました。

お~、これは過去の黒歴史を読んでくれる人が多くなりそうで、いいのだか悪いのだか...

(実際に使ってみたい人は続きを読むべし。)

 

と、こんな感じに便利なプラグインを発見したのだが。

たぶん、これだけだったらブログ記事にしなかったと思う。

こんな素直な記事じゃ終わらないのが、最近のこのブログwww

なわけで、本題開始。

 

1.トラブル発生

サイドバーにランダムエントリーを表示しようと、ウィジェット追加に取り掛かった。

こんな感じで、Random Entries というウィジェットを追加した。

<div>
  <h3 class="widget-header">Random Entries</h3>
  <div class="widget-content">
    <ul class="entry-meta">
      <MTRandomEntries lastn="3">
      <li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a><br />
      <span><$MTEntryDate format="%y/%m/%d"$> | コメント(<mt:EntryCommentCount />)</span></li>    
      </MTRandomEntries>
    </ul>
    <p>日替わりらしい。<br />
    仕様上ページ別に変わるらしい。<br />
    Random な感じらしい。</p>
  </div>
</div>

レファレンスには、"category" と "lastn" の値を与えてくれよ!って書いてある。

けど、カテゴリー指定なんていらない。

ということで、category 抜きでインデックステンプレートを再構築。

お~いいじゃん。じゃあ、すべて再構築というわけだが...

エラーが発生しました。

close ブログ記事「Firefox の検索バーをカスタマイズしてみる。」の再構築中にエラーが発生しました: テンプレート「ブログ記事」の再構築中にエラーが発生しました: <mtInclude>タグでエラーがありました: error in module フッター: テンプレート「フッター」の再構築中にエラーが発生しました: <mtIf>タグでエラーがありました: <mtInclude>タグでエラーがありました: error in module サイドバー: テンプレート「サイドバー」の再構築中にエラーが発生しました: <mtIf>タグでエラーがありました: <mtElse>タグでエラーがありました: <mtIf>タグでエラーがありました: <mtElse>タグでエラーがありました: <mtWidgetSet>タグでエラーがありました: <mtinclude>タグでエラーがありました: error in widget Random Entries: テンプレート「Random Entries」の再構築中にエラーが発生しました: <mtRandomEntries>タグでエラーがありました: MT::Category=HASH(0xa1547d0)というカテゴリはありません。

なに!また僕を困らせたいのですか。

そうですか、そうですか。

せっかくなので、お付き合いしてあげましょう。

 

2. 原因究明する

まあ、いつものようにエラーメッセージを元に原因究明するわけですが。

MT::Category=HASH(0xa1547d0)というカテゴリはありません。とか言われても困る。

どうも、ブログ記事の再構築をするとだめらしい。

日別とか、インデックスは問題なさそう。

わからねぇ。ということで、プラグイン本体と戯れることにする。

 

どうも、プラグイン本体 (randomentries.pl) は 100 行そこそこの大したことないものみたいだ。

読むのも楽だ。だけど、MT のプラグインなんて組んだことないし、面倒だ。

今回の目的、早い話がカテゴリー指定なんていらないから、その部分を取り払えばいい。

このプラグインの中身はカテゴリー指定があった場合、カテゴリーの記事IDをリストアップしてそこからランダムにみたいなことをやってるのかね?

ということは前半部分の catLabel とか使ってる部分いらなくて、

else {
    @entries = MT::Entry->load ({ blog_id => $blog_id,
    status => MT::Entry::RELEASE() });
  }

ここだけ実行すればいい。

23 ~ 70 行目は、コメントアウトとかして取り払おう。

で、上記の else の中身だけを残せばいい。

 

3. 適当がちょうどいい。

さあ、ひと仕事終了。

一応、修正版?なのか?を、上げておきます。

再構築しても、何もエラー出ないしちゃんと動いてるみたいだし、問題ないね。

こういうエラーは、適当に推し進めていくと以外とうまくいくものだ。

いや、僕は常に "適当" で生きている人間ですからw

 

余談:

ん?修正版?なのか?の if(0) は何だって?

いや、これ結構使わない?

いらない部分をコメントアウトしたのと同じ効果を得ている、はず。

消去するのは、作成者の気持ちを考えると... (何

コメントアウトするのが一番いいのだけど、正直この行数を全部コメントアウトしていくのは面倒。

なんて時に if(0) の出番です。結構使います。

トラックバック(0)

トラックバックURL: http://techno-st.net/mt/mt-tb.cgi/662

コメント(2)

初めまして

私も同じエラーが出てしまって困っていました

貴BLOGを参考にさせて頂き解決することができました。

有難うございました。

はじめまして。
カスタマイズ版を使用させていただき、さらに“同じタグがついている記事”を表示させたいと思っています。
でタグの絞り込みをするため下記のように記述しました。が、記事は何も表示されません。
上記の表示を実現する記述方法をご存知でしょうか?
----------------------------------------------------
<MTEntryIfTagged>
<MTSetVarBlock name="entrytags"><MTEntryTags glue=" OR "><$MTTagName$></MTEntryTags></MTSetVarBlock>
<MTSetVarBlock name="thisid"><$MTEntryID$></MTSetVarBlock>
<MTRandomEntries lastn="5">
<MTSetVarBlock name="eid"><$MTEntryID$></MTSetVarBlock>
<MTSetVarBlock name="etags"><MTEntryTags glue=" OR "><$MTTagName$></MTEntryTags></MTSetVarBlock>
<MTEntriesHeader>
<ul>
</MTEntriesHeader>
<MTIf name="etags" eq="$entrytags">
<MTUnless name="eid" eq="$thisid">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTUnless>
</MTIf>
<MTEntriesFooter>
</ul>
</MTEntriesFooter>
</MTRandomEntries>
</MTEntryIfTagged>

コメントする

2010年8月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

最近のブログ記事

Linux で Japanino を使ってみる。
大人の科学マガジン vol.27 …
Linux に Android SDK 入れてみる
せっかく Android 端末 (…
Mac OS X で cadaver を使う
最近ですね、うちの学類の計算機室のマシン…

最近のコメント

for mobile

Ads

 - trial and error



track feed trial and error