Movable Type の PHP モジュール化の仕組みについて(その3:変更方法)

Movable Type の PHP モジュール化の仕組みについて(その3:変更方法)

Posted at March 8,2005 3:38 PM
Tag:[Customize, Module, MovableType, PHP]

PHPモジュール化をする場合の具体的な変更方法です。

1.モジュールを引き込む元となるテンプレートの変更

これはメイン・ページや各アーカイブテンプレートが対象になり、以下の作業を行います。

1.1 インデックステンプレート(メインページ等)の場合

  1. 管理メニューの「テンプレート」をクリック
  2. インデックス・テンプレート欄より該当のテンプレートをクリックし、テンプレート内部のモジュール化したい部分を切り取ってメモ帳などにペースト(切り取った位置を忘れないようにコメントでマークしておくか、先に3を実施)
  3. テンプレートから切り出した部分を
    <?php readfile("filename"); ?>
    に置き換え(filenameについては2、3項を参照)
  4. XML宣言の修正
  5. 出力ファイル名の拡張子を .php に変更
  6. 保存・再構築
  7. .htaccess対処(必要に応じて)
  8. 拡張子が .html で配置されている旧ファイルを削除(必要に応じて)

4.は、テンプレートの1行目にXML宣言

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>

がある場合、5.で拡張子を index.php にして表示すると、ページが真っ白になるか

Parse error: parse error, unexpected T_STRING in [...] on line 1

というようなエラーが表示されます。これはXML宣言がPHPとして誤解釈されてしまうための事象です。
これを回避するには、XML宣言を削除するか、

<? echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>

とPHPが解釈可能なフォーマットに変更してください。

5.は、例えばメインインデックスの場合

index.html → index.php

に変更します。これを行わないと 3.でテンプレート内に記述したPHPスクリプトが動作しません。

6?8は2項の部品化が完了してから行ってください。6.は5.でファイル名を変更することによって検索エンジンからのアクセスや PageRank 等に影響を及ぼすため、必要に応じて .htaccess によるリダイレクト(?.html でアクセスされたら ?.php を表示すること)を行います。エントリーがある程度たまっている方は .htaccess を使われることをお勧めします。詳細については別の機会に記述します。

8.は、7.の対処が不要な場合、例えばファイル名が index.html かつURLにファイル名が指定されていない場合等に行います。index.html を削除する理由は、拡張子によってファイルアクセスの優先順位が異なるためです。
例えば、新しく index.php を生成しても同じディレクトリに index.html が残っていると、サーバは index.html に先にアクセスします。つまり一般的には .html や .htm が .php より優先される訳です(厳密にはサーバの設定に依存しますが一般的にはこのようになっています)。

なお index.html を削除する前に URLで http://~/index.php まで指定してファイルの正常性を確認されることをお勧めします。生成に失敗した状態で index.html ファイルを削除するとアクセスが全て index.php に流れてしまうためです。

1.2 カテゴリー・アーカイブ/日付アーカイブ/個別エントリーアーカイブの場合

下記の手順で変更します。

  1. 管理メニューの「ウェブログの設定」をクリック
  2. 次のページ右上の「アーカイブの設定」をクリック
  3. 「アーカイブ」欄にある「アーカイブ・ファイルのテンプレート」に青色部分
    • 個別:<$MTArchiveDate format="%Y/%m/%d-%H%M%S"$>.php
    • 日別:<$MTArchiveDate format="%Y/%m/%d/"$>index.php
    • 月別:<$MTArchiveDate format="%Y/%m/"$>index.php
    • カテゴリー:cat_<$MTCategoryID$>.php
    をそれぞれ設定します。上記は一例ですのでフォーマットは任意の形式に変更することができます。format 属性にある %Y は年、%m は月、%d は日を表わします。また "/" はディレクトリになります。"-" や最後の "index.php" はそのままファイル名に反映されます。
  4. 変更後、保存・再構築します。

2.モジュールの作成

次に部品となる方のテンプレートを作成します。

  1. 管理メニューの「テンプレート」をクリック
  2. インデックス・テンプレートの右上にある「新しいインデックス・テンプレートを作る」をクリック
  3. 下記の項目を設定
    • テンプレートの名前:任意
    • 出力ファイル名:任意
    • テンプレートの内容:アーカイブテンプレート等から切り出したメニューリスト等のMTタグをペースト
    • 再構築オプション:チェック

以下は「最近のエントリー」をモジュール化する場合の例です。

  • テンプレートの名前:最近のコメント
  • 出力ファイル名:recentEntries.html
  • テンプレートの内容:
<div class="sidetitle" id="entryname">
Recent Entries
</div>
 
<div class="side"id="entrylist">
<MTEntries lastn="10">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
</MTEntries>
</div>

