Movable Type 備忘録

 

 Movable Type でリンク集を作る for MT4

こんにちわ^^

先日、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 以下にコードを記します。

リンク集マークアップ

  1. <dl>
  2. <dt><h3>Mutual Links</h3></dt>
  3. <MTLinks tags="@Mutual Link" sort_by="id" sort_order="ascend">
  4.     <MTSetVar name="no" value="$__counter__">
  5.     <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>
  6. </MTLinks>
  7.  
  8. <dt><h3>Users Blog</h3></dt>
  9. <MTLinks tags="@Users Blog" sort_by="id" sort_order="ascend">
  10.     <MTSetVar name="no" value="$__counter__">
  11.     <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>
  12. </MTLinks>
  13.  
  14. <dt><h3>Material</h3></dt>
  15. <MTLinks tags="NOT @Mutual Link AND @Material" sort_by="id" sort_order="ascend">
  16.     <MTSetVar name="no" value="$__counter__">
  17.     <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>
  18. </MTLinks>
  19.  
  20. <dt><h3>Favorite Blogs</h3></dt>
  21. <dd><dl>
  22.     <dt><h4>Personal Blogs</h4></dt>
  23.     <MTLinks tags="@Favorite Blogs AND NOT (@Programming OR @WEB Design OR @Movable Type)" sort_by="id" sort_order="ascend">
  24.         <MTSetVar name="no" value="$__counter__">
  25.         <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>
  26.     </MTLinks></dl>
  27. </dd>
  28. <dd><dl>
  29.     <dt><h4>Movable Type</h4></dt>
  30.     <MTLinks tags="@Favorite Blogs AND @Movable Type" sort_by="id" sort_order="ascend">
  31.         <MTSetVar name="no" value="$__counter__">
  32.         <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>
  33.     </MTLinks></dl>
  34. </dd>
  35. <dd><dl>
  36.     <dt><h4>WEB Design</h4></dt>
  37.     <MTLinks tags="@Favorite Blogs AND @WEB Design" sort_by="id" sort_order="ascend">
  38.         <MTSetVar name="no" value="$__counter__">
  39.         <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>
  40.     </MTLinks></dl>
  41. </dd>
  42. <dd><dl>
  43.     <dt><h4>Programming</h4></dt>
  44.     <MTLinks tags="@Favorite Blogs AND @Programming" sort_by="id" sort_order="ascend">
  45.         <MTSetVar name="no" value="$__counter__">
  46.         <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>
  47.     </MTLinks></dl>
  48. </dd>
  49. </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)

#1: Posted by *yu [RES]

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

お時間のあるときで結構ですのでご教授いただけると幸いです。

#2: Posted by bzbell Author Profile Page [RES]

>>1 *yu さん

こんばんわ^^
お返事が遅くなってすいません。

> モジュールかなにかを新規に作成して読み込ませるのでしょうか??

そうですね。
わたしのサイトではウェブページとしてリンク集を作成してますが、通常ならインデックステンプレートとして作成するかと思いますやあ!

  1. Link Roll プラグインによるリンク集の本体はテンプレートモジュール化
  2. 「インデックス(メイン)」インデックステンプレートをコピペして、リンク集用のテンプレート作成
    その際、index_main を index_blogroll などとしておきます。 他、サイドバー関連の MTSetVar はお好みで変更します。
  3. 「コンテナ」テンプレートモジュール内の 59 行目辺りにメイン/カテゴリ用のコンテンツ表示というコメントがあります。
    そこら辺にリンク集用のコンテンツ表示のコードを追加します。具体的には以下のような感じになります。
    ▼ココから追加▼
    <MTElseIf name="index_blogroll">
        <$MTInclude module="リンク集"$>
    ▲ココまで追加▲
    <MTElse>
    <mt:ignore>メイン/カテゴリ・アーカイブ用コンテンツ表示</mt:ignore>
    
    上記の 2 行を追加することで、リンク集用のページが作成できます。

以上ですが、不明点などありましたらご連絡頂けたら思いますもじもじ

#3: Posted by Google Account Author Profile Page [RES]

お返事ありがとうございます。*yuです。
教えていただいた通りにやったつもりなのですが…
http://www.caramele.net/links/index.php
↑こんな表示になってしまいますあせあせ

あと、どのページもなんですが、サイドバーのカテゴリーとコメントの欄になぜかサイト名が表示されているんですが…

もう少しがんばってみますね」あせあせ

#4: Posted by bzbell Author Profile Page [RES]

>>3 Google Account さん

こんばんわ^^

