Home > MovableType > きたみかんとMTをくっつけた

きたみかんとMTをくっつけた

昨日の時点でスタイルライブラリのページ構築について一段落したため,今日は普通に9時前に起きてweb巡回なぞしていた訳ですが,ふと「きたみかんのshtml出力ってどうなっていたっけ?」と思い,FFFTPでindex.shtmlファイルをダウンロードして見てみたんです.

すると,shtmlとなっている割には,SSIで良く使われる<!--#exec cmd="~" -->なんぞひとつも入っていないし,拡張子がshtmlじゃ無ければ,普通にHTMLとしても良いんじゃないの?というような内容だったのですよ.

んで,SSIコマンドが無い=どんなテキストにでもできるということは,今使っているMT上でも利用出来るのでは?...ということでやってみました.ただし手順自体は非常に簡単なんですけど,MTの設定では「サーバーサイドインクルードを有効にし,ファイルの拡張子をphpもしくはshtmlにする」必要がありますので注意して下さい.うちのMT(5.01)の場合,PHPでサーバーサイドインクルードの設定なので,それに沿って書いておきます.

手順は大まかに以下の通りです.

  1. なつみかんの出力ファイル名を変更する
  2. なつみかん用のウェブページをMTで作成する
  3. MTのウェブページテンプレートを編集する

なつみかんの出力ファイル名を変更する

なつみかんを日頃弄っている人にしか分からないのかもしれませんが,なつみかんのファイル出力は「binフォルダ内のHTMLファイルを読み込んで,各サイトの更新日等を取得し,その結果出来上がったファイルをbinフォルダのnm.ph(設定ファイル)に従い指定された場所の指定されたファイルに書き出す」ということになっています.

通常,base.htmlをindex.shtmlとして書き出している人がほとんどだと思いますので,nm.phを編集して,base.phpとして書き出すようにしました.以下に出力されたbase.phpのソース(一部)を表示しておきます.

<div class="entry">
  <ul class="info">
    <li class="date">Last Modified: 2010年1月17日 10:30:21</li>
    <li>Update Interval: 0分 / 30分</li>
  </ul>

  <div class="textBody">
    <div class="section">
      <h2>日記など</h2>
      <ul id="diary">
        <li>2010/01/17 10:02 (H) <a href="https://winterzeit.org/">冬言響</a> winterzeitさん</li>
(中略)
      </ul>
    </div>
  </div>

</div><!-- end div.entry -->

なつみかん用のウェブページをMTで作成する

PHPファイルの出力結果を確認したら,MTのダッシュボードからウェブページを新規作成します.ただしウェブページは固定ページなので,最終更新日の表示がなつみかんの「取得日時」とイコールにはどうしてもなりません.ただ最終更新日の表示については,テンプレートで表示させないようにして,base.phpで出力された「取得日時」をそのまま流用する方がてっとり早いと思ったので,ここではあまり気にせずウェブページを作成しました.

タイトルには「きたみかん」,本文には何も記入せず,キーワードに「Anntena」,タグに「@anntena」(@はプライベートタグの意)とつけ,コメント・トラックバックは受け付けないようにして保存.なお,フォルダ名には「なつみかんを格納しているフォルダ」を指定し,ファイル名は「index.php」としておいた方が無難です.

MTのウェブページテンプレートを編集する

最後に,出力されるウェブページのテンプレートを編集します.というのも,なつみかん用のウェブページは本文部分がまっさらの状態ですので,本文の代わりにPHPのインクルード文を使ってbase.phpの内容を貼り付ける処理が必要なのと,RSS・Atomへのリンク先が通常とは違うため,リンク先の調整が必要なためです.

ここで出てくるのが,ウェブページを作成した際の「キーワード」の指定です.これを最初の方で以下のようにして変数化してしまいます.

<MTSetVarBlock name="wpkey"><$MTPageKeywords$></MTSetVarBlock>
<MTSetVarBlock name="current_page"><$MTPageID$></MTSetVarBlock>

なお,mt.Vicunaの場合は,最初から<$MTPageID$>も変数化しているので,グローバルナビゲーションで「@anntena」と指定したウェブページを表示するようにすれば,カレント表示も問題なくできるはずです.

んで,なつみかん用のウェブページと,それ以外のページとで処理を振分けたい箇所では,以下のように分岐してやります.

<MTIf name="wpkey" eq="Anntena">
  <link rel="alternate" type="application/rss+xml" title="RSS" href="<$MTBlogURL$>フォルダ名/rss.xml" />
  <link rel="alternate" type="application/atom+xml" title="Atom" href="<$MTBlogURL$>フォルダ名/atom.xml" />
<MTElse>
  <link rel="alternate" type="application/rss+xml" title="RSS" href="<$MTLink template="RSS"$>" />
  <link rel="alternate" type="application/atom+xml" title="Atom" href="<$MTLink template="Atom"$>" />
</MTIf>

このように分岐したいところで処理を割り振れば,あとは通常のテンプレートの通りなので,記事を書く場所を以下のように分岐させてあげれば,ちゃんとPHPインクルード文も処理が行われるようになります.

<MTIf name="wpkey" eq="Anntena">
 <!-- なつみかんの出力結果(php)を貼付 -->
 <?php include("/home/ID名/www/フォルダ名/base.php") ?>
<MTElse>
 <div class="entry">
  <ul class="info">
   <li class="date">Last Modified: <$MTPageModifiedDate format="%x %X"$></li>
  </ul>
  <div class="textBody">
   <$MTPageBody$>
  </div>
</div><!-- end div.entry -->
</MTIf>

あとは,ウェブページを再構築してやれば完成となります.

一応これでほぼ出来上がりなのですが,グローバルテンプレートの修正については省略しています.まぁ,mt.Vicuna上でなつみかんを使っている人って,ほぼ間違いなく俺だけなので「別に無くても良いだろう」ってなことで一つ(ぉ

ちなみに,このやり方を流用すると,なつみかんでの取得結果をサイドバーに表示させることが可能だったりします.尤も,そんな奇特な人がいるかどうかは別ですけど(苦笑).

Comments:0

コメントする

Trackbacks:0

Home > MovableType > きたみかんとMTをくっつけた

Categories

Tag Cloud

OpenID accepted here

Accepted OpenID

CC Licence

Creative Commons License

このブログはクリエイティブ・コモンズでライセンスされています。

Feeds

Return to page top