2007年6月16日

Movable Type 4.0 beta 2でのphp化とXML宣言

Posted by @Style : Entry 00:03 | Comment コメント (0) | Trackbacks トラックバック (0) 「Movable Type 4.0 beta 2でのphp化とXML宣言:Webmaster@Style」をはてなブックマークに追加 「Movable Type 4.0 beta 2でのphp化とXML宣言:Webmaster@Style」をdel.icio.usに追加 「Movable Type 4.0 beta 2でのphp化とXML宣言:Webmaster@Style」にTwitterでコメントする

php化は3.3と同様に変更できるが、php化を行ってもXML宣言記述したい。

拡張子phpとした場合にはXML宣言は以下のようになる(ダイナミックパブリッシングの場合は除く)

<?php echo '<?xml version="1.0" encoding="<$MTPublishCharset$>"?>'."\n" ?>

テンプレートにそのまま追加すれば良いのだが、moduleとしてmdlXMLDec等と名前を付け、MTIncludeで挿入したい。

<$MTInclude module="mdlXMLDec"$>

しかしシステムテンプレートはcgiなので、<?php echo ''."\n" ?>は不要となる。

MTIfを利用して分岐を作ってみる。
システムテンプレートの先頭3行目には以下の記述がある。

<MTSetVar name="system_template" value="1">

これを利用して分岐させる

<MTIf name="system_template"><?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<MTElse><?php echo '<?xml version="1.0" encoding="<$MTPublishCharset$>"?>'."\n" ?></MTElse></MTIf>

それではどこに挿入するのか。

インデックステンプレート

<MTSetVar name="page_id" value="main-index">
<MTSetVar name="main_template" value="1">
<MTSetVar name="main_index" value="1">
<MTSetVar name="sidebar" value="1">
<MTSetVar name="module_recent_posts" value="1">
<MTSetVar name="module_category_archives" value="1">
<MTSetVar name="module_author_archives" value="1">
<MTSetVar name="module_monthly_archives" value="1">

<$MTInclude module="Header"$>

<$MTInclude module="Header"$>の前に挿入する。しかし、XML宣言は必ず文書の1行目に記述することになっているのでソース上の先頭の8行と空白の1行が邪魔である。

あるブログでの以下のようなやり取りを参考にさせていただいた。

MTIf系とMTSet系など、条件分岐と設定に関するタグはパブリッシュ段階でnullに置き換えられます。 で、改行はそのまま残るので空白行が山盛りになります。

全てを1行で記述する

<MTSetVar name="page_id" value="main-index"><MTSetVar name="main_template" value="1"><MTSetVar name="main_index" value="1"><MTSetVar name="sidebar" value="1"><MTSetVar name="module_recent_posts" value="1"><MTSetVar name="module_category_archives" value="1"><MTSetVar name="module_author_archives" value="1"><MTSetVar name="module_monthly_archives" value="1"><$MTInclude module="mdlXMLDec"$><$MTInclude module="Header"$>

注意:ベータ2のスタイルシートはXML宣言があるとIE6で表示が左寄りとなります。スタイルシートに互換モード対応のカスタマイズが必要です。

追記:一部誤りがありましたので修正いたしました。

Movable Type 5用テーマ

Movable Type 4.2用テンプレート

前のエントリー:Movable Type 4.0 beta 2でWidget
次のエントリー:Movable Type version 4.0 Beta 3のMT_TRANS phrase

関連記事

トラックバック

このエントリーのトラックバックURL:
http://atstyle.biz/blog/mt-tb.cgi/771

コメント

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

スポンサード リンク

ページ先頭へ