Movable Type 備忘録
Movable Type でリンク集を作る for MT4
- Prev Page: 最近のタグ一覧を表示する
- Next Page: 共有SSL を使って Movable Type にログインする3
こんにちわ^^
先日、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(1)
- from
T+T Factory
Movable Type 備忘録さんの - Movable Type でリンク集...





はじめまして、こんばんは。
テンプレート、使わせていただいてます(Pandora)。
リンク集を作ろうと思うのですが、こちらのマークアップ?はどのテンプレートに記述すればいいのでしょうか?
モジュールかなにかを新規に作成して読み込ませるのでしょうか??
お時間のあるときで結構ですのでご教授いただけると幸いです。
>>1 *yu さん
こんばんわ^^
お返事が遅くなってすいません。
> モジュールかなにかを新規に作成して読み込ませるのでしょうか??
そうですね。
わたしのサイトではウェブページとしてリンク集を作成してますが、通常ならインデックステンプレートとして作成するかと思います
その際、index_main を index_blogroll などとしておきます。 他、サイドバー関連の MTSetVar はお好みで変更します。
そこら辺にリンク集用のコンテンツ表示のコードを追加します。具体的には以下のような感じになります。 上記の 2 行を追加することで、リンク集用のページが作成できます。
以上ですが、不明点などありましたらご連絡頂けたら思います
お返事ありがとうございます。*yuです。
教えていただいた通りにやったつもりなのですが…
http://www.caramele.net/links/index.php
↑こんな表示になってしまいます
あと、どのページもなんですが、サイドバーのカテゴリーとコメントの欄になぜかサイト名が表示されているんですが…
もう少しがんばってみますね」
>>3 Google Account さん
こんばんわ^^
わたしが気になったところを以下に記しますね
違ってたらごめんなさい・・・なのですが、データベースの文字コードとテンプレートの文字コードが不一致してるようです。
データベースを UTF-8 に変更することは・・・ムズかしいですかね
8 ~ 12 行目に各アイコンの URL を指定してるのですが、yu さんのブログ確認したところ、各アイコン含めイメージファイルがサーバ上にないようです。ご確認ください。
コメント/トラックバック一覧だけはサイト名を表示させないようにできます。
では。
こんばんは~
>まず、yu さんがお使いのデータベースはもしかして MySQL ですか !?
そうです!
なんとか変更できたと思います
アイコン、別のところにアップしてたみたいで…ご指摘ありがとうございました
サイト名の表示は仕様なんですね。
消せなくても問題ないです。画像が表示されてなかったから変な感じだったんですね。
リンク集…くじけそうです
が、今後のためにももうちょっと努力してみます。
なにからなにまでありがとうございます。
どうしても無理だったらまたお願いします。
>>5 yuruka.openid.ne.jp さん
こんばんわ^^
> なんとか変更できたと思います
ホントだ。できてますね
> 消せなくても問題ないです。画像が表示されてなかったから変な感じだったんですね。
わたしもコードを調べたりなどしたのですが、仕様のようです。残念
> どうしても無理だったらまたお願いします。
はい。Yu さんがんばって
いつでもご連絡ください
こんばんは。度々すみません
ちょっと気づいたことがあるんですが…
MTのインストール先と公開のフォルダが違うのですが、それが原因でリンク集が表示されないということはないんでしょうか?
プラグイン自体はMTの方にインストールしていて、システムメニューのプラグインの一覧では表示されるんですが、ブログの管理画面のプラグイン一覧に入ってないんです…。
再構築して自分でソースを確認してみたら、 ↑この部分が空なんですよね…。 本来ならここにページの内容が入ってますよね??(でも管理画面のメニューには「リンク」があるので、これでいいのかと思っていたんですが…)
勘違いだったらごめんなさい
>>7 yuruka.openid.ne.jp さん
こんばんわ^^
> プラグイン自体はMTの方にインストールしていて、システムメニューのプラグインの一覧では表示されるんですが、ブログの管理画面のプラグイン一覧に入ってないんです…。
表示されなくって OK ですよ
具体的には以下の手順でリンク(アイテム)を作成していきます。
以上の手順で「一覧」メニューの「アイテム」を選択すると、追加したリンク先(アイテム)が登録されるはずです。
あとは、リンク集のテンプレートを再構築することでリンク集ができあがると思うのですが・・・どうでしょ
お返事ありがとうございます。
やっぱり手順自体はあってるみたいです^^
アイテムにもリンク先は登録されているんですが…
やっぱりテンプレートですかね
ちょっとリンク集のテンプレートをチェックしてみます…
>>9 yuruka.openid.ne.jp さん
ちなみにわたしのリンク集のテンプレートは以下のようなかんじです。
上記はリンクリストを表示してる部分を抜粋したものです。
参考になればいいのですが
こんにちは~
いろいろありがとうございます
デザインはともかく、なんとか表示されるようになりました
結局、インデックステンプレートの「メインインデックス識別」のところを「index_blogroll」に変更して、リンク集モジュールをbzbellさんが書かれているリスト部分をdivで囲っただけの物にしたら表示されました…
また様子を見ながらデザインを調整していきたいと思います
あと、勝手ですが、リンクさせていただきました^^
ご迷惑でしたらおっしゃってくださいね。
これからもよろしくお願いいたします
>>11 yuruka.openid.ne.jp さん
こんにちわ^^
やりましたねっ
デザインなんて後からいくらでもできると思うので、まずは表示できてよかったです
> あと、勝手ですが、リンクさせていただきました^^
じゃぁ、わたしのとこのリンク集にも *yu さんとこをリンクしちゃいますね
ありがとうございます
至らないところがありましたらご連絡頂けたらと思います
こんにちわ、Linkページも作成しなくちゃと思いこのエントリーとコメントなどを参考に作成していますが
1)Link Roller プラグインインストールしました。
2)アイテム一覧の中にリンクしたアイテムは表示されます。
3)index_main をコピーして index_blogroll として作成し/binsans_cafe_mt/の中に保存しました。
4)「コンテナ」テンプレートモジュール内の 59 行目辺りに追加コード書き入れ保存。
質問1)説明の中にあるリンク集マークアップのコードはindex_blogroll の中身と
入れ替えると言うことでしょうか?
質問2)リンク集をページとして作成するにはこの先どうしたらいいのでしょうか?
よろしくお願いします
>>13 yutaka さん
こんにちわ^^
記事内のコードはわたしのサイトで使用してる一部でして、こんなかんじでリンク集作ってますというあくまでもサンプルです。
リンク集は人それぞれ内容が異なると思います。
コードを流用して頂いても構いませんし、yutaka さんとこでプライベートタグ(@で始まるエントリタグ)に変更してください。
たとえば、「リンク集の詳細」というテンプレートモジュールを作成します。
記事内のコードをベースに、以下のようなコードをコピペします。
何度も言いますが、上記はあくまでもサンプルです。
yutaka さんとこのサイトに合わせてフィルタリングしたいプライベートタグで変更してください。
「コンテナ」テンプレートモジュール内には、上記「リンク集の詳細」テンプレートモジュールをインクルードします。
具体的には以下のようなかんじです。
テンプレートモジュール化するにあたってはお好みでどうぞ
リンク集用のインデックスを再構築します。
以上でリンク集インデックスページが表示されると思います
※わたしのサイトのリンク集はウェブページで作成してますので、微妙に異なります
なんか、頭の中がごちゃごちゃになってしまったので、もう一度整理して書かせて貰いました。
1)インデックステンプレートの新規作成
内容はインデックステンプレートの内容をコピーしてindex.blogrollとして作成
2)モジュールテンプレートを作成で
リンク集というテンプレートを作成しました。
内容はコメントを参考にコピーして貼り付けました
3)コンテナを修正
<ul class="bute_navi">
<MTIfPageButeBefore><$MTPageButeBefore delim="Prev"$></MTIfPageButeBefore>
<$MTPageButeLists$>
<MTIfPageButeNext><$MTPageButeNext delim="Next"$></MTIfPageButeNext>
</ul>
<MTElseIf name="index_blogroll"> ←追加しました
<$MTInclude module="リンク集"$> ←追加しました
<MTElse>
<mt:ignore>月別(日別...)・アーカイブ用コンテンツ表示</mt:ignore>
<$MTInclude module="月別ページの詳細"$>
これで、ナビバーにindex.blogrollをリンスさせるように書いたのですが、これではインデックステンプレートの内容と同じなのでリンク集が出るはずはありませんよね
これから先がどうも??
>>15 yutaka さん
こんばんわ^^
さきほど登録頂いたメル宛に、わたしの方で作ったリンク集用のテンプレートをメルでお送りました。
参考にしてください
>>16 bzbell さん
bzbell さん、有り難うございます。送っていただいたのは
info@fish1091.com宛でしょうか?
届かないのですが...
>>17 yutaka さん
あれっ!?

