アファメーションで独立・起業・夢実現。「いきなり!社長宣言!!」-“夢は口に出すことで実現する!”というアファメーション:ライブラリー

2006年3月10日

MT(ムーバブルタイプ)は奥が深い。

夢実現のアファメーションを実践する起業家にもっとも読まれているブログは?

コンテンツ管理システムとしてのMT(ムーバブルタイプ)。

今、また仕事でMT(ムーバブルタイプ)と格闘しています。Ver.3.2になってからの初仕事。(Ver.3.2についてはこちら。

もちろん仕事なので、個人の日記システムとしてではなく、CMS(コンテンツ・マネージメント・システム)として、会社のウェブサイトを構築しています。

MTタグでぐりぐり。

Ver.3.1から管理画面がガラリと変わり、また、CSSのクラスやIDが変わっているので慣れるのにちょっと手間がかかりましたが、触れば触るほど奥が深いシステムです。

僕はプログラマーではないので、プログラムをゴリゴリ書いてプラグインとして機能を追加!というわけにはいきませんが、それでもオンラインマニュアルやTips本、ネットなどで検索して、MTタグを“切り貼り”するだけでもいろいろなことができます。

もともと便利にできてますが、ちょっとした工夫で使い勝手が向上したり、SEO対策(サーチエンジン対策)的にもメリットがとても高いシステムです。

MT(ムーバブルタイプ)でパンくずナビゲーション。

さて、こっからは僕個人の備忘録。…ちょっと長いよ。
(さらに、MT触らない人にはまったく関係ありません。あしからず。)

サイトを作っていると、最近では「ユーザビリティ」なんてことも意識しなければなりません。
そのサイトを使っているのが自分だけだったり、ごく一部のユーザーであればいい(?)のですが、やっぱり企業のサイトとなると、広く一般的に使って欲しいので「ユーザビリティ」はとても重要な要素です。

ユーザビリティを向上させるにはいろいろと方法がありますが、その代表的なのが「パンくずリスト」。よくウェブサイト(ホームページ)の上部にある、

「ホーム > 第1階層 > 第2階層 > 現在のコンテンツ」

というやつで、各階層(またはコンテンツ)から上位階層に戻るためのリンクが張ってあるものです。

※ちなみに、「パンくずリスト」という名前の由来は、童話「ヘンゼルとグレーテル」で、森の中で迷わないようにパンくずを少しずつ落としながら歩いたというところからきているらしい。

1階層だけであれば、テンプレートにソースを直書きでもいいんですけど、MT(ムーバブルタイプ)の場合サブカテゴリをいくつも持つことができるので、そうなると対応しきれません。(っつかめんどくさい。)

ということで、MTタグをうまく使って自動的にできないものかと…と、いろいろ調べてみると「<MTParentCategories>」というMTタグを使うとうまくできそうです。

参考サイト

上記二つのサイトを参考に、パンくずリストは構造的にはやっぱ「リスト」でしょ~&自分が今いるカテゴリーも(カレントカテゴリー)にもリンクが張られてしまうのを調整したかったので、ちょこっとカスタマイズ。

で、こんな感じに。

個別エントリーテンプレート用

<ul>
<li><a href="<$MTBlogURL$>" title="<$MTBlogName$>">ホーム</a></li>
<MTParentCategory >
<li><a href="<$MTCategoryArchiveLink$>">
<$MTCategoryDescription$></a></li>
</MTParentCategory>
<li><a href="<$MTEntryLink archive_type="Category"$>"><MTEntryCategories>
<MTCategoryDescription>
</MTEntryCategories></a></li>
<li><$MTEntryTitle$></li>
</ul>

カテゴリーテンプレート用

<ul>
<li><a href="<$MTBlogURL$>" accesskey="1">ホーム</a></li>
<MTParentCategories exclude_current="1">
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>"><$MTCategoryDescription$></a></li>
<MTElse><li><$MTCategoryDescription$></li>
</MTElse>
</MTIfNonZero>
</MTParentCategories>
<li><$MTCategoryDescription$></li>
</ul>

※通常MT(ムーバブルタイプ)のデフォルトだと、カテゴリーは<$MTCategoryLabel$>ですが、カテゴリーの順番を制御するために<$MTCategoryDescription$>と置き換えています。

<MTIfNonZero>」と「<MTElse>」ってのが使い勝手が良くて、それぞれ「中身がゼロじゃなかったら」と、「そうじゃなかったら」という意味らしいです。
(JavaScriptとかのif文分岐みたいな感じ?)

ついでにMTのカテゴリー部分(メインメニュー)もカスタマイズ。

<MTIfArchiveTypeEnabled archive_type="Category">
<MTTopLevelCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>">
<$MTCategoryDescription$></a></MTIfNonZero>
<MTElse><li><$MTCategoryDescription$></MTElse><MTSubCatsRecurse></li>
<MTSubCatIsLast></ul></MTSubCatIsLast></MTTopLevelCategories>
</MTIfArchiveTypeEnabled>

例えば、カテゴリーだけ作ってエントリー(記事)はまだ…みたいな状態だと、通常だと空のメニュー(カテゴリー)も表示されてしまいます。

なので、先ほどの「<MTIfNonZero>」と「<MTElse>」を使って、エントリーがあれば表示、そうでなければ非表示!みたいな感じにしました。

やっぱMT(ムーバブルタイプ)っておもしろい!

まぁジェダイの騎士並みの、まさにマスタークラスの“MT使い”にとっては普通のことなのかもしれませんが、僕みたいに“ノンプロブラマー”な人間でも、ちょっと調べるだけでぐりぐりカスタマイズが可能です。

いやぁ、やっぱりMTってホントに奥が深いですね。(水野晴郎風に。)

…お客さんのサイトばかりで、自分のサイトはいっこうに手をつけられていませんが。orz...
もうちょっとでこの案件もひと段落…するはず!?

追記。

が。

メインメニューのカスタマイズでエントリーがない場合は非表示にしましたが、「トップカテゴリーにエントリーがなくて、サブカテゴリにのみエントリーがある」という状態だと、不都合が発覚。
(いきなりサブカテゴリだけ表示されてしまう。)

ので、トップカテゴリにはそのカテゴリの説明文の記事を入れることにしました。

※デフォルトのままだと、エントリーのないカテゴリーはテキストで表示されるようになってるんだけど、CSSで<a>タグをblock要素にしてpaddingを指定をしているので、テキストだけが表示されるとちょっと困るんです。(汗)

さらに追記。

なんか意味もなく(でもないけど。)トップカテゴリーを“作らなければいけない”のも癪なので、最終的に記事のないカテゴリーも表示させるように修正。
上記の、「リンクがない(つまり<a>タグがない)場合困る」という部分は「<MTElse>」で<a>タグの代わりに<span>を記述するようにして、CSSで同じpaddingなどの設定を適用させることで対応。

<MTIfArchiveTypeEnabled archive_type="Category">
<MTTopLevelCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>">
<$MTCategoryDescription$></a><MTElse>
<li><span><$MTCategoryDescription$></span></MTElse>
</MTIfNonZero><MTSubCatsRecurse></li><MTSubCatIsLast>
</ul></MTSubCatIsLast></MTTopLevelCategories>
</MTIfArchiveTypeEnabled>

こんな↑感じ。

この記事に関連する(かもしれない)書籍

 

投稿者 kuro : 2006年3月10日 03:42 | ID:550

ページトップ△

ページトップ△