総ページ数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がキレイにブロック分けされてたのが、楽に移植できた最大のポイントかも。
コメントする