そのメアド宛に送ったのですが…エラーしてますね
もしかして、ZIP ファイルの添付は送れないとか
TAR.GZ で圧縮し直して再送しました。
bzbellさんお手数をおかけしました
受け取りました、ありがとうございました。
や、やってみます
すみません、苦戦してます(^^;)
1)自分で作成したインデックステンプレートの内容をコピーして作ったindex.blogrollを削除。
2)添付いただいたindex_blogroll.mtmlを新規作成
3)container.mtmlはコンテナテンプレートの中身を入れ替えました。
blogroll_detail.mtmlは新規作成するblogrollというウエブページの内容でしょう?
>>20 yutaka さん
1)の index.blogrollを index_blogroll にしてみてください。
> blogroll_detail.mtmlは新規作成するblogrollというウエブページの内容でしょう?
いえ、テンプレートモジュールです。
yutaka さんの方で「リンク集」というテンプレートモジュールを作られたと思うので、そのテンプレートになります。
いや〜、まじでむずかしいっ。間違っている箇所を教えてもらえますか(カスタマイズ箇所を取りあえずデフォルトにして最初からやり直してみました)
Link Rollerプラグインはインストールしてあります。アイテムにもリンクしたサイトは出てきます。
1)
インデックステンプレート新規作成で
頂いたテンプレート内容をコピーしてindex_blogrollで保存してあります
2)
モジュールテンプレートの新規作成で「リンク集」という名前で保存
内容は
--------------------------------------------------
<div class="asset">
<dl>
<dt><h3>Links</h3></dt>
<MTLinks tags="@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>
</dl>
</div>
-----------------------------------------------------
3)
コンテナテンプレートを編集
一部抜粋
-----------------------------------------------------
<mt:ignore>月別(日別...)・アーカイブ用コンテンツ表示</mt:ignore>
<$MTInclude module="月別ページの詳細"$>
</MTIfArchiveType>
<MTElseIf name="index_blogroll"> ←追加しました
<$MTInclude module="リンク集"$> ←追加しました
<MTElse>
<mt:ignore>メイン/カテゴリ・アーカイブ用コンテンツ表示</mt:ignore>
-------------------------------------------------
4)
これでナビバーテンプレートになにを追加するとリンク集が現れるのでしょう?
>>22 yutaka さん
ん!? もしかして、yutaka さんはナビバーにリンク集のリンクを張りたいだけですか!?
リンク集のページは作成されてるという認識でよいですか
機能お送りしたものはリンク集のページを作成するためのテンプレートでして、ナビバーにリンクを張るというものではないです
ページの表示さえできちゃえば、あとはリンクを張るだけなので如何様にもできると思います。
ナビバーは「ナビバー」テンプレートモジュールというのがありますのでご確認頂けたらと思います
>>23 bzbell さん
>リンク集のページは作成されてるという認識でよいですか
#22の作業をしたのですが、それ以後が分からないのです
リンク集のウエブページを作成してナビバーからリンクさせるという手順ですよね。そうだとうすると後はリンクページを作成しないといけないんですよね。#22のあとどのような作業が必要ですか?複雑すぎて未だに良く理解できてません
>>24 yutaka さん
> これでナビバーテンプレートになにを追加するとリンク集が現れるのでしょう?
4) の内容がよく分からないのですが、ナビバーテンプレートはとりあえず置いといて、3) までのことをやるとエラーするのでしょうか
わたしの方で作成した(昨日お送りした)テンプレートを使えば、あとは「リンク集」テンプレートモジュールだけ yutaka さん仕様にすることで表示されると思ってましたけど…今どういう状況なんでしょ
エラーして先に進めないというお話ですか!?
それとも、「リンク集」テンプレートモジュールの内容がよく分からないとうことでしょうか。
>>25 bzbell さん
>3) までのことをやるとエラーするのでしょうかはて?
エラーは出ません
>テンプレートモジュールだけ yutaka さん仕様にすることで表示されると思ってましたけど
ここです、聞きたかったのは。どうしたら表示するんでしょう?というよりどうしたら表示を確認できるんでしょう?
表示さえ出来ればナビバーに追加すれば良いんですよね
bzbell さん 何度も申し訳ありませんでした。
いきなり敷居の高いことに挑戦してしまいました。頭は混乱し撃沈です(笑) 設置は諦め必殺の手動バージョンにしました。bzbell さんリンクさせていただきました。よろしくお願いします
>>26 yutaka さん
>>27 yutaka さん
そうですか、諦めますか
残念
yutaka さんが疑問に思ってるとこはこの記事に書いてるつもりなのですが、わたしの説明が悪いんでしょうね。
すいません
>>28 bzbell さん
出来そうな気がしないというか(笑)
こんにちわ〜
>わたしの説明が悪いんでしょうね
いえいえ、とんでもないです。テンプレートとかモジュールとかその辺りを理解していないので、あくまで私の理解力の問題です。いままでもカスタマイズでいろいろ教えていただきましたが、ちょっと出来たな。あと少しだな。という手応えみたいなものが感じられたのですが、このカスタマイズだけは全く手応えがないのですよぉ
bzbellさんに何度も同じようなことばかりレスしていただくのが申し訳なくて、断念した次第です
勉強しなきゃ!
どうもいつもお世話になっております。
ちょっと質問なのですが、私はMT4.2を使っていて
こちらで使われているようなリンク集を作りたいのですが、
これはまず新しいテンプレートを作るということですよね?
そのテンプレートのタグがよくわからないのですが、ご教授いただけますでしょうか?
なにとぞよろしくお願いしますー。
>>30 ajikuta さん
おはよございます^^
> これはまず新しいテンプレートを作るということですよね?
そうですね。
わたしのサイトを例にすると、テンプレートは特に改めて作ってないです。
ウェブページ・テンプレートを使ってます。
でも、ウェブ記事中に以下のようなタグを埋め込んでます。
ウェブ記事中に上記のような MT タグを使用する場合には、ウェブページ・テンプレート内の MTPageBody や MTPageMore ブロックタグに mteval というグローバルモディファイアを付加する必要があります。あとは blogroll というテンプレートモジュールを作成して、記事中にあるようなリンク集を作ってますの
!?
リンク集以外にもウェブページはすべて上記のようなかんじで作成してます。
参考になりますか
bzbellさん
お返事ありがとうございます。
四苦八苦し、なんとかできあがりました。
すごく参考になるサイトなので、また遊びに来させてもらいますね!
ありがとうございました!
>>32 ajikuta さん
こんばんわ^^
> 四苦八苦し、なんとかできあがりました。