「テンプレートの名前」は管理メニュー上で表示するだけのものですので日本語でもOKです。「出力ファイル名」はこのテンプレートが再構築された時、ローカル・サイト・パスに出力されるファイル名です。一応拡張子として「.html」を付与していますが、このファイルに直接URL指定してアクセスする必要がなければ「.txt」でも大丈夫です。なおこのファイル名が1項の元テンプレートに埋め込む filename になります。
「再構築オプション」はモジュール化で重要なキーとなる部分です。ここでは「チェック」にしていますが、具体的な内容は次回詳しく説明したいと思います。

3.パスについて

1項の filename の補足ですが、ファイル名にはパスが必要です。パスは絶対パス(ルートとなるディレクトリからファイルが配置されているディレクトリまで)または相対パス(参照元のファイルがある位置からファイルが配置されているディレクトリまで)で記述します。テンプレートと同じ位置にあればパス名は不要ですが、モジュールは各アーカイブから利用されるのが一般的ですので、一律絶対パスを用いるのが良いでしょう。

4.コメント・プレビュー/コメント・エラーでのインクルードについて

この項目は我楽さんより頂いたご質問の反映ということで急遽追加致しました。これらのテンプレートは実体が存在しない(CGIプログラムによるHTTPレスポンス)ため、設定方法が異なります。また現状ではPHPスクリプトが評価できる方法が不明であるため(環境設定に依存?)、このファイルからインクルードする場合は

<$MTInclude file="filename"$>

を用います。

5.PHPスクリプトをインクルードする場合

上記のサンプルではMTタグが記述され(て実体に展開され)ただけのファイルをインクルードしていますが、PHPスクリプトが記述されたファイルをインクルードする場合もあると思います。
例えば、いくつかのモジュールのインクルードをまとめた

<?php readfile("recentEntries.html"); ?>
<?php readfile("recentComments.html"); ?>
<?php readfile("recentTrackbacks.html"); ?>

という内容の中間的なモジュール hogehoge.php を想定します。この hogehoge.php をさらにメインインデックス等からインクルードする場合には、

<?php include("hogehoge.php"); ?>

と記述します。readfile はファイルを読み込むだけの関数ですが、include はファイルを読み込み、さらにそれをプログラムとして評価するための関数です。拡張子は実験したところ任意の名称で問題ないようですが、単体でPHPスクリプトの動作を確認する場合等を考慮して .php にする方が良いでしょう。
逆に言うと、PHPスクリプトが記述されていないファイルをインクルードする場合は

<?php readfile("?.html"); ?>

で大丈夫ということです。インクルードが何段にもなる場合は、インクルード元に近い方から include 関数を用いて、一番末端だけ readfile 関数または include 関数を使用、という構造になります。

以上です。
当初、「PHPスクリプトでないファイルの拡張子は .html でOKです」というオチにするだけの予定だったのですが、最初のサンプルで、

<?php include("http://?.html"); ?>

としていたところ、その1Ogawa::Memoranda さんから頂いたコメントにある通り「PHPプログラムを含まないのであれば includeで読み込むのは得策ではありません」「サーバーサイドにあるファイルはURL指定する必要はありません」とのことで、記述を変更致しました。勉強不足、失礼致しました。あわせてご指摘感謝致します。
なお他のサーバにあるファイルを読み込む場合は上記のようなURL指定を行います。

ということでミイラ取りがミイラになりました。(つづく)

2006.03.17
XML宣言の修正について追記しました。

その1:概要
その2:具体的動作とMTIncludeとの違い
その3:変更方法
その4:再構築オプション利用方法
関連記事
トラックバックURL


トラックバック

PHPモジュール化 from blogっぱぐ。
PHPモジュール化してみました。 前々から興味はあったんですが、卒業も決まって暇... [続きを読む]

Tracked on March 8, 2005 8:36 PM

PHPモジュール化のすすめ from Luna's*PaPa
前回のエントリーアーカイブのページ分割が・・・では見事に失敗してしまいましたが、今回はテンプレートのモジュール化についてです。 モジュール化に当たり、参考にさせ... [続きを読む]

Tracked on March 17, 2005 8:23 AM

サイトまるまるMT化メモ 3.モジュール化 from KillerPierce
テンプレートを書いていると、同じパーツがいくつも出てきます。たとえば一番上のタイ... [続きを読む]

Tracked on April 9, 2005 9:12 PM

MTテンプレートをPHPモジュール化 from Over 40
MTテンプレートのPHP化をしました。 運用中に平然と変更をやってのけるところが... [続きを読む]

Tracked on April 27, 2005 7:45 PM

モジュール化 手順(最終回) from 通信販売記事∇blogブログ
ファイルのPHP化が済んだら、いよいよ本題の 『モジュール化』です。 ■■■ 参... [続きを読む]

Tracked on May 22, 2005 2:46 PM

