MT4 beta6: default_templatesを弄りつつCSSを調整しつつ

何だかんだ言ったところでベータ6のdefault_templatesがそのまま採用されそうな予感を覚えたので、テンプレートの修正というかカスタマイズを始めました。とりあえず実行に移したのは次の3つ。

  1. /mt/lib/MT/L10N/ja.pm を眺めながら <__trans phrase=”hogehoge”> を追加してみたり
  2. asset-hoge に変更されているクラス名にCSSを対応させてみたり
  3. コメントフォームのformタグにnameが入ったままだったので削除してみたり

テンプレートが巻き戻ったら現在のモノをコメント部分だけ修正すれば良いので、どちらにせよ正式版リリース時には間に合うでしょう。そんなベータ検証用のページは以下に。興味があればご覧ください。

参考URL
cefa::blog::beta

MT4 beta6: 弄ってみた感想

コメントフォームの div と form の構造が修正されていました…で終われば良かったんですが、何か色々と文句を言いたい場所があったりして。インタフェースとかについては色々なサイトで挙げられているような不満とか無いんですけれどテンプレートについては色々とありますよ。

まず急に沸いてきたサイドバーの選択。2カラムと3カラムとを選択するのですが、選択する場所がフッターモジュールってどうなのさと。

次にテンプレート記載のクラスとID名が思いっきり変わっている件について。これまでのスタイルは全部破棄ですか?ベータ5までは着せ替えが自由にできて 3.3 との互換性もあって良いなあとおもっていたのですが、ベータ6になって急に変更って…しかも一緒にパッケージングされている vicksburg-2 とか内容変更されていないから画面崩れるし。

この段階に来てテンプレート系の大掛かりな修正が入ってくると本番リリース時に差し替える為のカスタマイズテンプレートを作っている方たちに大打撃だと思うんですよね。私もその一人ですし。クラス名の変更なんていうのは、仕様を固める段階の作業でこの場にきてやる事では無いと思います。

通るかどうかはわかりませんが、Six apartに投げてみようかと。

続きを読む MT4 beta6: 弄ってみた感想

MT4 beta6: beta5からアップグレードしてみた

via
Six Apart – Movable Type News: Movable Type 4 ベータ 6を公開

ついにベータも6となりましたね。リリースに向けての最終確認版という事でしょうか。本来であれば来週であった出荷を三週間延ばしてのバグ潰しですからSix apartの気合の入り様が見て取れます。

さて今回のベータ6。私の注目はただ一点でした。それは…

“itex2MML.pl動いてください!”

何だか祈りにも近い状態だったわけでして。結論から言いますとOKでした。問題なくフィルタメニューが表示されました。良かったですよ…ホント。後の問題は静的生成と動的生成の選択だけです。

本来であればPerl系のプラグインを利用している場合ダイナミック・パブリッシングは利用できないのですが、Perl版ダイナミック・パブリッシングというプラグインを導入すればいけちゃうんです。既にMT4対応版が公開されているので選択肢としては用意されているんですが…どうしたものかな。

とりあえずはMathMMLを捨てずにすんだので良かった…というお話でした。

参考URL
Six Apart – Six Apart: Movable Type 4 出荷延期のお知らせ
The blog of H.Fujimoto:Perl版ダイナミック・パブリッシング(MT4用)

MT4 beta5: mt.js の改修一通り完了

MT4 beta4: mt.jsを思いっきり改修してみた (cefa::blog) の続きです。

課題だった ただIEだとonclickイベントからの匿名コメントフォームの呼び出しができないみたい の解決策が見つかったという話。

via
IE の getAttribute / setAttribute: Days on the Moon

この (手抜き) 実装が原因で、getAttribute / setAttribute で class 、style 、イベント属性などを操作できないというバグが IE にはあります。具体的には以下のようにしなくてはいけません。

…という事で解決策まで提示されていたので大変助かりました。具体的には onclick の部分を書き換えるのですが、Function() から関数を呼び出そうとすると Firefox 側が臍を曲げてしまったので結局ブラウザを判別(この場合はIEとその他)して処理を分けることにしました。

if (document.documentElement.getAttribute("style") == document.documentElement.style) {
a[2].setAttribute('onclick',new Function('showAnonymousForm();'));
} else {
a[2].setAttribute('onclick','showAnonymousForm();');
}

これで一応は希望の動作をしたというわけで改修完了です。

MT4 beta5: beta4からアップグレードしてみた

via
Six Apart – Movable Type News: Movable Type 4 ベータ 5を公開

