top

Movable Type 4 ベータ2 出ました

MT4ベータ2が出ました。
Movable Type 4 ベータ2を公開

ベータ1ではボロボロだったダイナミック・パブリッシングがようやくまともに動くようになって、なんとか使えるレベルに達してきたかな、という感じです。なんといっても去年の8月からずっとダイナミック派の悩みの種だった例の問題が直っているのが嬉しい!!
それでこれまで検証してきたことと合わせて現時点で分かっていることや雑感などを書いておこうと思います。

使用できるデータベース
MT4ベータではSQLite2はサポートされなくなりました。そのためベータ2からは選べるデータベースのリストからもなくなっています。バグレポートをしたところ、sixapartからお返事いただいて分かりました。
また、SQLiteはバージョン1.10以下はサポートされなくなったようです(情報ソース:小粋空間)。
<追記>
ベータ4からSQLite2、ベータ5からSQLiteが正式対応になりました。これでMT4ではMySQL、PostgreSQL、SQLite、SQLite2の4つが使えることになりました。

インストール
新規でインストールする時には「新しいブログを作る画面」が1ステップ加わりました。また、新規で入れると見本投稿とコメントが1つずつ既についてます。
アップグレードの場合は既存のmt-config.cgiはそのまま残して行います。mt-config.cgiと3.5で作成したデータベースが既にある状態でmt.cgiにアクセスするとアップグレード画面になります。

ダイナミック・パブリッシング用カスタマイズについて
MT4からはMTタグのアトリビュートに変数が使えるようになったようです。ところが、この変数が<MTEntries lastn="$lastn">のような形で使われるため、「$xxxx」をMTタグ内でSmartyの変数として使うことができなくなったみたいです。そのため、Smartyカスタマイズでは少しタグの書き方を変更する必要があります。