モジュール化とPHP化のトレードオフ from TENERE
Movable Typeの使い勝手を改良中です。 表示されるパーツをモジュール化... [続きを読む]

Tracked on June 21, 2005 5:40 PM

リンク一覧のモジュール化 from Mistgrass Weblog
 テンプレートのPHP化もやったことだし、モジュール化というのにチャレンジしてみ... [続きを読む]

Tracked on June 30, 2005 12:08 PM

モジュール化 from 畳部屋哀歌
PHP化に続いて、モジュール化を実行します。モジュール化という言葉の意味と仕組み... [続きを読む]

Tracked on July 29, 2005 3:28 PM

PHP化をさくらのサーバーで from HAPPY Manager Blog
PHPをCGIとして動かすサーバーなので パーミッションが644とかだとインター... [続きを読む]

Tracked on October 4, 2005 2:07 AM

PHPモジュール化 from 育児・子育て支援ブログ【悩みながらも、楽しい男の子育児】
... [続きを読む]

Tracked on October 7, 2005 11:13 AM

Movable TypeのPHP化。 from ケセラセラBrand-new!
テストブログで作ってみたら、エラー地獄に陥ってたのが嘘のように、あっさりPHP化... [続きを読む]

Tracked on December 2, 2005 10:36 PM

phpモジュール化やってみました。(第2回:変更の仕方) from ネタを探して2万マイル!?
さて、第1回でphpモジュール化の意義とイメージができたと思います・・・多分。... [続きを読む]

Tracked on December 26, 2005 11:19 PM

PHPモジュール化とページ分割 from I c e c r e a m - n e t . c o m
Icecream-net.comではヘッダー部分やサイドバーなど 各ページに共通... [続きを読む]

Tracked on March 3, 2006 11:51 AM

MovableType構築メモ no.002 from rvLog.net
リンク部分のみphpモジュール化することに成功しました。 といってもまだメインペ... [続きを読む]

Tracked on April 5, 2006 3:38 AM

MovableType構築メモ no.002 from rvLog.net
リンク部分のみphpモジュール化することに成功しました。 といってもまだメインペ... [続きを読む]

Tracked on April 5, 2006 3:57 AM

MovableTypeをPHPモジュール化 from ツール・ド・もんち - Tour De MonChi -
今回、テンプレートを一新するのと同時に、MovableTypeをPHPモジュール... [続きを読む]

Tracked on April 10, 2006 11:45 PM

画像ポップアップでInternal Server Error from ツール・ド・もんち - Tour De MonChi -
今日、久しぶりに画像と記事をエントリーしたら想定外なことが発生。 この記事中のサ... [続きを読む]

Tracked on April 10, 2006 11:59 PM

MovableType3.2のPHP化 from Balderdash#blog
再構築時の重みは、まだ大したことないんですが、 PHPにしないと使えないプラグインが多々あるので踏み切っ [続きを読む]

Tracked on May 11, 2006 7:10 PM

PHP化 from 読書三昧
PHP化しようと拡張子換えて再構築すると真っ白けに。ううむぅ。 というわけで、調... [続きを読む]

Tracked on May 23, 2006 8:28 PM

テンプレートをPHPモジュール化?MovableType 3.2? from 白梟 's
以前書いたように、MovableTypeをPHP化はしていたのですが、テンプレー... [続きを読む]

Tracked on June 29, 2006 1:53 AM

MTでのxml宣言文の記述方式 from webサイト構築 ナレッジ
MTでのxml宣言文の記述方式は通常通りに記述すると、 PHPのスクリプトと勘違... [続きを読む]

Tracked on January 24, 2007 12:28 AM

MovableTypeのJavaScriptによるテンプレートのモジュール化を実験してみる from 双数姉妹HPリリースノート
Fenrir's BLog: テンプレート共通化とJavaScriptによる軽量... [続きを読む]

Tracked on February 4, 2007 3:50 AM

こっそりPHP化 from RE:blog
殆ど誰も気づいてはいないと思いますが、コソっとPHP化+モジュール化を決行しま... [続きを読む]

Tracked on February 18, 2007 11:29 PM
コメント

こんばんわー。^^

えっと、4番の方法でやってて、インクルードするファイルにPHPスクリプトが書いてあるんですよー。でエラーが出てしまうんですよね。

つまり、コメントプレビューテンプレートで、MTInclude を使用してモジュールを読み込ませているので表示はされるのですが、そのモジュール内に書かれているPHPスクリプト部分が動作しないのでそのままスクリプト文字が表示されてしまうというエラーになってしまうんですぅ。

[1] Posted by Border. : March 9, 2005 3:05 AM

>Border.さん
こんばんは。
ちょうどその事を書いてましたがエントリー出遅れました。
では次のコメントで?。

[2] Posted by yujiro : March 10, 2005 12:31 AM