ベータ5では、Movable Type 4 Beta以前のバージョンのMovable Typeからのアップグレードがうまくできません。ベータ5.1をリリースする予定です。それまで、アップグレードはお控えください。 修正しました(2007-07-04)。

…という事で公開時のファイル名に注意です。 MT-4.0-beta5-20070703.zip が手元にある場合にはアップグレード時に問題が出るようですので注意しましょう。現在は MT-4.0-beta5-20070704.zip が公開されています。

beta4 からのアップグレードは基本的にファイルの上書きのみの様です。全ファイルを上書きした後ダッシュボードを呼び出してフツウに再構築しました。テンプレートも特に変更なし。やはりコメント部分は自分で直さねばならんのか orz

MT4 beta4: mt.jsを思いっきり改修してみた

MIMEタイプをapplication/xhtml+xmlに変更したらコメントフォームが表示されなくなったという問題。問題の大部分はdocument.writeの使用が原因なのでそこをターゲットとして修正。

writeCommenterGreeting()は殆ど書き換えてしまいました。

function writeCommenterGreeting(commenter_name, entry_id, blog_id, commenter_id, commenter_url) {
<MTIfRegistrationAllowed>
var a = new Array(3);
var text = new Array(5);
if (document.getElementById && document.createElement) {
var cfea = document.getElementById('comment-form-external-auth');
a[0] = document.createElement('a');
a[0].setAttribute('href','<$MTCGIPath$><$MTCommentScript$>?__mode=login&entry_id=' + entry_id + '&blog_id=' + blog_id + '&static=1');
text[0] = document.createTextNode('サインイン');
a[1] = document.createElement('a');
a[1].setAttribute('href','<$MTRemoteSignOutLink static="1"$>&entry_id=' + entry_id);
text[1] = document.createTextNode('サインアウト');
text[2] = document.createTextNode(commenter_name);
if ( commenter_name &&
( !commenter_id
|| commenter_blog_ids.indexOf("'" + blog_id + "'") > -1))
{
var url;
if (commenter_id) {
url = '<$MTCGIPath$><$MTCommentScript$>?__mode=edit_profile&commenter=' + commenter_id + '&blog_id=' + blog_id;
if (entry_id) {
url += '&entry_id=' + entry_id;
} else {
url += '&static=1';
}
} else if (commenter_url) {
url = commenter_url;
} else {
url = null;
}
if (url) {
a[2] = document.createElement('a');
a[2].setAttribute('href',url);
cfea.appendChild(a[2]).appendChild(text[2]);
} else {
cfea.appendChild(text[2]);
}
text[3] = document.createTextNode('さん、コメントをどうぞ。');
cfea.appendChild(text[3]);
cfea.appendChild(a[1]).appendChild(text[1]);
} else if (commenter_name) {
text[3] = document.createTextNode('このブログにはコメントする権限を持っていません。');
cfea.appendChild(text[3]);
cfea.appendChild(a[1]).appendChild(text[1]);
} else {
<MTIfRegistrationRequired>
text[3] = document.createTextNode('してからコメントしてください。');
cfea.appendChild(a[0]).appendChild(text[0]);
cfea.appendChild(text[3]);
<MTElse>
a[2] = document.createElement('a');
a[2].setAttribute('href','javascript:void(0);');
a[2].setAttribute('onclick','showAnonymousForm();');
text[3] = document.createTextNode('してからコメントするか、');
text[4] = document.createTextNode('匿名でコメントしてください。');
cfea.appendChild(a[0]).appendChild(text[0]);
cfea.appendChild(text[3]);
cfea.appendChild(a[2]).appendChild(text[4]);
</MTIfRegistrationRequired>
}
}
</MTIfRegistrationAllowed>
}

あと一番最後の MTIfRegistrationAllowed で囲われた部分。

<MTIfRegistrationAllowed>
if ('<$MTCGIHost exclude_port="1"$>' != '<$MTBlogHost exclude_port="1"$>') {
var script = document.createElement('script');
script.setAttribute('src','<$MTCGIPath$><$MTCommentScript$>?__mode=cmtr_name_js');
cfea.appendChild(script);
} else {
commenter_name = getCookie('commenter_name');
ids = getCookie('commenter_id').split(':');
commenter_id = ids[0];
commenter_blog_ids = ids[1];
commenter_url = getCookie('commenter_url');
}
</MTIfRegistrationAllowed>

この改修によりどこかのidを掴んでタグを記載するような動きに変わるのでコメント入力フォームテンプレートも改修。

