1月に思いきりでMT3から4に入れ替えたのだが,テンプレートの書き換えやMT4では動かないplug-in(MTTagInvokeだ)への対応に手が回らず,完全にはなっていなかった.おかげでリンク集は更新できなくなっていた.故に,今回,もう一踏ん張りをやったよ.
標準機能で出来る物はなるだけplug-inを使わずに済まそうと確認していって,
- RebulidPreview(標準の管理画面で出来るようになった)
- Compare(テンプレートタグ書き換え)
- FilterCategories(テンプレートタグ書き換え)
- MTTagInvoke
を抜いた.
MT4は,新たに加わった条件タグのMTIfが超強力である.なんせ,tagモディファイアでテンプレートタグが指定でき,likeで正規表現が使えるというのがすごい.例えば,トップページでet alのところにカテゴリを出力しているのだが,
<MTCategories>
<MTIf tag="MTCategoryLabel" like="[^更新情報|フォームお返事]">
<li><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a></li>
</MTIf>
</MTCategories>
で,ここには「更新情報」と「フォームお返事」のカテゴリが出力されない.tagとlikeでかなりの条件分岐が実現できる.
作業中,記事にコメントを付けようとすると
Can't locate object method "type_handlers" via package "MT::Template::Context"
というエラーが出るようになるというアクシデントがあった.さんざん調べたのだが分からなくて分からなくて,type_handlersでgrepしたら,やっとArchiveDataFooterというplug-inが使っていることが分かった.え!それかよ!!コメントと何も関係ないところだったし,記事ページでのエラーじゃなかったから全然気づかなかった!エラーが何をやっている時に出たか吐いてくれないと困るな,もう.
結局,ArchiveDateFooterを4対応版に入れ替えていたはいいが,旧版の削除を忘れていたせいで,MT4に対応していない旧版を読みに行って定義のない変数にぶつかってエラーが出たようだ.
リンク集ページは切り離した.Movable Typeから出してはいるが別ページ(blog)だ.blog数が無制限になったし,もとから無理のある構成だったからな.ほぼMovable Typeデフォルトデザインのままだということは言わないでください.リンク集の場合は1個1個出ても仕方ないよなと思い,カテゴリアーカイブとメインページ以外はざくざくテンプレートを削除した.よって,1記事ごとのページはないし,RSSも出ない.
カスタムフィールド使って,URIとかリンクバナーとか情報を分類しておこうかなとも思ったのだが,現状,エキスボートではカスタムフィールドが出力されないので,やめておいた.
あとは,長いページの分割にPagenateを使っていたのをPageButeに置き換えた.Pagenateの方が分割ナビゲーションの出力の仕方は細かく制御できるのだが,なんせPageButeはphpにしなくて良い.ページのバックアップ取った時にローカルではphpコードに対応できないのが好きではなかったので,入れ替えてみた.まあ,そんなには困らないだろう.
コメントすると405エラーになる件は,コピペで試してみたのですが,再現性が無くて分かりませんでした.(そっちの記事はこちら)
IE6で文字コード指定し直さないと文字化けするというのは前にも言われて知っているのですが,自分でIE6をインストールしたPCを持っていないので,試すことが出来ず,修正できていません.
もしおつきあいいただけるなら,いくつか試してみていただけるとありがたいです.
- 現在,トップページは化けるか?
- リンク集は化けるか?
トップページは.htaccessにHTTPヘッダを流すよう記述を加えました.
今,ちと思いついたのは,htmlファイルはUTF-8で,冒頭にcharactersetの記述があるのですが,その記述の後で読みこませるCSSファイルはShift-JISであることが悪さしているのかなと言うことです.リンク集はCSSもUTF-8なので,こっちが化けなければあるいは?と思っています.
じゃん.「SRW」更新,うぃさんからイラストをもらいました.ゼンガー,イルイ,ソフィアの親子です.
バーター取引なので,このあと,私はゼンガーとソフィアさんとが踊る話を書かねばなりません.う.あのー,そのー,そんな期待されるような代物じゃ無いと思います.膝枕と同じく.
そういえば,日本人にあるまじきことに今年はまともに花見に行ってないですよ.雪降ったと思ったらいっきにあったかくなるもんよー.タイミング逃した.先週の土日に一気に開花したらしいです.満開は金曜かな.今日も暖かいので残りの花でも見に行きます.
私の現在のモバイルPCは4年前に買ったSHARP MURAMASA PC-MM70G,通称タテマサの1機種からバージョンアップが止まっている.AppleがMacBook Airを出して薄い薄いといばりちらす(別に威張っているわけでは......)何年も前からけっこう薄い筐体だったシリーズである.
クレイドル接続で外付けHDDと化すという便利さが代え難く,後継機が出なくなってからずっと持ち続けていたのだが,今年,少々事情があって,8月ぐらいまでにノートPCを新調したい.
今買い換えるとすると東芝のSS RXの系統になるかSONYのVAIO Type-Tになるかなあ.でも,Dynabookは職場のPCとして3台ぐらいあるからつまんないし,Type-Tだと兄貴といっしょになるしなあ.
Let'sノートは嫌いじゃないけど,厚いんだよなあ.見てくれの割に軽いし,ACアダプタも小さくていいんだけど.
などと思いながら,4月になったので,夏モデルが発表され始めるなと検索したところ.
SHARPが新Mebiusを予定.
マジかよ!
写真見た感じは厚そうだし,もしかしたらネットブック系かもしれないけど,もし万が一MURAMASAコンセプトを受け継ぐモバイルPCだったら即買いしかねない.
とりあえず,SHARPの発表まで態度保留.期待はあまりしないで待ってみる.
モバイルPCで,画面はワイドじゃなくて(モバイル系でワイド画面にしたら縦が小さすぎると誰か気付け),SSDのっかてて,薄くて,軽くて,電池の持ちが良くてACアダプタも小さいといい.(Mebiusサイトの写真はそんなふうには見えません)
本日のお宿は第2スターナゴヤというホテルである.有線LANが使えて安いところということで選んだのだ.無線は当たり外れがあるから,最近懲りている.ベストリザーブで取ったら,素泊まり3990円(現金払い特価)で取れた.
名古屋駅の太閤通口側,歩いて10分といったところか?(コレは,改札から考えているので,地図上の距離は短い)
入った途端,いかにも「けっこう年数たった安ホテルです~」感が漂っている.しかし,応対は温かくて感じが良い.
部屋はまあ狭い.ベッドと机でいっぱいいっぱいだ.ただ,内装はフロントの様相と比べるに頑張って良い雰囲気を出していると思う.
ハンガー掛けは4つある.コンセントは机の真正面鏡の下に1つ,机の横の壁にも1つ.あとは掃除のためなのかへんなところにやたらコンセントがあった.
LANの口は電話機と並んで設置されていた.LANケーブルはフロントで貸してくれる.速度は申し分ない.
部屋に設置のミニ冷蔵庫は冷却力が弱いらしく,わざわざ「最初から冷えた物を入れるように」と書いてあった.
鏡は胸より上しかないので,全身を見たい人には不向き.暖色系統の明かりしかないので,長時間の書き物や化粧には向かない.
朝食は1階でモーニングセットが350円,定食は2種類あって700円.駅の近くで店やコンビニには困らないので外で調達するのも有り.
全体的に悪くないのだが,1つ残念なのがユニットバスが狭かったこと.ホテルに泊まると夜も朝も風呂に浸かってふやけていたい人間なので.
新Mebius
まあねえ,ネットブックかなとは薄々思ったんだけど,淡い期待だけは持ってたわけよ.
あー,何買おうかなあ.
厚いけどLet's Noteにしちゃおうかなあ.
「愛用ソフト」にVistaの自動フォルダタイプ機能を停止したことを追記した.コレ,長い間挙動が分からず,どこをいじったらイイやらさっぱりで,新しいフォルダを作るたびにイライラしていたので,やっとすっきりした.
Movable Typeのスパムはformのactionを空欄にしてJavaScriptで書き戻すという方法で避けていた.
最近,そのJavaScriptがIEだと軒並み効かないという不思議現象にようやく気づいて,いったんその方法を諦めた.(コレは,JavaScriptがらみのエラーだと分かったさはらさんの情報が大きい)
しかし,2週間も経たないうちにポコポコSPAMコメントが来るようになり,おまけに保留やSPAMに入ってくれればまだしも,フィルターに入ってくれないものがあっさり公開されるので,どうしたもんかなあと頭を悩ませていた.
そして,やっと分かったこと.
単にnoscript要素を書く位置を間違っていた.
具体的に言うと,script要素の中にnoscriptを書いていたのである.あー,戻そ,戻そ.(またコメントできなかったら知らせてほしい)
これがなかなか分からなかった理由は,
- 同じページのtextarea内デフォルト文字列を消すJavaScriptもIEだけ動いていなかったこと.→ページ自体でJavaScriptが機能していないと勘違いした.
- Firefoxではどちらも滞りなく機能していたこと.→IE設定でJavaScriptを動かす設定にしないといけないのだと勘違いした.
じゃあ何で気がついたかというと,トップページではもう1つJavaScriptを使っている部分があって,これはIEでも機能していることに気がついたからである.
ちなみに,文字列を消すJavaScriptというのは,「Code-404」のフォーカスした際にフォームの内容をクリアする JavaScriptである.
フォームをフォーカスすると表示してあるデフォルトの文字列が消え,何も書かずにフォーカスが外れるとデフォルトの文字列が復活する.ページ内に何カ所かある場合も配置したエリアのidを配列指定すればよいという便利な代物である.
そっちが機能していなかったのも直したので,IEでも大丈夫だと思う.
IE6で文字化けする件が直ったかどうかは不明.
MT4iというMovableType用携帯電話向け変換プログラムを使って携帯向きな軽いページを出力しています.
ただ,このサイトではカテゴリの並べ替えにcutfirstcharというプラグインを使い,カテゴリ名に連番を振り,表示の際に連番部分をカットしています.すると,MT4iはMovable Typeのデータベースから直接データを取り出している物ですから,カテゴリ名が連番を付けたままになっていました.
いちおう解決策も示されていたのですが,私の使っているMT4iがVer3.0なので,位置が少し違っていました.
修正するファイルはmt4i.cgiです.
まず,850行目付近.ここはそれぞれの記事のカテゴリ表記のところ.
my $cat_label = &check_category($entry);
if ($cat_label) {
$cat_label = substr $cat_label, x;
$template->param(CATEGORY => 1);
$template->param(CATEGORY_LABEL => encode("shiftjis",decode("euc-jp",$cat_label)));
}
あとは,3854行目付近
if ($cfg{CatDescReplace} eq "yes"){
$label = &conv_euc_z2h($category->{column_values}->{description});
$label = substr $label, x;
と,3862行目付近
else {
$label = &conv_euc_z2h($category->{column_values}->{label});
$label = substr $label, x;
後ろの2カ所は,記事タイトル一覧の上にあるドロップダウンメニューのところの出力です.