またまたお世話になります。
モジュール化自体は結構簡単にできました。今回 yujiro さんのエントリーで非常に役に立ったのは、特別なテンプレート(コメント・プレビューやコメント・エラー)でモジュール化する方法だったりします ^^;
普通にphpインクルードで呼び出しても、ダメだったのでモジュール化を諦めていたのですが、MTインクルードで呼び出す事により、無事に問題解決となりました。
他にも、検索用テンプレートもこの方法でモジュール化できます。

[3] Posted by Take : March 17, 2005 8:31 AM

>Takeさん
こちらこそお世話になります。
記事参照ありがとうございました。

なるほど、検索テンプレートは気がつきませんでした。
情報ありがとうございます!

[4] Posted by yujiro : March 17, 2005 3:04 PM

こんにちは。

コメントプレビュー等のテンプレートをPHP化するスクリプトを作りました。
PHPからmt-comment.cgi等を呼び出して、その出力をPHPで処理するという仕組みです。

http://www.h-fj.com/blog/archives/2005/09/16-161205.php

[5] Posted by : September 16, 2005 4:25 PM

>壱さん
こんばんは。
情報ありがとうございます。
他のテンプレートと同様にPHPが使えるようになるというのはいいですね!

[6] Posted by yujiro : September 17, 2005 2:41 AM

いつもお世話になっております。お手数おかけしますがサポートお願いします。yujiro様のエントリーの分割をしたいのもありまして、なんとか個別アーカイブのPHP化とPHPモジュール化をしたいのですが素人でもなんとかできるような解説等はして頂けないでしょうか?宜しくお願いします。

[7] Posted by panser : October 6, 2005 8:03 PM

>panserさん
こんばんは。
お世話になります。

ご質問の件ですが、モジュール化についてはここの記事およひ関連記事でかなりかみくだいて書いているつもりです。
個別エントリーアーカイブのPHP化は、本記事の1.2項の3番目の「個別」の部分を設定すれば完了します(要するに個別エントリーアーカイブの拡張子を .html から .php に変更するだけです)が、もう少し具体的な不明点(どこまで理解されて、どの部分でつまづいているのか)におっしゃっていただけると助かります。

以上です。
それではよろしくお願い致します。

[8] Posted by yujiro : October 7, 2005 1:25 AM

いつもお世話になっております。個別アーカイブをPHP化して「.htaccess」で自動転送しようと思い下記のように書込み設定したいのですがどうしてもHTMLからPHPへ自動転送してくれません。
(サーバーにHTMLが残ってると自動転送しないとの話しを見た事あるのでHTMLは削除して試してもだめでした)

「.htaccess」書込み内容


Redirect permanent /www/archives/.html /archives/.html

サポートお願いします。

[9] Posted by panser : October 8, 2005 1:06 AM

昨日からPHP化した後の自動転送してますが相変わらず自動転送してくれません 多分「.htacess」の書込み内容が間違ってるのだと思うのであっちこっちで検索してみては試みますがいっこうにうまく転送してくれません。それと、また、不具合が発生しています。新規エントリーの投稿もできなくなってしました。全てが多分自動転送の設定がうまくできていないところからきてると思います。こちらに「.htacess」の内容を書込みたかったのですがタグは書込みできないみたいですね
ほんと、MTのカスタマイズは素人にはなかなか大変ですね。それに検索しても十分な説明の書かれたBlogもなかなかないしね 結構途中の説明が省かれていいるサイトが多いですね。
またまた、お手数おかけしますがサポートの程宜しくお願いします。

[10] Posted by panser : October 8, 2005 5:44 PM

>panserさん
こんにちは。
ご質問の件ですが、コメントで書ける内容ではないので改めてエントリーします。
なお、PHP化によるリダイレクトについては多くの方が、我楽PHP化とページ分割。を参考にされています。

以上です。
それではよろしくお願い致します。

[11] Posted by yujiro : October 10, 2005 10:34 PM

こんばんは。

こちらの記事を参考にさせていただいて、php化がんばってます。

ここ2週間くらいずっとやってるのですが、試行錯誤の末、トップページ、個別、日別はphpでアクセスしてみたところ、きちんと表示されるようなので、大丈夫そうです。

ただ、月別、カテゴリーが、phpでアクセスしてみると、500エラーになってしまうのです。

色々調べてやってみたのですが、(出力フォーマットを変えてみたり・・・。)どうしてもうまくいきません。

404not foundのエラーではないし、FTPでサーバーの中を見てみると、確かにファイルは存在しているようです。
パーミッションも他のきちんと表示されるphpファイルと同じ属性になっています。

漠然とした説明で申し訳ないのですが、もし、お分かりになるようでしたら、ご教授願えないでしょうか?

よろしくお願いします。


トップ
http://keserasera.com/brandnew/index.php

個別
http://keserasera.com/brandnew/2005/11/28/165036.php