●ダイナミック用頁分割の場合
<MTEntries>の部分を以下のように書き換えます。
要はlastn="x"の部分を数字にするだけなのですが(^^;。

{{assign var="epp" value=5}}
<MTEntries lastn="$epp" offset="`$smarty.request.offset`">
       ↓
{{assign var="epp" value=5}}
<MTEntries lastn="5" offset="`$smarty.request.offset`">

頁分割はMT4でも問題なく動いています。
当ブログの記事も正式版が出る頃にはMT4に対応したものに修正していこうと思っています。

●Smartyでアトリビュートに変数を読み込む場合
これまではMTアトリビュート内に使う変数に「$xxxx」と「`$smarty.capture.xxxx`」の二通りが使えていたのですが、上と同様「$xxxx」が使えなくなったので、これからは「`$smarty.capture.xxxx`」の方で統一していこうと思います(capture name="xxxx"と`$smarty.capture.xxxx`の組み合わせならMT4でも問題なく動作します)。こちらも正式版登場の頃を目途に記事を修正していくつもりです。

プラグイン
実はちょっと困ったことになってます…。ダイナミック用プラグインが軒並み動きません(泣)。AutoIncrementalVar、indexcontext、PHP PreviousNextInCategory、ことごとく全滅です。ただまだベータ版なのでもう少し様子を見ていく必要もあるかなと思いますが…。情報を集めたいと思います。

<追記>
ダイナミックプラグインの件、原因と対策が分かりました。詳細はこちらの記事(ダイナミック・パブリッシング対応プラグインの MT4 における仕様変更について)と下部のコメント欄を参照下さい。

雑感・・・
なにしろダイナミック関係のバグ検証とレポートだけで日々費やしてしまって(それほどバグが多かった)、新機能とかに触る余裕もろくすっぽなかったですけど、画像管理とかは使ってみたい気はしますね。WYSIWYGには興味なかったんだけど、半角の<>を自動で実体文字参照にしてくれるのは便利!と思いました。あとは吐き出すタグが大文字の<BR>じゃなくなれば…(今回はまだでしたが<br />になるよう検討はしてくれているみたいです)。
今はちょっと管理画面の負荷が高いようなのが気になってますが、検証のため必要以上に静的動的を頻繁に切り替えてガンガン再構築かけてるせいもあるかもです。ふつうの使い方ならもっと落ち着いてくれるかな?と思うのですがどうでしょうね。

ベータ2はかなりまとまってきてる感じではありますが、まだまだ細かいバグも多いです。なので本番環境に入れるのはおすすめしませんが、テスト環境を用意できるならトライしてみても面白いのではないでしょうか。遊びがいあります。

<2007.6.20>ダイナミック・プラグインの情報追記。

 

コメント

こんにちは、TAEKOさん。

私もやっとBeta2になって、インストールできたのでこれから試すところです。
管理画面が慣れなくて戸惑ってます。

SQLite2は、そもそも使えなくなったのですか。
てっきり選択でSQLiteを選んだ後の詳細設定で、SQLite2に設定できるのかと思ってました。

>MTタグのアトリビュートに変数が使えるようになった
そうなんですか。短縮形が使えないのはチョット面倒ですね。

お、MT4ベータ入れられたのですね!
管理画面が英語なのでウロウロしてます(笑)。
これが日本語になって慣れたら使いやすいのかな?と思うのですが。

>MTタグのアトリビュートに変数が使えるようになった
頁分割で頁の表示件数が$eppで指定された数にならず、混乱状態になったので、なんでだろう?と思ったら、こういうことだったらしいです。
Smartyとしては少し書き方が面倒になりますけど、MTタグの新しい機能は気になりますね。

>管理画面が英語なのでウロウロしてます(笑)。
そう、これでまだ同じレイアウトなら、問題ないけど、レイアウト変わった上に、テキストじゃなくて、マウスオーバーでしか表示されなかったりと、どうやって再構築するのか1時間ぐらい悩んじゃいましたよ。

試しに、複製とった今のサイトのアップグレード試してみたら、アップグレード自体は問題ないですね。

私も最初、保存した記事がどうやったらブログに表示されるようになるのか分からなくて悩みました…。
辞書片手に「ココはあの機能かな?」と見当つけながらやってます(^^;。

3.35からのアップグレード、私も確認したいことがあって実験してみましたが、既存の環境がそのまま引き継がれますね。
テンプレはそのままで新しい機能だけ手に入る形になるので、アップグレードもなかなか魅力的だなと思いました。

>ダイナミック用プラグインが軒並み動きません(泣)。AutoIncrementalVar、indexcontext、《中略》ことごとく全滅です。

あれ?動きません?
ウチでは取り敢えずテストケースは問題なく動いていますけれど。
……て、あれ。
AutoIncrementalVar は動いてないっぽい(汗)
でもindexcontextは、……あ、こっちもテストケースが足りないかも(汗) アーカイブの種類増えたの忘れてた。
ちょっと詳しく確認してみます。

>あんちもん2さん
おお! 作者様!!!

ダイナミックでAutoIncrementalVar使ったらSmartyエラーになりました(;;。試したタグはarchives.htmlの頁分割で使っているものです。静的では問題なく動くんですが…。
よろしければ確認お願い致します(切実)。

ベータ1のバグの多さから、ダイナミックも根本から作り直してるのかな?と思いましたが、何か変わったところとかあるのでしょうかね…。

>AutoIncrementalVar
昨夜動かなかったのは、MT4β2インストール先の /php/plugins フォルダにAutoIncrementalVar関連のファイルをコピーし忘れてただけでした(汗)
で、昼休みの間にちょっと試してみたところ、やっぱりとりあえずちゃんと動いている模様です。んー。
具体的に、どういうエラーが出ているか教えていただけますでしょうか。
こちらでも良いですし、ウチのブログの適当な記事へのコメントでもOKです。

>あんちもん2さん
確認ありがとうございます。試したのは以下のタグです。
<$MTSetVarAutoIncremental name="monthlyCount" value="0"$><MTArchiveList
archive_type="Monthly"><$MTIncrementVar name="monthlyCount"></MTArchiveList><$MTGetVarWithoutIncrement
name="monthlyCount"$>

出たエラーは下記のものです。
Page Not Found
Smarty error: [in mt:2 line 30]: syntax error: unrecognized tag 'mtsetvarautoincremental' (Smarty_Compiler.class.php, line 580)

タグが認識されてないような…。
/php/plugins フォルダに確かにファイル6個入っているんですけど…。

原因がわかりました(多分)。
お手数をおかけしますが、ファイル名をすべて小文字にしてみてください。
まずは、それで動くかどうか試してみてください。
それでも動かないようなら、今度は各ファイルを開いて、最初のほう(大抵2行目)の

function smarty_function_MTXXXXX($args, &$ctx) {

て書いてある行をすべて小文字にしてみてください。
これで動くはずです。

うー、今後はMT4用に全部小文字にしたファイルをようしなきゃいけなさそうだー。

追記および補足。

↑のコメント中の、中身を編集するファイルは "function" で始まる4つのファイルだけでOKです。
あと、多分↑の編集だけでは不足かも。同ファイル中の
MTSetVar
MTGetVar
という記述も全部小文字にしないと多分ダメです。

>あんちもん2さん
出来ました! ファイル名変更と2行目修正だけではまだ出来なくて、それに加えて中身の大文字を全部小文字にすることで動きました!!

大文字・小文字が落とし穴だったとは…。お仕事中お手数かけました。
ありがとうございました!!(大感謝)