エントリーの画像をサイドメニューに表示

エントリーの画像をサイドメニューに表示

Posted at July 16,2004 1:30 AM
Tag:[]

エントリーに携帯等で撮った画像を表示しているブログをよく見かけますが、エントリーの画像を検索してサイドバーに自動的に表示するカスタマイズをご紹介致します。具体的な動作は、エントリーの中に書かれている img 要素の src 属性を検索し、そこで指定された画像をサイドバーに表示します。Collect プラグインというものを利用しています。
以下、手順メモです。

1.プラグインのダウンロード

Collect Plugin for Movable TypeCollect より Plugin をクリックします(ソースが表示される場合は右クリックして「対象をファイルに保存」を選択)。

2.プラグインのアップロード

ダウンロードした Collect.pl を plugins ディレクトリ直下にアップロードします。

3.テンプレート修正

リスト1のタグを、画像を表示したいテンプレート(メインページ/カテゴリーアーカイブ/日付アーカイブ/個別エントリーアーカイブ等)のサイドバー部分に追加します。次のタグは最近の8エントリーより、各エントリー内にある一番最初のイメージを表示します。

<MTEntries lastn="8">
<MTCollect tags="img">
<MTCollectThis show="0">
<$MTEntryBody$>
</MTCollectThis>
<MTIfCollected tags="img">
<MTCollected tags="img" lastn="1">
<a href="<$MTEntryLink$>">
<img src="<$MTCollectedAttr attr="src"$>" style="margin:10px" />
</a><br />
</MTCollected>
</MTIfCollected>
</MTCollect>
</MTEntries>

リスト1:最近の8エントリーより各エントリー内にある一番最初のイメージを表示

リスト2のタグは、全エントリーから最新の5個のイメージを表示します。

<MTCollect tags="img">
<MTEntries lastn="5">
<MTCollectThis>
<$MTEntryBody$>
<$MTEntryMore$>
</MTCollectThis>
</MTEntries>
<MTIfCollected>
Recent Photos of all <$MTCollectedTotalCount$> photos<br />
<MTCollected tags="img" lastn="5">
<img width="100" src="<$MTCollectedAttr attr="src"$>" alt="<$MTCollectedAttr attr="alt"$>"<$MTCollectedContent$><br />
</MTCollected>
<MTElse>
No Photos
</MTElse>
</MTIfCollected>
</MTCollect>

リスト2:全エントリーから最新の5個のイメージを表示

以上です。なおこの機能については以下のサイトを参考にさせて頂きました(テンプレートもそこからの抜粋です)。

あとはカメラ付き携帯を買うだけ(爆)。

2005.08.08 追記
本文を全面修正しました。

2006.09.10 追記
マークアップ修正。

関連記事
zenback
人気エントリー
トラックバックURL


コメント

こんばんわ
いつもお世話になっています。

ちょっと小粋空間様のテンプレをいじりすぎて重くなったのでテンプレ毎別のテンプレに差し替えました。

画像をサイドメニューに表示したく、こちらのエントリーを参考に行ってみたんですが、「No Photos 」と表示され何も画像が出ません。

「リスト2:全エントリーから最新の5個のイメージを表示」を実施したんですが、、、なにか問題があるんでしょうか?
何か注意しなければならない事等ありましたらご助言お願いします。

[1] Posted by うに : November 13, 2006 11:50 PM

すいませんblogURL間違えました。
http://w5.abcoroti.com/~uniq/blog/
です。

[2] Posted by うに : November 13, 2006 11:51 PM

>うにさん
こんばんは。
ご質問の件ですが、管理画面より

メイン・メニュー > システム・メニュー > プラグイン

と辿ったところに利用中のプラグイン一覧が表示されますが、その中に

Collect 1.2

の表示はありますでしょうか。また Collect のすぐ上にある Download のリンクからも同じプラグインを入手できますので、そちらでもお試しください。

なお、念のためこのエントリーのタグをそのまま利用してみましたが、画像は表示されています。
それではよろしくお願い致します。

[3] Posted by yujiro : November 14, 2006 11:00 PM

yujiro様
返信ありがとうございます。

メイン・メニュー > システム・メニュー > プラグインに「Collect 1.2」は表示されています。

メイン・メニュー > Blog名 > プラグイン
には「Collect 1.2」の表示がないんですがこちらは関係ないんでしょうか?

Collect.pl を plugins ディレクトリ直下にアップロードしなおし、再構築を行いましたが変わりはないです。
サイドバーの各パーツをモジュール化してるんですがそれは特に関係ないんですね(index.phpに直接書いてみましたが状況は変わりませんでした。)

アップロードですが、今職場でFTPソフトを使えない為、テスト運用に設置しているMTのサイトパスを/public_htmlに変更してアップロードしました。
「上書きしますか」アナウンスが出たので間違いはないと思うんですが・・・

小粋空間様のこちらのエントリーを参考にする前にhttp://win.kororo.jp/weblog/2006/08/21/post_1325.phpに書いてある「Collect」ディレクトリごと、plugins フォルダにアップロード」を行い、collectディレクトリはそのままの状態なんですが、重複している為に競合?しているということは考えられるんでしょうか?

本日帰宅後、Collectディレクトリを削除して再更新してみます。

[4] Posted by うに : November 15, 2006 10:19 AM

こんばんわ。
不要なディレクトリを削除し、再構築を試みましたが状況変わらず・・・

なんなんでしょうか・・・

[5] Posted by うに : November 16, 2006 12:14 AM

>うにさん
こんにちは。
プラグインのアップロード作業は問題ないようですね。
あと、思いつくのは他に利用しているプラグインを無効にしてみる位でしょうか。
何か分かりましたら改めてご連絡したいと思いますが今のところ原因は不明です。
それではよろしくお願い致します。

[6] Posted by yujiro : November 17, 2006 4:46 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)