Junnama Noda

DynamicMTML - 静的なHTMLにMTタグを記述できるプラグイン -

0

静的なHTMLファイルの中にMTタグ(MTML)を記述して部分的に動的生成を行うしくみを提供するDynamicMTMLプグラインを公開しました。

[DynamicMTMLの概要]
・Movable Typeのダイナミックパブリッシングのエンジンを利用して静的なHTMLファイルの中に記述されたMTML(MTタグ=Movable Type Markup Language)を動的に処理します。
・クエリ付きリクエストを独自にキャッシュする仕組みを備えています。
・静的生成とダイナミックパブリッシングとの共存が可能です。
・Movable Typeで管理していないファイルでも動作させることが可能です。

詳細は以下のページをご覧ください。
http://powercms.alfasado.net/blog/2010/03/htmlmtdynamicmtml.html

返信(6)

| 返信する
  • なんか、さっきSmartyエラー見たけど、あれって・・・


  • mtview.phpからget_mime_typeよ呼び出したときにtext/plainが返ってきます。
    get_mime_typeでは拡張子なしの値を評価しているためです。
    mtview.phpを変更しましたので、ご確認ください。

    mtview.php
    
    

    // ========================================
    // Set Content_type
    // ========================================
    require_once $plugin_path . 'get_mime_type.php';
    +++ $contenttype = get_mime_type( preg_replace('/^./', '', $extension) );
    --- $contenttype = get_mime_type( $extension );
    if ( preg_match( '/\ADoCoMo\/2\.0 /', $_SERVER[ 'HTTP_USER_AGENT' ] ) ) {
    if ( preg_match( '/\.html\z/', $existing_file )
    || preg_match( '/\.html\z/', $file ) || $extension == '.html' ) {
    $mt->context()->stash( 'content_type', 'application/xhtml+xml' );
    $contenttype = 'application/xhtml+xml';
    }
    }

    MT5.031
    PowerCMS 2.041
    DynamicMTML 1.11

    • 確認したのですが、こちらの環境ではご提示いただいたパッチを当てると逆にtext/plainになってしまいました。mrk461さんの環境でおかしなcontenttypeになってしまうようであれば、以下ではいかがでしょうか。

      $contenttype = get_mime_type(ltrim($extension, '.'));

      正規表現のコストを考えて、且つ「/^./」という表現では「.html」が「html」になり、「html」が「tml」になってしまうことからです。

  • 環境によって$extensionが持つ値の形式が違うということですね。
    検証ありがとうございます。

    $extensionは
    phpの関数path_info()か
    movabletypeので決まるようです。

    もし可能であれば、text/plainになった原因($extensionが保持していた値)を
    教えていただければ幸いです。

  • DynamicMTMLでは pathinfo の extension で得た値を get_mime_type.php (又は最新版では dynamicmtml.php の get_mime_type関数に渡します。get_mime_typeの中では拡張子とcontenttypeのテーブルをハッシュの形で持っていて、マッチしなければtext/plainを返す仕様になっています。

    ここですとレスが遅れることがあるので、できればサポートのメールもしくはサポートフォームからお願い出来ますか?

返信する