やりましたね
わたしの説明で分かるかどうか・・・と思ってたのですが良かったです
今後ともどうぞよしなに
こんばんわ〜 ご無沙汰です
以前このエントリーに質問した際にコメント通知にチェックを入れたと思うんですが、他の方が質問されたときにも通知されます。通知を止めようとメールの一番下のコメントの「通知メールの送信を止めたい場合は、以下のアドレスをクリックしてください。」をクリックしても「404 Not Found」になり受けつけられません。通知を止めるにはどうしたらいいのでしょう?
>>34 yutaka さん
こんばんわ^^
えっ!? そうなんですか!?
う~ん・・・プラグインのバグですかね。
ちなみにメルに記載されてる URL は以下のようなものですか!?
http://bizcaz.com/plugins/CommentSubscribe/commentsubscribe.cgi?action=unsub&id=67
だとしたらプラグインを外すしかないかなぁ
お返事有り難うございます。リンクは同じです。ちなみに先ほどのコメントで通知が3通入ってきます。
>>36 yutaka さん
プラグインを使用不可にしたのでもう配信はされないと思います。
時間を見つけてプラグインの不具合かどうか確認してみます。
ご連絡ありがと & ご迷惑をおかけしました
ありがとうございました。先ほどのコメントの通知は入らなくなりました。ありがとう〜 お手数をおかけしました。
でも通知といってもそのコメントをした人にだけでいいですよね((笑)
では、では〜 おやすみなさい
こんにちは。
いつも勉強させていただいています。
プラグイン自体がダウンロード出来ない様で・・・。
若しお持ちでしたらアップロード等お願いできませんでしょうか。
>>39 たける さん
こんばんわ^^
さきほど、たける さん宅にプラグインをお送りしましたのでご確認ください