MTOS(MT5) 中規模サイトのMT化に挑戦してみた

| コメント(0) | トラックバック(0)

総ページ数40ページ程度の企業サイトのMT化をする事になりまして、久しぶりにMTOS(MT5)をいじくってます。

もともとサイトを作った人が書いたHTMLがキレイだったので、移植しやすかったです。

ちなみに、本件、身内から頼まれた作業でして、半ば趣味の範囲でさっくりやってしまいました。本職ではございません。

サイトの構成

トップページ、商品説明ページ、会社概要、ニュースリリース、お知らせ、FAQなど、色々なコンテンツが有るサイトでしたので、下記のような構成で考えてみました。

WebSite
  - メインページ(配下のお知らせ、ニュースなどブログのタイトルを参照して一覧表示)
  - フォルダ[商品説明ページ1]
      商品説明ページ1-1
      商品説明ページ1-2
  - フォルダ[商品説明ページ2]
      商品説明ページ2-1
      商品説明ページ2-2
  - ブログ1[ニュースリリース]
  - ブログ2[お知らせ]
  - ブログ3[FAQ集]

FAQ集は時系列情報ではないので、ブログ形式で作るかどうか迷ったんですけど、記事の件数も多いですし、ページ数や内部リンク数も稼げることや、更新のしやすさを考えて結局ブログ形式で展開する事にしました。

ちなみに、並び順の変更は、SuperSortプラグインを利用させて頂いております。(最新のMT5.1では、フォルダの並べ替えができるようですが、今回は5.04なので、こちらのプラグインで対応しました。)

ページ毎のデザインの設定

ページ毎のデザインは、フォルダ単位で行ってみました。

ウェブページテンプレートの<body>を以下のように設定。

<body id="<mt:PageFolder><$mt:FolderLabel$></mt:PageFolder>">

これで、ウェブページを再構築すると、<body id="フォルダ名">となります。

CSSを記述する際に、セレクタの前に#フォルダ名 を書き加えれば、そのフォルダ内のページだけに適用する事ができます。

#foo content { width:920px }

たとえば[foo]というフォルダのウェブページの設定ならこんな感じですね。

テンプレートの参照

ナビゲーションメニューや、ヘッダ、フッタなどの共通パーツは、全てWebsiteテンプレートに設定。

配下のブログから親ウェブサイトのテンプレートを直接includeすることはできないので、次のコードを使用しました。

テンプレートの冒頭で、変数にWebsiteIDを格納します。

<mtblogparentwebsite>
  <$MTWebsiteID setvar="website_id"$>
</mtblogparentwebsite>

で、呼び出すときには、

<$mt:Include module="hogehoge" blog_id="$website_id"$>

この記述でOK。

試してないですが、同じモジュール名がブログのテンプレートにも存在すると上手く動かないと思いますので、モジュール名に接頭語をつけておくと良いかもですね。

メインページでブログ記事の一覧を表示する

メインページで配下のブログ記事の一覧を表示するのは、こんなコードにしてみました。

<mt:Entries include_blogs="2" lastn="7">
<p><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></p>
</mt:Entries>

このコードだと、2番のブログの7記事分のタイトルを吐き出してくれます。

教科書どおり?ですね。簡単です。

これで、ニュースリリースやお知らせを、該当のブログで書くと、トップページの一覧に反映されるようになります。(もちろん、更新するたびにウェブサイトの再構築をしないといけませんけど)

思ったより簡単

久しぶりにいじってみましたが、思ったよりも簡単に移植終了。

もともとのHTMLがキレイにブロック分けされてたのが、楽に移植できた最大のポイントかも。

トラックバック(0)

トラックバックURL:

コメントする

ARCHIVES