<MTIfRegistrationAllowe>
<div id="comment-form-external-auth"></div>
<script type="text/javascript">
<MTIf name="comment_preview_template">is_preview = true;</MTIf>
writeCommenterGreeting(commenter_name, <$MTEntryID$>, <MTEntryBlogID$>, {hogehoge}
</script>
<MTIfRegistrationAllowed>

これでFirefoxでは確認とれました。ただIEだとonclickイベントからの匿名コメントフォームの呼び出しができないみたい。次はここの確認か…。

先は長そう。

Movable Type 4: ベータ4で色々テスト開始

via
Six Apart – Movable Type News: Movable Type 4 ベータ 4 を公開

Movable Type 4 Beta 4 より、国内のベータテスターよりフィードバックをたくさんいただいていた特定のバージョンの SQLite で動作しない問題が解決されました。

…との事でようやく実際に作業をしながら検証がすすめられるようになりました。早速動かしてみて基本動作(導入直後)はだいたい問題がない事を確認。現在、application/xhtml+xml化を実施してみて不具合を調べています。

早速コメント周りでおかしな所があったので調べてみていますが、この調子でいくと実際に使う際にはテンプレートに結構手入れないと駄目っぽいですね。とりあえず調査内容は新規にベータ版用のブログを立ち上げてそちらで行っています。興味があればのぞいてみてください。

参考URL
cefa::blog::beta

Movable Type 4: ベータ3をインストールしてみた

via
Six Apart – Movable Type News: Movable Type 4 ベータ3を公開

懲りずにベータ3をインストールしてみました。対象DBはSQLite。サインイン画面の嵐とDBI.pmの208行目でのエラーは相変わらずです。ただ今回はメニューの日本語化が図られていますのでそのあたりだけレポート。

1182405125731.png

新規にインストールする場合は、インストールする前(ウィザードがmt-config.cgiを作成した直後)に追記するのがいいでしょう。

…との事で何処で mt-config.cgi が確定するのかなんですが、次の画面になったときに生成完了されています。

1182402231390.png

ここで次の行を mt-config.cgi に追記してしまいましょう。

DefaultLanguage ja
MailEncoding ISO-2022-JP
ExportEncoding Shift_JIS
DefaultTimezone 9
CategoryNameNodash 1

後は Continue で次に進んでインストール終わって管理画面をあげてみると日本語化されています。やっぱり日本語の方がわかりやすいなあ。日本人だし。

Movable Type 4: ベータ2をインストールしてみた

via
さくらインターネット + SQLite で MT4 Beta が動かないとお嘆きのあなたへ (talk to oneself 2)

Movable Type 4: MT3 のテンプレート構成は引継ぎOKぽいとのレポート (CEFA::Blog) の時点でも完全に諦め状態だったMT4のインストールですが、ナイスなエントリに従って実施してみました。

会社の同僚に勧められた通り、ローカルに DBD::SQLite の最新版をインストールして、MT4 を SQLite で使ってみることにします。

なるほど。こういう手順を踏めば最新版のSQLiteも使えるわけですね。

1182232348802.png

ただ、エントリの作成なんかがエラーになっちゃいました。

Can’t call method “execute” on an undefined value at {hogehoge}extlib/Data/ObjectDriver/Driver/DBI.pm line 208.

ソース追いかければアレなんだけれどちょっとそこまで時間が無いな…というわけでここで終了。まあ画面見た感じは格好良くなっているっていうくらいかな。一時休戦。

Movable Type 4: MT3 のテンプレート構成は引継ぎOKぽいとのレポート

via
小粋空間: Movable Type 3.3 から 4.0 Beta 1 へのアップグレード情報

ナイスなレポートがされています。

基本的な動作は概ねOKという印象です。
MT3 で作成した、エントリー/カテゴリー(サブカテゴリー)/タグは正常に引き継がれています。各アーカイブページ(エントリー・アーカイブ/月別アーカイブ /カテゴリーアーカイブ)も正常に再構築できます(新規インストールではカテゴリー・アーカイブが生成されないという不具合あり)。

現状の構成まで変更を強制される事は無いんですね。

それでもページ生成のコンセプト自体が変わっている事もあるのでアップグレードを行うよりは新規で作成した MT4 に対してエントリをインポートした方がよいかなと考え中。序に MT3.3 から登場したタグによってカテゴリーとの住み分けがごちゃごちゃになっているので一度整理したいなあ…なんて計画を立て始めてみたり。

それよりも MathML どうするかな。それが問題かも。