Movable Type 備忘録
Movable Type でリンク集を作る for MT4
- Next Page: 共有SSL を使って Movable Type にログインする3
- Prev Page: 最近のタグ一覧を表示する
こんにちわ^^
先日、oscar さんとこで、MT-Blogroll プラグインの後継にあたる Link Roller プラグインが紹介されてました。
配布元である
movalog
さんは
Movable Type 4.1
で追加される CustomFields プラグインの配布元さんでもあります。
MT-Blogroll プラグインが
Movable Type 4
に対応されるのをずっと待ってたんですけど、すっかり忘れれてましたよ (; ̄∇ ̄A
で、さっそくインストールして新しくリンク集作り直してみました。
インストール
インストールはいつものように mt/plugins/ と mt/mt-static/ ディレクトリにアップロードするだけです。
アップロード後、MT の管理画面にアクセスするとデータベースのアップグレードを促されれます。そこはそのままアップグレードを済ませてください。
リンクの追加はカンタンで、イメージファイルなどのアイテム追加と同様に扱われるようです。oscar さんとこで詳しく説明されてるので参考にしてください ( ̄∇ ̄)/
使い方
とりあえず、ここでは使い方について軽ぅ~く説明してみようと思います。
わたしんとこのリンク集では、右図のような階層構造で表示させています。
でも実際には Link Roller プラグインはカテゴリのような階層構造による管理でなくって、タグによるジャンル分けされるだけです。
じゃぁ、どぅやって階層構造にするかというとタグの組み合わせとマークアップで階層構造を実現するわけです ( ̄∇ ̄)b
具体的には右図に示すように、各リンクにはジャンル分けしたいタグ付けて、それらのタグをフィルタリングすることで実現します。
てか、そんな大したことやってるわけじゃないのですが (; ̄∇ ̄A 以下にコードを記します。
リンク集マークアップ
<dl><dt><h3>Mutual Links</h3></dt><MTLinks tags="@Mutual Link" sort_by="id" sort_order="ascend"><MTSetVar name="no" value="$__counter__"><dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd></MTLinks><dt><h3>Users Blog</h3></dt><MTLinks tags="@Users Blog" sort_by="id" sort_order="ascend"><MTSetVar name="no" value="$__counter__"><dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd></MTLinks><dt><h3>Material</h3></dt><MTLinks tags="NOT @Mutual Link AND @Material" sort_by="id" sort_order="ascend"><MTSetVar name="no" value="$__counter__"><dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd></MTLinks><dt><h3>Favorite Blogs</h3></dt><dd><dl><dt><h4>Personal Blogs</h4></dt><MTLinks tags="@Favorite Blogs AND NOT (@Programming OR @WEB Design OR @Movable Type)" sort_by="id" sort_order="ascend"><MTSetVar name="no" value="$__counter__"><dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd></MTLinks></dl></dd><dd><dl><dt><h4>Movable Type</h4></dt><MTLinks tags="@Favorite Blogs AND @Movable Type" sort_by="id" sort_order="ascend"><MTSetVar name="no" value="$__counter__"><dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd></MTLinks></dl></dd><dd><dl><dt><h4>WEB Design</h4></dt><MTLinks tags="@Favorite Blogs AND @WEB Design" sort_by="id" sort_order="ascend"><MTSetVar name="no" value="$__counter__"><dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd></MTLinks></dl></dd><dd><dl><dt><h4>Programming</h4></dt><MTLinks tags="@Favorite Blogs AND @Programming" sort_by="id" sort_order="ascend"><MTSetVar name="no" value="$__counter__"><dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd></MTLinks></dl></dd></dl>
青い字の部分でフィルタリングしたいタグ名称と、ソートを行ってます。
赤い字の部分は単なるナンバリング用のカウンタです。
緑とピンクの字の部分はそれぞれ XFN の指定があれば rel 属性を付加し、ターゲット属性の指定があれば target 属性を付加しています。
たとえば、15 行目のフィルター条件は、
'@Mutual Link' タグが付いてなくって、且つ '@Material' タグが付いてるものすべて
というフィルタ条件を設定してます。
23 行目のフィルタ条件は、
'@Favorite Blogs' タグが付いてて、且つ '@Programming' か '@WEB Design' か '@Movable Type' タグが付いてないものすべて
というフィルタリングを行ってます。
また、30 行目のフィルタ条件は、
'@Favorite Blogs' タグが付いてて、且つ '@Movable Type' タグが付いてるものすべて
というフィルタリングを行ってます。
こんなかんじでフィルタリングしてマークアップしてあげれば完成です ( ̄∇ ̄)/
そそ、すべてを確認したわけじゃないけど、MTLink ブロックタグには MTAssets ブロックタグと同様のモディファイアが使用できそうです。
Trackback Pings(0)
No trackbacks found.
Comments(12)
-
#2: Posted by bzbell
[RES]
>>1 *yu さん
こんばんわ^^
お返事が遅くなってすいません。> モジュールかなにかを新規に作成して読み込ませるのでしょうか??
そうですね。
わたしのサイトではウェブページとしてリンク集を作成してますが、通常ならインデックステンプレートとして作成するかと思います
- Link Roll プラグインによるリンク集の本体はテンプレートモジュール化
- 「インデックス(メイン)」インデックステンプレートをコピペして、リンク集用のテンプレート作成
その際、index_main を index_blogroll などとしておきます。 他、サイドバー関連の MTSetVar はお好みで変更します。 - 「コンテナ」テンプレートモジュール内の 59 行目辺りにメイン/カテゴリ用のコンテンツ表示というコメントがあります。
そこら辺にリンク集用のコンテンツ表示のコードを追加します。具体的には以下のような感じになります。▼ココから追加▼ <MTElseIf name="index_blogroll"> <$MTInclude module="リンク集"$> ▲ココまで追加▲ <MTElse> <mt:ignore>メイン/カテゴリ・アーカイブ用コンテンツ表示</mt:ignore>上記の 2 行を追加することで、リンク集用のページが作成できます。
以上ですが、不明点などありましたらご連絡頂けたら思います
-
#3: Posted by
Google Account
[RES]
お返事ありがとうございます。*yuです。
教えていただいた通りにやったつもりなのですが…
http://www.caramele.net/links/index.php
↑こんな表示になってしまいます
あと、どのページもなんですが、サイドバーのカテゴリーとコメントの欄になぜかサイト名が表示されているんですが…
もう少しがんばってみますね」
-
#4: Posted by bzbell
[RES]
>>3 Google Account さん
こんばんわ^^
わたしが気になったところを以下に記しますね
- まず、yu さんがお使いのデータベースはもしかして MySQL ですか !?
違ってたらごめんなさい・・・なのですが、データベースの文字コードとテンプレートの文字コードが不一致してるようです。
データベースを UTF-8 に変更することは・・・ムズかしいですかね
サイドバーのツリー表示のアイコンが、ことごとくリンクエラーしてますね
8 ~ 12 行目に各アイコンの URL を指定してるのですが、yu さんのブログ確認したところ、各アイコン含めイメージファイルがサーバ上にないようです。ご確認ください。 - サイドバーのカテゴリーとコメントの欄になぜかサイト名が表示される件ですが、dtree.js の仕様上やむを得ないんです

コメント/トラックバック一覧だけはサイト名を表示させないようにできます。 - リンク集の件ですが、どうしてもダメなようでしたら、サンプルをお作りしますので、その旨ご連絡頂けたらと思います

では。
- まず、yu さんがお使いのデータベースはもしかして MySQL ですか !?
-
#5: Posted by
yuruka.openid.ne.jp
[RES]
こんばんは~
>まず、yu さんがお使いのデータベースはもしかして MySQL ですか !?
そうです!
なんとか変更できたと思います
アイコン、別のところにアップしてたみたいで…ご指摘ありがとうございました
サイト名の表示は仕様なんですね。
消せなくても問題ないです。画像が表示されてなかったから変な感じだったんですね。リンク集…くじけそうです
が、今後のためにももうちょっと努力してみます。
なにからなにまでありがとうございます。
どうしても無理だったらまたお願いします。
-
#6: Posted by bzbell
[RES]
>>5 yuruka.openid.ne.jp さん
こんばんわ^^
> なんとか変更できたと思います
ホントだ。できてますね
> 消せなくても問題ないです。画像が表示されてなかったから変な感じだったんですね。
わたしもコードを調べたりなどしたのですが、仕様のようです。残念
> どうしても無理だったらまたお願いします。
はい。Yu さんがんばって

いつでもご連絡ください
-
#7: Posted by yuruka.openid.ne.jp
[RES]
こんばんは。度々すみません

ちょっと気づいたことがあるんですが…
MTのインストール先と公開のフォルダが違うのですが、それが原因でリンク集が表示されないということはないんでしょうか?プラグイン自体はMTの方にインストールしていて、システムメニューのプラグインの一覧では表示されるんですが、ブログの管理画面のプラグイン一覧に入ってないんです…。
再構築して自分でソースを確認してみたら、 ↑この部分が空なんですよね…。 本来ならここにページの内容が入ってますよね??
(でも管理画面のメニューには「リンク」があるので、これでいいのかと思っていたんですが…)勘違いだったらごめんなさい
-
#8: Posted by bzbell
[RES]
>>7 yuruka.openid.ne.jp さん
こんばんわ^^
> プラグイン自体はMTの方にインストールしていて、システムメニューのプラグインの一覧では表示されるんですが、ブログの管理画面のプラグイン一覧に入ってないんです…。
表示されなくって OK ですよ

具体的には以下の手順でリンク(アイテム)を作成していきます。- 「新規作成」メニューから「リンク」を選択
- リンク先の URL を入力して「保存」ボタンクリック
- お好みでリンク情報を入力
以上の手順で「一覧」メニューの「アイテム」を選択すると、追加したリンク先(アイテム)が登録されるはずです。
あとは、リンク集のテンプレートを再構築することでリンク集ができあがると思うのですが・・・どうでしょ
-
#9: Posted by yuruka.openid.ne.jp
[RES]
お返事ありがとうございます。
やっぱり手順自体はあってるみたいです^^
アイテムにもリンク先は登録されているんですが…
やっぱりテンプレートですかね
ちょっとリンク集のテンプレートをチェックしてみます…
-
#10: Posted by bzbell
[RES]
>>9 yuruka.openid.ne.jp さん
ちなみにわたしのリンク集のテンプレートは以下のようなかんじです。
<dl> <dt><h2>Mutual Links</h2></dt> <MTLinks tags="@Mutual Link" sort_by="id" sort_order="ascend"> <MTSetVar name="no" value="$__counter__"> <dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd> </MTLinks> <dt><h2>Users Blog</h2></dt> <MTLinks tags="@Users Blog" sort_by="id" sort_order="ascend"> <MTSetVar name="no" value="$__counter__"> <dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd> </MTLinks> <dt><h2>Material</h2></dt> <MTLinks tags="NOT @Mutual Link AND @Material" sort_by="id" sort_order="ascend"> <MTSetVar name="no" value="$__counter__"> <dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd> </MTLinks> <dt><h2>Favorite Blogs</h2></dt> <dd><dl> <dt><h3>Personal Blogs</h3></dt> <MTLinks tags="@Favorite Blogs AND NOT (@Programming OR @WEB Design OR @Movable Type)" sort_by="id" sort_order="ascend"> <MTSetVar name="no" value="$__counter__"> <dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd> </MTLinks></dl> </dd> <dd><dl> <dt><h3>Movable Type</h3></dt> <MTLinks tags="@Favorite Blogs AND @Movable Type" sort_by="id" sort_order="ascend"> <MTSetVar name="no" value="$__counter__"> <dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd> </MTLinks></dl> </dd> <dd><dl> <dt><h3>WEB Design</h3></dt> <MTLinks tags="@Favorite Blogs AND @WEB Design" sort_by="id" sort_order="ascend"> <MTSetVar name="no" value="$__counter__"> <dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd> </MTLinks></dl> </dd> <dd><dl> <dt><h3>Programming</h3></dt> <MTLinks tags="@Favorite Blogs AND @Programming" sort_by="id" sort_order="ascend"> <MTSetVar name="no" value="$__counter__"> <dd><$MTGetVar name="no" zero_pad="2"$>. <a href="<$MTLinkURL$>"<MTIfNonEmpty tag="MTLinkRel"> rel="<$MTLinkRel$>"</MTIfNonEmpty><MTIfNonEmpty tag="MTLinkTarget"> target="<$MTLinkTarget$>"</MTIfNonEmpty> title="<$MTLinkDescription encode_html="1"$>"><$MTLinkName encode_html="1"$></a></dd> </MTLinks></dl> </dd> </dl>
上記はリンクリストを表示してる部分を抜粋したものです。
参考になればいいのですが
-
#11: Posted by
yuruka.openid.ne.jp
[RES]
こんにちは~
いろいろありがとうございます
デザインはともかく、なんとか表示されるようになりました
結局、インデックステンプレートの「メインインデックス識別」のところを「index_blogroll」に変更して、リンク集モジュールをbzbellさんが書かれているリスト部分をdivで囲っただけの物にしたら表示されました…
また様子を見ながらデザインを調整していきたいと思います
あと、勝手ですが、リンクさせていただきました^^
ご迷惑でしたらおっしゃってくださいね。
これからもよろしくお願いいたします
-
#12: Posted by bzbell
[RES]
>>11 yuruka.openid.ne.jp さん
こんにちわ^^
やりましたねっ
デザインなんて後からいくらでもできると思うので、まずは表示できてよかったです
> あと、勝手ですが、リンクさせていただきました^^
ありがとうございます
じゃぁ、わたしのとこのリンク集にも *yu さんとこをリンクしちゃいますね
至らないところがありましたらご連絡頂けたらと思います


はじめまして、こんばんは。
テンプレート、使わせていただいてます(Pandora)。
リンク集を作ろうと思うのですが、こちらのマークアップ?はどのテンプレートに記述すればいいのでしょうか?
モジュールかなにかを新規に作成して読み込ませるのでしょうか??
お時間のあるときで結構ですのでご教授いただけると幸いです。