わたしが気になったところを以下に記しますねキャハハ

  1. まず、yu さんがお使いのデータベースはもしかして MySQL ですか !?
    違ってたらごめんなさい・・・なのですが、データベースの文字コードとテンプレートの文字コードが不一致してるようです。
    データベースを UTF-8 に変更することは・・・ムズかしいですかねあせあせサイドバーのツリー表示のアイコンが、ことごとくリンクエラーしてますねあせあせ
    8 ~ 12 行目に各アイコンの URL を指定してるのですが、yu さんのブログ確認したところ、各アイコン含めイメージファイルがサーバ上にないようです。ご確認ください。
  2. サイドバーのカテゴリーとコメントの欄になぜかサイト名が表示される件ですが、dtree.js の仕様上やむを得ないんですあせあせ
    コメント/トラックバック一覧だけはサイト名を表示させないようにできます。
  3. リンク集の件ですが、どうしてもダメなようでしたら、サンプルをお作りしますので、その旨ご連絡頂けたらと思いますテレテレ

では。

#5: Posted by yuruka.openid.ne.jp Author Profile Page [RES]

こんばんは~

>まず、yu さんがお使いのデータベースはもしかして MySQL ですか !?
そうです!
なんとか変更できたと思いますあせあせ
アイコン、別のところにアップしてたみたいで…ご指摘ありがとうございましたチュ!

サイト名の表示は仕様なんですね。
消せなくても問題ないです。画像が表示されてなかったから変な感じだったんですね。

リンク集…くじけそうですあせあせが、今後のためにももうちょっと努力してみます。
なにからなにまでありがとうございます。
どうしても無理だったらまたお願いします。

#6: Posted by bzbell Author Profile Page [RES]

>>5 yuruka.openid.ne.jp さん

こんばんわ^^

> なんとか変更できたと思います

ホントだ。できてますねワクワク

> 消せなくても問題ないです。画像が表示されてなかったから変な感じだったんですね。

わたしもコードを調べたりなどしたのですが、仕様のようです。残念ガーン

> どうしても無理だったらまたお願いします。

はい。Yu さんがんばってキャハハ
いつでもご連絡くださいもじもじ

#7: Posted by yuruka.openid.ne.jp Author Profile Page [RES]

こんばんは。度々すみませんあせあせ
ちょっと気づいたことがあるんですが…
MTのインストール先と公開のフォルダが違うのですが、それが原因でリンク集が表示されないということはないんでしょうか?

プラグイン自体はMTの方にインストールしていて、システムメニューのプラグインの一覧では表示されるんですが、ブログの管理画面のプラグイン一覧に入ってないんです…。
(でも管理画面のメニューには「リンク」があるので、これでいいのかと思っていたんですが…)

再構築して自分でソースを確認してみたら、 ↑この部分が空なんですよね…。 本来ならここにページの内容が入ってますよね??

勘違いだったらごめんなさいしくしく

#8: Posted by bzbell Author Profile Page [RES]

>>7 yuruka.openid.ne.jp さん

こんばんわ^^

> プラグイン自体はMTの方にインストールしていて、システムメニューのプラグインの一覧では表示されるんですが、ブログの管理画面のプラグイン一覧に入ってないんです…。

表示されなくって OK ですよやあ!
具体的には以下の手順でリンク(アイテム)を作成していきます。

  1. 「新規作成」メニューから「リンク」を選択
  2. リンク先の URL を入力して「保存」ボタンクリック
  3. お好みでリンク情報を入力

以上の手順で「一覧」メニューの「アイテム」を選択すると、追加したリンク先(アイテム)が登録されるはずです。
あとは、リンク集のテンプレートを再構築することでリンク集ができあがると思うのですが・・・どうでしょあせあせ

#9: Posted by yuruka.openid.ne.jp Author Profile Page [RES]

お返事ありがとうございます。

やっぱり手順自体はあってるみたいです^^
アイテムにもリンク先は登録されているんですが…
やっぱりテンプレートですかねのほほん

ちょっとリンク集のテンプレートをチェックしてみます…あせあせ

#10: Posted by bzbell Author Profile Page [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 Author Profile Page [RES]

こんにちは~
いろいろありがとうございますバイバイ
デザインはともかく、なんとか表示されるようになりましたワクワク

結局、インデックステンプレートの「メインインデックス識別」のところを「index_blogroll」に変更して、リンク集モジュールをbzbellさんが書かれているリスト部分をdivで囲っただけの物にしたら表示されました…あせあせ

また様子を見ながらデザインを調整していきたいと思いますキャハハ

あと、勝手ですが、リンクさせていただきました^^
ご迷惑でしたらおっしゃってくださいね。
これからもよろしくお願いいたしますうぅ~ん

#12: Posted by bzbell Author Profile Page [RES]

>>11 yuruka.openid.ne.jp さん

こんにちわ^^
やりましたねっキャハハ
デザインなんて後からいくらでもできると思うので、まずは表示できてよかったですうぅ~ん

> あと、勝手ですが、リンクさせていただきました^^
ありがとうございますテレテレじゃぁ、わたしのとこのリンク集にも *yu さんとこをリンクしちゃいますねキャハハ

至らないところがありましたらご連絡頂けたらと思いますもじもじ

 Post a Comment

コメント用フィード