2004/04/11
左右のサイドメニューをindex.phpから分離。includeで呼出す。
iBlogにはサイドメニューを管理するための「ナビゲーションエディタ」があり、サイドメニューだけ独立してカスタマイズできます。ナビゲーションエディタでサイドメニューを変更してリビルドすれば、全てのページのサイドメニューを1度に更新できて便利です。
一方、MTでは、トップページ用とかカテゴリページ用とか、ページの種類毎のテンプレートがあって、それぞれのテンプレートの中にサイドメニューのコードが直に埋め込まれています。よって、サイドメニューを変更しようとすると、複数のテンプレートを一つ一つ修正しなければならないため非常に面倒です。
でも、MTのはき出すページをPHPにすると、サイドメニューを独立したPHPファイルに分離し、それを「include」を使って簡単にページ内に取り込むことが出来るようになります。サイドメニューを別ファイル化すれば管理が簡単だし、もうあちこちテンプレートをいじる必要が無くなります。
こんな理由もあって、このサイトは全部PHP化されています。
例えば、このサイトのトップページは「http://o-ume8.com/junsdiary2/index.php」って感じです。
このエントリーでは、サイドメニューを分離する方法を紹介します。
なお、次のエントリーを参考にいたしました。
meu's blog : 左サイドのメニューをindex.phpからincludeで呼び出す。
(1)テンプレート「Main Index」から左メニュー部分をそっくりそのままカットする。
MT管理画面から「Templeteの編集」→「Main Index」を選択します。
「ファイルの中身」から、左サイドメニューに該当する箇所のHTMLコードをカットします。
(※)ウェブブラウザ上での編集作業は困難ですので、「ファイルの中身」をテキスト・エディタにコピーし、エディタ上で修正した方がよいでしょう。
(2)左サイドメニュー用インデックス・テンプレート「left.php」を作成する
MTの管理画面から「Templeteの編集」→「新しいインデックス・テンプレートを作る」を選択します。
次の通り、各欄に入力します。
「テンプレートの名前」→「Left」
「出力ファイル名」→「left.php」
「インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する」→チェック
「このテンプレートにリンクするファイル」→空欄
「テンプレートの中身」→(1)でカットしたHTMLコードをペースト
「保存」をクリックします。
「再構築」をクリックし、さらにポップアップしたウインドウで「再構築」をクリックします。
以上で、左サイドメニュー用のPHPファイル「left.php」がブログのトップディレクトリに生成されます。
(3)右サイドメニュー用インデックス・テンプレート「right.php」を作成する
テンプレート「Main Index」の右サイドメニューのHTMLコードの部分に対して(1)、(2)と同様の手順を実施し、「right.php」を生成します。なお、テンプレート名は、例えば「Right」とします。
(4)テンプレート「Main Index」の修正
「左サイドメニュー」があった部分を次のコードに変更します。
<?php include "left.php"; ?>
「右サイドメニュー」があった部分を次のコードに変更します。
<?php include "right.php"; ?>
修正したテンプレートを「保存」します。
「再構築」をクリックし、さらにポップアップしたウインドウで「再構築」をクリックします。
以上で、index.phpが再構築されます。
今回は、index.phpを修正する方法でしたが、同様にCategory ArchiveやIndividual Archiveのサイドメニューを分離し、全てのページでサイドメニューを共通化できます。
サイドメニューを共通化すれば、サイドメニューを変更したときに、left.phpやright.phpのみを再構築すればよいので、サーバに負担をかけることなくあっという間に全ページのサイドメニューが更新できます。
PHPの場合、includeを使えば、いろんなものを簡単にページに取り付けられるので、いろいろ遊べそうです。
アイデアが湧いたら何か作ってみよう。
このエントリーのトラックバックURL
トラックバックリスト
» MovableTypeのPHP化 from まちゅのブログ
MTサイトPHP化の覚え書きをやってから 左右のサイドメニューをindex.ph...[続きを読む]
トラックバック時刻: 2005/04/10, 23:32
» MovableTypeのPHP化 from あん共育有限会社 まちゅのブログ
MTサイトPHP化の覚え書きをやってから 左右のサイドメニューをindex.ph...[続きを読む]
トラックバック時刻: 2005/05/04, 19:13
» サイドメニューをincludeで呼出し from Aryla
デフォルトの状態だと、サイドメニューをいじると各ページのテンプレートを 全部いち...[続きを読む]
トラックバック時刻: 2005/09/01, 02:06
» サイドメニューをincludeで呼出し from Aryla
デフォルトの状態だと、サイドメニューをいじると各ページのテンプレートを 全部いち...[続きを読む]
トラックバック時刻: 2005/09/01, 02:08
» サイドメニューをincludeで呼出し from Aryla
デフォルトの状態だと、サイドメニューをいじると各ページのテンプレートを 全部いち...[続きを読む]
トラックバック時刻: 2005/09/01, 02:09
» ページ共通パーツをphpファイルから分離。includeで呼び出す。 from skn - web関連 -
ページ共通の箇所を更新するときに非常に便利な方法は下記のように何点かあります。...[続きを読む]
トラックバック時刻: 2007/06/01, 13:04


コメント
html形式だったら、サイドメニューをjavascriptで呼出すってのがいいかも。
投稿者 Jun : 2004/04/18, 17:06
Guys you are not alone believe me. I’m absolutely agree with you. It doesn’t matter what other people would say just trust me. I know for sure that it’s about real events.
投稿者 beastmoon : 2008/04/11, 16:16