カテゴリー
http://keserasera.com/brandnew/blogpet/cat33/index.php

月別
http://keserasera.com/brandnew/2005/11/index.php

日別
http://keserasera.com/brandnew/2005/11/28/index.php

※個別、月別、カテゴリー別、日別のURLについては、参考に1つのものを取り上げていますが、全部同じ状態です。

[12] Posted by ゆっこ : November 29, 2005 3:33 AM

>ゆっこさん
こんばんは。
ご利用ありがとうございます。

ご質問の件ですが、ネットで検索した限りではやはりどなたもパーミッションが原因のようで、それ以外では見つかりませんでした。
なお NG になるディレクトリにあった html ファイルのソースを拝借して、拡張子を php に変更してこちらのサイトで開いてみたところ、正常に表示されました。
あとは一旦ファイルを全て削除して再度再構築されてみてはいかがでしょうか(回復する根拠はありませんが…)。

サーバのログ(エラーログ)が参照できれば、エラーの原因が分かると思うのですが。

以上です。
それではよろしくお願い致します。

[13] Posted by yujiro : November 30, 2005 1:30 AM

yujiroさん、こんばんは。

回答ありがとうございました。

色々色々やってみては再構築を繰り返した結果、なにやら、おかしいことになり、うまくいっていた固定リンクもエラーが出るようになってしまい、記事が読めない状態になってしまいました。

記事が読めないのは問題なので、phpの実験用にもうひとつブログを作って、そちらで、試してみることにしました。

そのために、そのブログ用にまたテンプレをお借りしました。

テスト用なので、記事はアップしないかもしれませんし、うまくいったらブログを消すかもしれませんので、BlogPeopleのユーザーリストには入れていただかない方がよいかもしれません・・・。

でも、一応、URL貼り付けておきます。
http://keserasera.com/test/

[14] Posted by ゆっこ : December 1, 2005 8:15 PM

こんばんは。

何度もコメントすみません・・・。

上にコメントしましたが、テストブログを作成して、PHP化してみたところ、今までのエラーが嘘だったようにすんなりできました。

なので・・・うまくいかなかったブログを削除して、テスト用に作ったブログのパスを元のブログと同じものに変更して、そのまま使ってしまうことにしました。

とりあえず、うまくいったことのご報告でした・・・。

[15] Posted by ゆっこ : December 2, 2005 1:13 AM

>ゆっこさん
こんにちは。
返事が遅くなってすいません。
とりあえずうまくできたようで良かったです!

[16] Posted by yujiro : December 2, 2005 12:50 PM

どうも初めまして。Fear ウルフと申します。
こちらのテンプレートやカスタマイズを利用させて頂いて、いつも助かっています。
今回はちょっとご質問がありまして、コメントさせて頂きました。

この記事をがんばって理解して、ようやくphp化にはこぎづけました。
で質問なんですが、phpで読み込むモジュールファイルの参照ですが、相対パスは利用できないでしょうか?

例えばテンプレートの日別アーカイブですが、私の場合下記のようになっています。
php用モジュールファイル/archives/年/月/日/index.php

日別アーカイブからphp用モジュールを相対パスで考えると、「../../../../php用モジュールファイル」になると思います。
(同様の考え方でカテゴリーアーカイブはうまく行きました。)
ところが、テンプレート日別アーカイブからは月別も生成されているようで、月別アーカイブを開くと参照先が無くなってしまいます。
(月別の場合は一階層上がるので、「../../../」となると思います。そのため「../../../../」では都合が悪いのでしょう。)

なんとか月別アーカイブからも相対パスで動かすような方法はありませんでしょうか?

現状では参照先を「http:サイト/php用モジュールファイル」としています。同一サイト内で処理した方が負荷が少ないかなと思いまして。

非常にややこしい話なのですが、何か良い対処法があればお願い致します。

[17] Posted by Fear ウルフ : December 11, 2005 3:58 AM

>Fear ウルフさん
こんにちは。
テンプレート&カスタマイズご利用ありがとうございます。
ご質問の件ですが、月別用と日別用のアーカイブを分割されるのが良いと思います。詳細はアーカイブテンプレート作成方法を参照ください。

あと勝手ながらBlogPeopleに登録させて頂きました。
それではどうぞよろしくお願い致します。

[18] Posted by yujiro : December 11, 2005 1:43 PM

