Page Top

<MTParentFolders>を使って、MT4のウェブページにパンくずリストを設置

October 14, 2007

MT4からは、フォルダでページを管理することが出来るウェブページを作成することができるのですが、このウェブページにも、エントリーページに表示しているようなパンくずリストを設置したいなと思い、MTのタグレファレンスを参照しながら作ってみました。
ポイントは、エントリーページに表示するパンくずリストの時に使っていたカテゴリを表示する<MTParentCategories>の代わりに、<MTParentFolders>を使う、と言うことでしょうか。

【追記1 2007.10.20】
ウェブページでパンくずリストを作るポイントは、<MTParentCategories>の代わりに、<MTParentFolders>を使うこでしょうか、と記述しましたが、<MTParentFolder>の方を使ってもパンくずナビを作ることができたので、その分も下の【追記2 2007.10.20】のところに記述しました。ただし、自分が属しているフォルダの親フォルダを表示するだけなので、階層が2階層のときであれば役立ちますが、3階層などある場合は親の親フォルダが表示されないので、その場合は<MTParentFolders>の方が良いです・・。

まず、アーカイブテンプレートにあるウェブページを開き、このページが「ウェブページ」であることをその他のモジュールがデータを読み込んでいる時に判断できるように、MTSetVarを使ってVariableの名前をセットしてあげます。
<MTSetVar name="mt-page-archive" value="1">

次に、テンプレートモジュールへ行き、パンくずリストを設置するテンプレートモジュールを開きます。私の場合は、ヘッダーにパンくずリストを付け加えたいので、ヘッダーモジュールを開きます。
そして、パンくずリストを表示したい箇所に、以下のようなコードを付け加えました。

<MTIf name="mt-page-archive">
    <p id="breadcrumb" class="pkg">
        <a href="<$MTBlogURL$>">ホーム</a> >
        <MTParentFolders glue=" > ">
        <$MTFolderDescription$>
        </MTParentFolders> >
        <$MTPageTitle$>
    </p>
</MTIf>

エントリーをカテゴリで管理する時は、カテゴリにアクセスした時必ずカテゴリフォルダ内にindex.htmlがあり、そこからそのカテゴリ内の各記事(複数の記事が1つのカテゴリにある場合)にアクセスできるようになっているので、パンくずリストのカテゴリのところにカテゴリフォルダへのリンクを付けることが出来ますが、フォルダの場合は作り方によってはそうとも言えないので、あえてリンクは張っていません。

【追記2 2007.10.20】
上記では、<MTParentFolders>を使用したパンくずリストでしたが、これは、フォルダ直下のHTMLのファイル名にindex.htmlがない場合に使えると思います。逆に、フォルダ直下に必ずindex.htmlファイルというウェブページを置いた場合のパンくずリストを作ってみました。この場合、フォルダのリンク先として、どれが使えるのだろう?と色々とタグをあれやこれやと試してみたのですが、うまくリンク先をだせるものがなく、まさかこれは使えないだろう~?と思っていた<$MTCategoryArchiveLink$>がなぜか、ウェブページが属するフォルダの親フォルダのリンク先として使えてしまいました。特にエラーも起こりませんでした。こういう感じで、ウェブページもカテゴリアーカイブのように使えると思います。

<MTIf name="mt-page-archive">
    <p id="breadcrumb" class="pkg">
        <a href="<$MTBlogURL$>">ホーム</a> >
        <MTParentFolder>
        <a href="<$MTCategoryArchiveLink$>"><$MTFolderDescription$></a> >
        </MTParentFolder>
        <$MTPageTitle$>
    </p>
</MTIf>

最新記事

Comments

言われてみれば、フォルダの場合、カテゴリーのようにリンクをつけてもうまくいかないことの方が多そうです。仮に自分でDirectoryIndexに対応したファイル名でページを作ったとしても、ページの前後関係の点でうまくいくのか難しそうです。イロイロ考えると、リンクはない方がよさそうです、勉強になります。

nobukoさん、こんにちは!
nobukoさんに言われてみて今ちょっと気がついたのですが(nobukoさんが言われているのとは少し違うのですが・・)、ウェブページへのリンクが自動で出てくる場合、ページの前後関係の表示順序を思うようにできないのですね。(パブリッシュ時刻をいじったのですが、自動で出てくるウェブページへのリンクの表示順序は変わりませんでした。)
企業サイトなどで、オリジナルカスタマイズでかっちりと作りこんだウェブページであれば思うように仕上げられそうですが、自動の場合は色々状況があるので、私もやはり同じ意見に収まりました。:)私も勉強になりました!