☆yujiroさん
 >ご質問の件ですが、月別用と日別用のアーカイブを分割されるのが良いと思います。詳細はアーカイブテンプレート作成方法を参照ください。
 なるほど、予め分けてしまうわけですね。
 それならば相対パスでうまく行きそうです。
 ご紹介にあずかった記事を見て試行錯誤に挑戦します!

 >あと勝手ながらBlogPeopleに登録させて頂きました。
 どうもありがとうございます。
 どのタイミングでご連絡するか迷っていたので。(^^

お返事どうもありがとうございました。m(_ _)m

[19] Posted by Fear ウルフ : December 11, 2005 2:16 PM

>Fear ウルフさん
こんにちは。
ご連絡ありがとうございます。
ご不明な点がございましたらご連絡ください。
ではでは。

[20] Posted by yujiro : December 11, 2005 6:03 PM

yujiroさん こんばんは^^ はじめましてm(_ _)m
先日 初めてMT(3.2-ja-2)を使用しようと テンプレートをお借りし カスタマイズに挑戦しているのですが・・
どこから手をつけて良いか悩み 取りあえず・・・
サイドの折り畳み →PHP化と来ているのですが 何とかPHP化は出来ているかと思いますが カレンダーからのリンクとMonthly Archivesからのリンクがちゃんと出来ません...
スタイルシートが反映されないのです(TДT)
また 続きをよむをクリックした後のページでは 右サイドが下に落ちてしまっています...
色々試行錯誤しましたが お手上げです(´;ω;`)

何かアドバイス頂けたらと思いますm(_ _)m

[21] Posted by ぷちメル : January 24, 2006 12:04 AM

>ぷちメルさん
はじめまして。
テンプレートご利用ありがとうございます。
ご質問の件ですが、こちらから拝見したところスタイルシートは反映されている(=トップページと同じスタイル)ようです。ブラウザのキャッシュファイルをクリアされてはいかがでしょうか。

また右サイドが落ちる件はテンプレートの

</div><!-- /entry -->

に対応する div タグがないようです。

あと勝手ながらBlogPeopleに登録させて頂きました。
それではどうぞよろしくお願い致します。

[22] Posted by yujiro : January 24, 2006 11:45 PM

yujiroさんへ・・

おはよーございます^^
お返事ありがとうございますm(_ _)m

あれから 色々見てみたのですが 良くわからなくなってしまったので も一度最初からインストールして一からやり直した所・・ ちゃんと出来ました!!^^

これからも 小粋空間様で勉強しながら色々カスタマイズしていきますので どうぞ宜しくお願いしますm(_ _)m

[23] Posted by ぷちメル : January 27, 2006 8:30 AM

>ぷちメルさん
こんにちは。
とりあえず解決されたようで良かったです。
また何かございましたらご連絡ください。
ではでは!

[24] Posted by yujiro : January 27, 2006 12:46 PM

以前PHP化でも質問したものです。
その節は大変助かりました。

さて、早速includeタグを使おうと思ったのですがメインページなどは、includeタグできちんとサイドメニューやバナーが埋め込めるのですが、アーカイブページ(テンプレート→アーカイブ→エントリー・アーカイブ)にincludeタグを書いても反映されません。

●includeタグを使わなければそのまま表示される
●リフレッシュして一からやり直しても同じ結果
●メインページにも同じincludeタグを使っているが、メインページは正しく表示されている。

以上の理由から、タグ内容が間違っているとは考えにくいです。
アーカイブページにはincludeタグは使用できないのでしょうか?

[25] Posted by PHP太郎 : February 19, 2006 11:54 AM

>PHP太郎さん
こんばんは。
ご無沙汰してます。
ご質問の件ですが、具体的な設定内容をご連絡頂けますでしょうか(「includeタグ」は php の include または MTInclude(属性指定も含め)かによって回答内容が異なります)。URLもご連絡頂ければさらに適切に回答できるかもしれません。
アーカイブページで表示されないということですので、php の include 指定時のパスの問題ではないかと推測しています。
なおアーカイブページで設定できないということはありません。

以上です。
それではよろしくお願い致します。

[26] Posted by yujiro : February 20, 2006 9:10 PM

以前ナビバー関係(だったかな?)でコメントしましたpokelaboです。お久しぶりです。

今回phpモジュール化に挑戦したのですが、
1行目のxml宣言が?で囲まれていてスクリプトと勘違いされエラー、?を消してみてもソースは出るがブラウザでは見えない・・・・という状況です。
よろしければどこか間違っているのかご教授願います。よろしくお願いします。

[27] Posted by pokelabo : February 25, 2006 9:32 AM

申し訳ありません、トラックバックされているサイト様を見回っていましたら
php echoを使えばよいとなっていましたので修正したら表示されました。ご迷惑をおかけしました

[28] Posted by pokelabo : February 25, 2006 9:37 AM

>pokelaboさん
こんばんは。
無事に解消されて良かったです。
この問題についてテンプレートのページやいくつかのエントリーに書いているのですがエントリーとして独立していなかったのでまた改めて記したいと思います。
ではでは。

[29] Posted by yujiro : February 26, 2006 1:44 AM

yujiroさん、こんにちは。
このエントリーに直接関係するかは分かりませんが教えて頂ければ幸いです。
当該エントリー等を参考にphp化は成功したのですが、画像のポップアップ表示のエラー発生で困ってます。
たぶん、php化したのが原因だと思うのですが、MT管理画面から投稿・ファイルのアップロードでポップアップ表示を選択した場合、画像ポップアップのフレーム(枠)が*.phpで生成されてしまい(今までは*.htmlでした)、結果、サムネイル画像をクリックしたらInternal Sever Errorが発生してしまいます。
今までのように、ポップアップ画像のフレーム(枠)が*.htmlで生成される、又は、*.phpでも表示がされるような方法があればご教示頂きたくお願い申し上げます。
google等で検索をしているのですが、解決策が探しきれず悩んでいます(泣)

[30] Posted by もんち : April 8, 2006 3:21 PM

>もんちさん
こんばんは。
ご質問の件ですが、拡張子の変更を「設定」→「公開」→「アーカイブの拡張子」で行われている場合、上記の問題が発生するようです。
mt-config.cgi でファイルのパーミッションを変更されてエラーになっているようでしたら、インデックスページの拡張子は各インデックステンプレートの出力ファイル名、アーカイブページについては、「設定」→「公開」→「アーカイブマッピング」で拡張子を個別に変更された方が良いかもしれません。

以上です。
それではよろしくお願い致します。

[31] Posted by yujiro : April 9, 2006 12:02 AM

yujiroさん、こんにちわ。
画像ポップアップの(フレームの)拡張子の件ですが、アドバイスどおりにやってみたら無事解決できました。
このエントリーにある、"1.2 カテゴリー・アーカイブ/日付アーカイブ/個別エントリーアーカイブの場合"のアーカイブマッピングだけを変更し、設定>公開>アーカイブの拡張子は変更しない(htmlのまま)と言うのが今回の問題解決につながったポイントでした。
yujiroさん、本当に有難うございました。今後とも宜しくお願いします。

ps.併せて"Lightbox JS で画像を表示する"も利用させて頂きました。

[32] Posted by もんち : April 9, 2006 3:43 PM

>もんちさん
こんにちは。
ご連絡ありがとうございました。
無事に解決されたようでよかったです。
ではでは!

[33] Posted by yujiro : April 10, 2006 11:41 AM

こんにちわ。
この記事を参考にさせていただき、<?php readfile("?.html"); ?>でファイルを読み込ませることに挑戦しました。。。が、動かないので困っています。

具体的には
・http://whiteowl.ddo.jp/A.htmlを読み込ませたい
・ドキュメントルート直下のindex.htmlで読み込ませる事は成功
・カテゴリーや日付といったドキュメントルートにないページでは不可(表示されない)
といった感じです。

<?php readfile("hoge"); ?>のhogeの部分に、相対パスやhttp://?でURLを書いてもダメでした。またA.htmlのアクセス権を試しに777にしてみても無理でした・・。
もし解決方法をご存知でしたら教えていただけないでしょうか。
よろしくねがいします。

[34] Posted by 白梟 : June 27, 2006 7:51 PM

こんばんわ。
先日、コメントにて質問させていただいた件ですが、あれこれとやっているうちに無事解決できました!原因は相対パスの記述ミスでした。。../が一段多かったようです。まさに凡ミス。。
お騒がせして申し訳ないです・・

[35] Posted by 白梟 : June 28, 2006 10:12 PM

>白梟さん
こんばんは。
ご連絡ありがとうございました。
無事に解決されたようで良かったです。
原因も記入くださりありがとうございます。
ではでは!

[36] Posted by yujiro : June 28, 2006 11:08 PM

始めましていつもこちらのサイトを利用させていただいておりますもっち?と申します。

今回はPHP化についてお聞きしたいのですが過去の質問や他のサイト、書籍などを見てもうまくいかなかったので質問させていただきます。

テンプレートのメインページの出力ファイル名をindex.phpに変更
ftpでindex.phpのパーミッションを755に変更

<? echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>に変更

それでhttp://ikimono.sakuraweb.com/cgi-bin/blog/index.phpに接続しようとしても
「500 Internal Server Error」
と表示されてうまくいきません

上記に書かれている原因はパーミッションのようですしよく原因がわからなかったので質問させていただきました

MovableTypeのバージョンは3.3-jaで
サーバーはさくらのスタンダードですのでPHPのりようは問題ないはずです

現在はブログが表示されないと困るのでhtmlに戻しています

ご多忙だとは思いますが何卒宜しくお願いします

[37] Posted by もっち? : July 29, 2006 12:26 PM

>もっち?さん
こんばんは。
お世話になります。
ご質問の件ですが、まずはシンプルなPHPファイルが実行できるかどうかご確認ください。
確認方法は「PHP5のインストール」の7項にあります。
これが実行できれば index.php の問題で、実行できなければPHP環境になんらかの不具合があるという切り分けができます(後者はないと思っています)。
それではどうぞよろしくお願い致します。

[38] Posted by yujiro : July 30, 2006 2:20 AM

早い回答ありがとうございます
上記のリンク先のHelloWorldと7.のテストを試してみましたが、やはり質問の時とおなじように500エラーが出てしまいます。

ということはPHP環境になんらかの問題があるということでしょうか?

宜しくお願いします

[39] Posted by もっち? : July 30, 2006 8:48 AM

>もっち?さん
こんにちは。
ご質問の件ですが、フォルダのパーミッションは755または705になっておりますでしょうか(さくらインターネットのオンラインマニュアルにそのように記載されています)。
なおこれ以上のことは分かりかねますので、申し訳ありませんがさくらインターネットにお問い合わせください。
それではよろしくお願い致します。

[40] Posted by yujiro : July 31, 2006 12:51 PM

こんにちは、いつもお世話になっております。
さて、この度、MT4へのアップグレードに挑戦しているのですが、『テンプレート「個別エントリーアーカイブ」の再構築中にエラーが発生しました: テンプレートタグMTArchiveDateでエラーが発生しました: MTArchiveDateを日付コンテキストの外部で利用しようとしました。』というエラーが出てしまいました。
私のBlogは、以前このエントリーを参考にPHPモジュール化しておりまして、おそらく「個別エントリーアーカイブ」にMTArchiveDateタグを使っているからだろうということまでは分かったのですが、どうすればいいのやら分かりません。
タグリファレンスでは、MTArchiveDateはMTArchiveList タグの中か、日付アーカイブの MTEntries タグの外側で利用できますとありますが、どうすればよいのでしょう?
アドバイスいただければ幸いです。

[41] Posted by kazu : September 17, 2007 4:32 PM

>kazuさん
こんばんは。
お世話になります。
ご質問の件ですが、とりあえず被疑箇所と思われる、MTArchiveDateを使っているタグがありましたら、それをテンプレートからはずして再構築を実行してみて頂けますでしょうか。
まずは問題となる部分を切り分けてみましょう。
それではよろしくお願い致します。

[42] Posted by yujiro : September 18, 2007 7:54 PM

yuriroさん、こんばんは。
早速ありがとうございます。
そうですね。切り分けを先にやらないといけませんでしたね。
で、早速やってみたのですが、やはり個別エントリーアーカイブの中のMTArchiveDateの部分を削除すると問題なく再構築は実行できましたので、やはりここにこのタグを使用していることだけが問題のようです。

[43] Posted by kazu : September 18, 2007 11:51 PM

>kazuさん
こんにちは。
MTArchiveDateの代わりにMTEntryDateを使ってみてはいかがでしょうか。
それではよろしくお願い致します。

[44] Posted by yujiro : September 20, 2007 4:23 PM

yujiroさん、こんばんは。
MTEntryDateであっさり解決してしまいました。
お恥ずかしい限りです。
ありがとうございました。

[45] Posted by kazu : September 20, 2007 9:27 PM

>kazuさん
こんにちは。
ご連絡ありがとうございました。
無事に直ったようでよかったです。
ではでは!

[46] Posted by yujiro : September 21, 2007 10:35 AM

yujiroさん、こんにちは。
いつも勉強させていただいてます。

とっても初歩的な確認で申し訳ないのですが、MTブログの設定→全般→モジュール設定で「サーバーサイドインクルード 」にて「PHPのインクルード」を選択しなければならない、というわけではないですよね?

そういう設定にする、とは記事内では書かれていないのですが、そこでいう「PHPのインクルード」とこちらでいってる「PHPをモジュール化してインクルード」って全然別物なのですよね?

初歩的な質問&見当違いの質問で申し訳ありません。

[47] Posted by まちもと : February 29, 2012 12:22 PM

>まちもとさん
こんにちは。
ご質問の件ですが、おっしゃるとおり、このエントリーはMT管理画面の「PHPのインクルード」を選択する話とはまったく別物です。参考までに、この記事は2005年に投稿したもので、その時点のMTバージョンは3でしたので、管理画面に「PHPのインクルード」という項目もありませんでした。

記事を参照される際には、エントリーの投稿年月をちょっと気にしてもらえるといいかもしれません。MTの各機能がいつの時点で追加されたのかについては、MTのバージョン別カテゴリや当ブログ内の検索でヒットすると思いますので、その記事の投稿年月と参照されている記事の年月を比較していただけるとありがたいです。
それではよろしくお願い致します。

[48] Posted by yujiro logo : February 29, 2012 12:53 PM

yujiroさん、こんにちは。
返信ありがとうございます。

もしかしたら、あまりに基本的なことだから書いてないのかも・・・と思いながら、古い記事とわかりつつ質問させていただきました。すみません。

でもお陰様でスッキリしました、ありがとうございます。

[49] Posted by まちもと : February 29, 2012 1:07 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)