ブログ関係のアーカイブ

約1ヶ月前にMT4にバージョンアップをしましたが、デザインはデフォルトテンプレートのまま放置して作業を進めるのを忘れていました・・・。
ほら、英語やったりアニマスやったり色々はじめちゃったからね・・・。

今日1日でどこまでできるか、手抜きの突貫工事。
細かい部分はおいおい直していくということで。
ヘッダーのパラパラアニメは、先日のアクションの練習を流用。
サイトタイトルと説明文は、いつもウィンドウ外に飛ばしてましたが、スタイルを入れ替えたときにおかしくなるので残しました。
完成したスタイルをthemesにアップロードし、スタイルの適応を押せば、再構築さえせずにデザインの入れ替え完了!
StyleCatcherサイコ~。

英語の勉強は1.5時間。
アニマスでの作業時間は0.5時間。

●MTRemoveBlank プラグイン
テンプレートの#betaや#gammaにあるリストタグまわりに改行が入りまくってソースコードが美しくないので、テンプレートのサイドバーを開いて、<MTRemoveBlank>~</MTRemoveBlank>で囲んでみました。
おお~、月別アーカイブまわりがだいぶスッキリしました^^

編集箇所:テンプレートモジュール>サイドバー

#footerやエントリー周辺もいじってみましたが、大元のテンプレートをいじればこまごま修正しなくてもいいことに気がついたので、indexとarchives.html、アーカイブテンプレートのウェブページ、ブログ記事、ブログ記事リストの5種類を修正してみました(手間としてはモジュール別に修正するのとあまり変わらなくなってしまったかも?)。
サイドバーは、これらのページにどう呼び出されているのかよくわからなかったので、とりあえず前述の方法のままで。

●エントリーを書いている時に、勝手に自動保存させない。
エントリーを書きながらバックグラウンドでサイトの再構築をしていたりすると、記事が消えてしまったりする事故が・・・。
勝手に動くな~、ということで、自動保存間隔を抑止する を参考に変更してみました。こちらではmt/tmpl/cms/edit_entry.tmpl の1130 行目となっていますが、191行目にありました(4.1だから?)。
これで効いてるのかな?

●カレンダー
エントリーがある日のところのリンクが目立たないので、エントリーがある日のtdに背景色のクラスが入るようにしてみました。
<mt:CalendarIfEntries>
<td class="entryday">
<mt:Entries lastn="1">
<a href="<$mt:EntryPermalink$>"><$mt:CalendarDay$></a>
</mt:Entries>
</mt:CalendarIfEntries> <mt:CalendarIfNoEntries><td><$mt:CalendarDay$></mt:CalendarIfNoEntries> <mt:CalendarIfBlank><td>&nbsp;</mt:CalendarIfBlank></td>
(※見やすいように改行しましたが、テンプレートでは1行で記述。)
編集箇所:ウィジェットテンプレート>カレンダー
編集箇所:スタイルシート>StyleCatcherの記述の下に追加

あと、5月末にAsset Handlerを入れた際に消してしまった画像は、やっと復旧させました。
星と習字の写真が主で、星は大きい画像が残っていたのでそこから作り直し。習字は練習していた紙を残していたので、再度撮影しました・・・。
習字は放っておいてもよかったんだけど、壊れアイコンがあちこちにあるのが、どうも生理的にね・・・。

英語の勉強は2時間。
アニマスでの作業時間は3時間。

MT4から、テンプレートの編集に余計なスペースや改行が入るのがイヤだなあと思っていましたが、やはり同じことを考えている人がいて、ステキなプラグインを公開してくれていました。

MTRemoveBlank

カレンダーとか条件分岐がいっぱいあると改行も増えるので、見やすさを無視して一行でタグを書いてましたが、これさえあれば問題なし。後日ためしてみます。

英語の勉強は2.5時間。

Movable Type 4.1:MT-Plugin-FCKeditorカスタムキットVer.2 を使って、画像を挿入した時のソースをMT3と同じ形にしました。このプラグインは、アップロードの際に細かい指定もできるの優れものですが、設定にはかなり苦戦。

苦戦の理由は、パーミッションの設定を変更しないといけないことに気がつかなかったこと。
画像はいつもimagesディレクトリに入れてるんですが、なぜかプラグインがこの中にフォルダを作ろうとしてパーミッションエラー。
どっかに設定があるのかと探してみたら、同じconfig.phpの122行目にファイルタイプがimageの時はimageフォルダの中にファイルをアップする指定があった。
画像しかアップしないので、そんな余計な気遣いは無用です。ここはブランクにさせていただきました。

さて、これで画像のアップロードに関してはスッキリしたのですが、このプラグインの使用条件、テキストフォーマットが「リッチテキスト」での編集なんですよ。これが苦手で・・・(ずっと「改行を変換」で通してきたので)。
エントリー画面のブラウザのステータスバーに、スクリプトエラーのアイコンも出てるのも気になる。
画像を挿入した時、コードの記述が img height="" alt="" width="340" src="" の順番になるのも微妙に気になりますが・・・。

ボタンがずらずら並ぶのは、こちらを参考にすればなんとかカスタマイズできました。
カスタムキットを使っていると、mt-static/plugins/FCKeditor/js/fck_editor.jsの8行目は、ToolbarSet: "Custom",なので
mt-static/plugins/FCKeditor/fckeditor/fckconfig.jsの114行目にあるCustomを編集してみた(別の名前のセットを作ってもいいですが)。
必要なものを選んで、ここまで削ってみました。
カスタマイズした編集画面のツールバー
デフォルトだとエントリーのテキストエリアが2行くらいになってしまい、いちいち枠を広げる必要がありましたが、これだとエントリー画面も広々です(なんでか知らんけど)。

あ、でもこのプラグイン使うとポップアップ形式で画像を埋め込むのはムリかも?
HTMLを自作してからアップロードするんだろうか・・・。

英語の勉強は2時間。

ここ数日、たくさんの画像を記事内に入れましたが、この作業がなかなかの苦行。
以前のバージョンと比べてアップロードまでの時間が長く、余計なタグも山ほど入ります。
複数の画像がある時は、めんどくさいので全部FTPでアップしてました。
こちらにあるStylelessImageを使わせていただいたのですが、消せるのはclassだけでした・・・。
そうではなく、バージョン3の時と同じようなシンプルな形にしたいのです;;

「画像の挿入」を使わないとアイテムとして扱われないようなので、とりあえず画像を一括で管理できるAsset Handlerというプラグインを入れてみましたが、思わぬアクシデントが!!!
画像の登録方法が3択になっていますが、全部登録する方法しか動かないので、あとでアイテムから消せばいいやと思っていたのですが・・・。
アイテムから削除すると、サーバー上からもきえてしまうんですよ!!
途中でふと疑問に思って確認してみたら・・・。
データベースのバックアップは取っているけれど、画像のバックアップはないです・・・;;
あ~あああああああああああああ~・・・、やっちまった(泣)

英語の勉強は2.5時間。

ウォーキングの記録と英語の勉強時間をカスタムフィールドで作ってみた。
さすがに必須にチェックは入れられない・・・。

新規モジュール「歩数と勉強時間」をつくり、下の2つのテンプレートに<$MTInclude module="歩数と勉強時間"$>として入れるだけ(とりあえず追記の閉じタグの下)。
編集箇所:テンプレートモジュール>ブログ記事の概要と、テンプレートモジュール>ブログ記事の詳細
テンプレートの中身は、カスタムフィールドを作ったときに、保存ボタンの上に「テンプレートの例」が隠れているので、それを参考に。
直したくなったら、テンプレートモジュール「歩数と勉強時間」だけ直せばいいので楽チン。

さて、ここ数日、久しぶりにウォーキングをしてます。
といっても、今までみたいには歩けないので、よろよろとご近所をうろつく程度。
血糖値がヤバイのよ、今。

今日の万歩計は3092歩。
英語の勉強は2.5時間。

●カスタムフィールド
どんな使い方をするのか見てみたところ、なかなか面白い。
エントリーの編集画面に好きな項目を追加できるので、ダイエットなどで毎日同じ項目を記入する場合などに活躍しそうだ。今日の腹筋回数とか、体重の増減などを必須項目にすれば、イヤでも目に入る。
ワタシのように意思の弱い人間には特に強制力を持たせられるかも・・・。

カスタムフィールドを本文中に表示するには、テンプレートにタグを追加してやる必要がある。モジュール化しておけば、後々ラクになるかもしれない。

●RSS
今までMixiではindex.rdfから更新情報を拾っていたみたいなんだけど、MT4.1にはindex.rdfがない。
とりあえずatomに修正したけど、どれが一番普及しているんだろう。
この分野も疎いなあ・・・。

●StyleCatcher
どうやってデザインを変えるかという問題ですが、一度StyleCatcherを使うとデザイン>テンプレート>スタイルシート(style.css)に読み込んでいるスタイルのパスが表示されます。
例えば、デザイン>スタイル>規定のスタイルからHills Pinkを選ぶとこんなカンジ。

/* This is the StyleCatcher theme addition. Do not remove this block. */
@import url(http://www.xxx.com/xxx/mt-static/themes-base/blog.css);
@import url(http://www.xxx.com/xxx/mt-static/themes/hills-pink/screen.css);
/* end StyleCatcher imports */

mt-static/themes-base/の方は触らずに、mt-static/themes/hills-pink/をFTPでダウンロードして中身を確認。
hills-pinkのフォルダ名と中身を変更して同じ場所にアップすれば、規定のスタイルに自分で作ったスタイルが反映します。
こうやって登録しておけば、いつでも他のスタイルに変更できるし、3カラムから2カラムへのレイアウト変更も自由自在。ただし、レイアウトを制御している部分を触る場合は慎重に。

●テンプレートセット
プラグイン機能としてテンプレートセットから自作する方法もあるんですが、何度やってもうまくいかず・・・。
テンプレートのコードを改変した時や、アーカイブマッピングの設定などをしなくて済むようなので、できれば便利なんでしょうね。
これは今後の課題としてとりあえず保留。

追記:(タイトルがわかりにくかったので変えました。中身は昨日とほぼ同じです。)

デザインは据え置きですが、テスト環境のままとりあえず暫定リニューアル公開。

●ページ分割プラグインで記事が指定数に足りない場合、<$MTPageLists$>がリンクなしの1として表示される部分の回避方法

MT側の条件分岐で表示の方法を変えてみた。
もともと入っていたdatebased_archiveの条件分岐が何を指しているのか今までわかっていませんでしたが、これはカテゴリー以外の月とか日付別アーカイブを指すものでした。
月別アーカイブでページ分割プラグインは必要ないので、この部分はデフォルトに戻す。

<MTIf name="datebased_archive">
<MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
</MTEntries>

<MTElse>
<MTSetVarBlock name="myValue"><$MTEntriesCount$></MTSetVarBlock>
<MTIf name="myValue" gt="50">
<MTPageContents count="50">
<MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
<$MTPageSeparator$>
</MTEntries>
</MTPageContents>
<div class="for_pagebute">Page: <$MTPageLists$></div>
<MTElse>
<MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
</MTEntries>
</MTIf>
</MTIf>

条件分岐は、「月別アーカイブの場合と、それ以外の場合」。
それ以外の場合に、「エントリー数が50より多い場合と、それ以外の場合」となっています。
編集箇所:アーカイブテンプレート>ブログ記事リスト

あちこちに参考にして条件分岐の方法を考えてみたけれど、イマイチMTSetVarとMTSetVarBlockの使い分けがわからん・・・。

Another HTML-lint gateway でチェックしてみたところ、気になるのがこの3つ

■<address> を <span></span> 内に書くことはできません。<address></address> 内に <span> を書くことはできます。

減点9のエラーのため、<span class="byline vcard">は削除。意味ないみたいだし。
編集箇所:テンプレートモジュール>ブログ記事のメタデータ

■スタイルの.asset-footer
各エントリーの区切り用なんだが、HTML上では<div class="asset-footer"></div>になっていて減点対象になる。
自分のテンプレだけで運営する場合は削除してしまえばいいのだが、StyleCatcherを使いたい場合は残さざるをえない。

■<A> のアンカー `XXXX` は NN行目で異なるリンク先を指しています。

ムリヤリtitleを付けました。
<a class="permalink" rel="bookmark" href="<$MTEntryPermalink$>" title="<$MTEntryPermalink$>の個別ページ">個別ページ</a>
<a href="<$MTEntryPermalink$>#comments" title="<$MTEntryPermalink$>のコメント">コメント(<$MTEntryCommentCount$>)</a>
<a href="<$MTEntryPermalink$>#trackbacks" title="<$MTEntryPermalink$>のトラックバック">トラックバック(<$MTEntryTrackbackCount$>)</a>
編集箇所:テンプレートモジュール>ブログ記事のメタデータ

昨日のつづき ---------------------------------------

●ウィジェットの月別アーカイブのタイトルにアーカイブページへのリンクが来るのは、こじつけっぽくないか?
月別アーカイブのリストがあって、そこに飛ぶというのなら意味が通じるのだが・・・。
とりあえず削除。
編集箇所:ウィジェットテンプレート>月別アーカイブ

●続きを読むの表示をちょっと修正
編集箇所:テンプレートモジュール>ブログ記事の概要

●アクセス解析タグをどこ入れるか
これを入れると1行増えてしまうので、bodyやfooter-contentの閉じタグ前に入れたらデザインに影響する。
とりあえずalpha-innerの閉じタグ前に入れてみた。
alpha-innerの閉じタグがどこにあるかというと・・・
編集箇所:テンプレートモジュール>フッター の1行目がalpha-innerの閉じタグ。

●カテゴリーアーカイブのpage-titleの中で、カテゴリ名が斜体になるのを修正。
英文ならともかく、日本語での斜体(プラス太文字で)はあまりイケてるとは言い難い。
編集箇所:アーカイブテンプレート>ブログ記事リスト

●ページ分割プラグインを使った部分の見栄えを変更
記事が指定数に足りない場合、<$MTPageLists$>がリンクなしの1として表示される。
Google方式で言えば、ここは何も表示しないで欲しいのだが、今のところ回避方法はなさそう。
編集箇所:アーカイブテンプレート>ブログ記事リスト

●トップページだけページのタイトルに文章追加。
編集箇所:メインページ>5行目<$MTBlogName encode_html="1"$>の横

●記事の投稿日の表示方法を変更
タイトル下に投稿日等が来るのも気に入らないが、とりあえずデフォルトで。
編集箇所:テンプレートモジュール>ブログ記事のメタデータ>MTEntryDate formatの2箇所
編集箇所:テンプレートモジュール>コメント詳細
(<a href="#comment-<$MTCommentID$>">
<abbr class="published" title="<$MTCommentDate format_name="iso8601"$>">
<$MTCommentDate$></abbr></a>)
のところを
&nbsp;&nbsp;<abbr class="published" title="
<$MTCommentDate format_name="iso8601"$>">
<$MTCommentDate format="%Y.%m.%d %H:%M"$></abbr>
に変更

●プロフィールなどをウェブページに
デフォルトだとサイトルートにファイルが出来てしまうので、フォルダを作ってみたが、今度はそのフォルダ名がページに表示されてしまう。これも必要ないので削除。
編集箇所:ウィジェットテンプレート>ページ一覧ついでに言うなら、ウェブページ、って名称が気に入らない。
「ウェブページ?何それ?」というところなんだが、他に名称が思いつかない。「個別ページ」エントリー個々のページで使ってるし、「その他」っていうのもあんまりだし・・・。
直すなら、編集箇所:ウィジェットテンプレート>ページ一覧

●アーカイブページから、エントリーリストの下に出る月別アーカイブ、カテゴリーアーカイブを削除。
ページ右に載ってるんだから必要ないでしょ。
編集箇所:アーカイブインデックス

●カテゴリーを任意の順番に直す
このプラグインすごい!
今までカテゴリー名に連番振ったり、あれこれ工夫していたのを一発解決。
カテゴリーとフォルダを並べ替えるプラグイン(MT4以降用)
編集箇所:MT4.1のテンプレートで書き換えるのは、TopLevelCategoriesで検索して出てくる4箇所のみ。

●エントリー数が多すぎて、日記のカテゴリーアーカイブの表示が崩れるのを修正
アーカイブだけページ分割プラグインで50件ごとに区切ってみた。
静的ページ用ページ分割プラグイン:PageBute

PHPでなくてもできるところがすごい!
ただ、「次へ」「前へ」のリンク先がおかしい気がする。
Googleだと10の「次へ」は11だが、こちらでは見ているページの次の数字になる(2ページを見ているなら、「次へ」は3ページにリンクされる)。
別に間違っているわけではないのだろうけど、慣習というか慣れだよね・・・。
編集箇所:アーカイブテンプレート>ブログ記事リスト>モジュール:ブログ記事の概要をはさんでいるMTEntriesの2箇所

●カレンダー
条件分岐が多いので、ソースにムダに改行が入るのが気に入らないので修正。
日付が一桁のときにずれて表示されるので、センターリング。
編集箇所:ウィジェットテンプレート>カレンダー
編集箇所:スタイルシート>StyleCatcherの記述の下に追加
.widget-calendar td,.widget-calendar th {
text-align: center;
}

ところで、カレンダーは<div class="widget-calendar widget">で囲われているんだが、
クラス名にスペースって入れられたっけ(この部分に限らず、ウィジェットのコンテンツはこの方式のクラス名みたい)?
.widget-calendar widget tdでは認識しないので、しばらく困った。

●最近のコメント
誰それからのコメント、という部分を削除。
trim_toは、コメント本文から何文字抜き出す、というところ。これは削除。
remove_htmlがあると、コメント本文にある改行などのタグを消すようなので、これも削除。
編集箇所:ウィジェットテンプレート>最近のコメント
リストの位置を修正
編集箇所:スタイルシート>StyleCatcherの記述の下に追加
.recent-comments-list {
margin: 5px 0;
list-style-type: none;
}
.recent-comments-list li {
line-height: 140%;
}

●本文の中にある画像の上下にゆとりを。
編集箇所:スタイルシート>StyleCatcherの記述の下に追加
.asset-body img {
padding: 5px 0;
}

●ヘッダーのメタタグ等をトップページとその他のページで分けたい場合の条件分岐。
今日のSEO:Movable Type 4.1で簡単楽々SEO
編集箇所:テンプレートモジュール>ヘッダー
headタグ内にある<$mt:var name="html_head"$>がテンプレート先頭の<mt:setvarblock name="html_head" prepend="1">~</mt:setvarblock>の中と置き換わるので、この中に書いてやればよい。

去年MT4がリリースされて以来、何件かMTの案件はあったのですが、テンプレートが複雑すぎて手に負えず、今にいたるまで導入を避けていましたが、MT4指定の仕事も見かけるようになってきたため、いつまでも逃げ回るわけにもいかず、とりあえず自分のところでテストしてみよう、という次第です。

以前のテスト時から原因不明だったのがコレ。
・MT3のデータベース(SQLITE)だけMT4に放り込んでアップグレードしてみたものの、MT4のテンプレートがアーカイブテンプレートに引き継がれない。
・インデックスのアーカイブのリンク先が認識されない。

Mixiで聞いてみても反応が薄かったので、他の人がどうやってMT3からアップグレードしているのか検索してみたところ、不具合の原因はアーカイブマッピングの設定をしていなかったせいでした。

なん~だ~、そんなことかよ~・・・・。
だってSix Apartの説明、これしかないんですよ。気がつくと思います?

アップグレード後、Movable Type 4 の標準のテンプレートを利用するにはどうすればよいですか

マニュアルを見直したら、このページの下の方に書いてありましたがね・・・。

ほかにもアップグレードにまつわる不具合、ハマる箇所もあるようです。
MT4の標準テンプレートなんか捨てちまえという意見も見かけましたが、請負仕事の場合、そういうワケにもいかないのよねえ。
MT4の新機能を使うためには標準規格に沿わねばならず、規格に沿うとメンテナンス性がいちじるしく悪くなりそうなジレンマ。
うう~・・・、どうしたらいいんだ。いや、やるしかないんだけどさ。

Sixapartの日本語プラグインディレクトリがだいぶ充実してきたので、色々なプラグインを入れてみました。

UploadDir
これ、すごくいい!
画像やムービーなどをアップするときのディレクトリを、拡張子別に自動で振り分けてくれるんです。
毎回画像をアップするときに面倒だったのが解消!

TBPingLinkLookup
こっちのサイトへのリンクがないトラックバックを、スパムとして弾くみたいです。
効果のほどが楽しみですな。

BigTemplateWindow
テンプレートを編集するときに、タグの入力を補助してくれるもの。
インターフェイスがややチープなのが気になりますが、なかなか便利そうです。

今日の万歩計は8675歩。
今日のお昼もオートミールでした。
明日もたぶんオートミールです。凝りやすいAB型の性です。
コレ、けっこう腹持ちいいみたいですよ。晩御飯まで間食なしでOK。

先月、MTのスパム対策をしたんですが、先週あたりから再び迷惑トラックバックがつきはじめてしまいました。
リネームくらいじゃ1ヶ月ももたないのね・・・。

ということで、MTのバージョンを3.33から3.34に上げて、トラックバックのURLをjavascriptで書き出す方法を取りました。さて、効果のほどはどうでしょうか。

・・・なんて、油断してたら、いきなりスパムコメントが大量に付き出しました。
バージョンアップで、何か設定が変わったかな?

今日の万歩計は12380歩。
山の下のスーパーまでジョギングで下って、買い物して帰ってきました。
帰りは歩きです、もちろん。ヒザがガクガクして、動けねえ~。
バスで帰ろうかと思ったよ。

チカッパに移転して4ヶ月くらい経ちましたが、どうにもサーバーが重い気がする。
ページの表示が異常に遅くないですか?ウチのサイト。

たまにタイムアウトするし、ロリポの方がマシだったんじゃなかろうかと後悔している今日この頃です。

もしかしたら、サーバーのせいでなく、スパムの集中砲火でも浴びている可能性もあります。迷惑トラックバックにコンスタントにスパムが付くし、なんだか人気サイトにでもなったようです。

MT標準のプラグインでかなりスパムを弾いてくれているんですが、CGIが動いてしまっては意味がないので、ちょっと対策をしてみることにしました。

スパムトラックバックが激減! を参考に、$MTEntryTrackbackData$の削除と、リネームを実行。

あと、JavaScriptを使ってスパムによるCGIの過負荷を防ぐ という手段もあるようなので、場合によっては導入させていただこうと思います。

ついでに、今更ながらバージョンを3.33にしました。
3.31からだと上書きするだけでいいんだっけ?
なんかメッセージとかでなかったかなあ・・・とやや不安。
しばらくやってなかったから忘れてちまいまちた・・・。

自分のブログをなんとなく眺めていたら、表示されていないところがあることに気がつきました。
MTEntryAuthorDisplayNameの部分が3.3からセキュリティ対策のため使われないようになっていたそうです。
ガーン、ずいぶん長い間気がつかなかった。
バージョンアップしたのはいつだったろうか・・・。

ずっと同じデザインテンプレを使いまわしていると、思いもよらない落とし穴があるかもしれないなあ。

個別ページのファイル名を、年/月/日時分.phpの形に変更

<$MTArchiveDate format="%Y"$>/<$MTArchiveDate format="%m"$>/<$MTArchiveDate format="%d%H%M"$>.php

覚え書き
カテゴリーはこうなってます。
<$MTCategoryLabel$>.php

古いファイルは、しばらくサーバーに残しておくべきか。

携帯からの投稿可能なサービス発見!
MTmail

MTという名前でも、MT専用ではないそうだ。

MT3.3が正式リリースされましたが・・・、しばらく入れるのやめとこ。
前回不具合あったもんね。
パッケージとデータのバックアップも忘れずに~。

日本語版プラグイン・ディレクトリが公開されたので、そっちの方を確認!

Mixiで条件分岐がうまくいかないって人がいたので、身を挺して調べてみたんだが、本人退会してるし・・・。

せっかくうまくいったので、やり方を書いておこう。
そのやり方とは・・・・!

標準タグに、自分でつけたフィールド名を入れてあげるだけ。
た、単純~・・・。

フィールド名がweather testの場合

<MTEntryData field="weather test">
<MTEntryDataIfFieldValue>
<MTEntryDataFieldValue>
</MTEntryDataIfFieldValue>
</MTEntryData>

以前のバージョンは知りませんが、これで動きましたよ。
設定画面にある、Required? は必須項目にしますか?という意味なので、ここにチェックを入れると当然条件分岐はできません。

あと、バグだと思うんだけど、フィールド削除してもデータがどこかに残ってて、設定画面から消えてもエントリー画面には出てきちゃうんです。
こっちの方が困った・・・。

うちの運営環境はこちら。
ロリポップ、SQLite、Movable Type 3.2-ja-2

Custom Fields のデータ自体はMTと別に保存されるので、バックアップはどうやって取るのか不明。
phpのフォルダに入ってたファイルにでも記録されてるのかね?

参考サイト:CustomFields で入力項目の追加

このページの左にある「最近のコメント」欄ですが、今までコメントが付いたエントリーを7つ呼び出していました。
ただ、これだと記事の並びがエントリーの日付順だったので、どこに新しいコメントがついたか分かりにくいため、これを

<MTEntries recently_commented_on="7" sort_order="ascend">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
<MTComments>
<div class="comment">
<$MTCommentBody$>
<p class="comment-footer">Posted by <$MTCommentAuthorLink show_email="0"$> : <$MTCommentDate format="%Y.%m.%d"$></p></div>
</MTComments>
</MTEntries>

新しいコメントが上に来るように変えました。

<MTComments lastn="8" sort_order="descend">
<MTCommentEntry>
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></MTCommentEntry>
<br />
<div class="comment">
<$MTCommentBody$>
<p class="comment-footer">Posted by <$MTCommentAuthorLink show_email="0"$> : <$MTCommentDate format="%Y.%m.%d"$></p></div>
</MTComments>

でも、これだとエントリーごとの区切りじゃないから、コメントの前後が時系列にできないんだよね~。なんかうまい方法はないかな・・・。

販売開始されたというニュースがありましたが、まだベータ版ですよね?
http://japan.internet.com/busnews/20060614/2.html

日本語版プラグイン・ディレクトリは熱望していたので、期待大です!

コメントスパムのブームが収まらないようなので、MTに標準でついている SpamLookup の設定を見直してみた。

システムメニュー > プラグイン > SpamLookup - Link > 設定を表示
”超えた場合に「未公開」にする” のチェックを外す。
”超えた場合に「迷惑コメント/トラックバック」にする” を4にする。

コメント欄にリンクを含んだ書き込みがあると未公開になっていたのを、一発退場になるようにした。

システムメニュー > プラグイン > SpamLookup - Keyword Filter > 設定を表示
迷惑キーワードに http 4 を追加。

リンクタグを含まないけどURLは含む書き込みも、一発退場。
こんなやつ。

Thank you!
[url=http://xxx.com]My homepage[/url] | [url=http://xxx.com]Cool site[/url]

これでしばらく様子を見てみよう。

SpamLookupの情報が何かないか探していたところ、blog.bulknews.netさんのところで、BanASCIIというのを配布しているそうです。

Ogawa::Memorandaさんでは、パッチを配布。

標準のままで防げなくなれば試してみよう。

MTのログを見たら14日の分に、

「Internal callback」は、次の理由で使えません: アップデート中にSQLエラーが発生しました: database is locked(5) at dbdimp.c line 401

というメッセージが出ていた。はて、なんじゃろ?
同一時間帯に、知らない2つのIP。

データベースエラー?ハッキング?
そういえば、この時間帯はコメントスパムが大量に来たときだ。

データベースがロックされているので、Internal callbackは使えませんという意味かな?
スパム用のロボットでコメントにアクセスしたけれど、何かの命令のcallbackができなかった?
あるいは、スパム用のロボットで直接データベースに書き込もうとしたけれど、ロックしてあってできなかったとか。

このメッセージは初めて見たけれど、新種のスパム?
外部のプラグインでスパムを弾いたときもログにメッセージが出たと思うけど、こういう文章じゃなかったなあ。

朝、メールのチェックをしたら、このサイトにコメントが着いたというお知らせメールが大量に来ていた。
3.2-ja-2 にバージョンアップしてから、初めてのコメントスパム。
コメント欄にURLが入っていたので、未公開扱いになったらしい。
ほほう、3.2-ja-2 のスパムフィルターは、そういう動きをするんだ、と初めて目の当たりにしたわけです。

うちは、コメントの投稿にメールアドレスを要求する他は、とくに制限がない。
以前のバージョンで運営しているときは、いろいろなプラグインを試していたんですがね。

まあ、しばらくまた様子を見るということで。

Mixiでおもしろい技が紹介されていたのでメモ。

普通にカテゴリ表示すると文字コード順になってしまうけれど、任意文字を< >で括って
<MTCategoryLabel decode_html="1" remove_html="1">
とすれば、括ったところは消えるけれど、< >に書いた順で並ぶ。

ほ~、よく考えたもんだね。

特定のカテゴリーを複数表示させたい、というリクエストがあったので、そのくらいなら標準でできたと思ったのですが、やってみるとなぜか動かない。

ヘルプに
<MTEntries category="Foo AND Bar">
というのがあるんですが、これって今ダメなのかな?
カンマ区切りにしたり、いろいろやったんですがダメなようなので、カテゴリー用のプラグインを入れました。
なかなか優秀なプラグインみたいですが、他のプラグインとあたる可能性もあるので、しばらく暖かく見守る、ということで。

昨日はこたろうの予防注射に出かけた。
すばやくおしりにぷすりとされたこたろう。かわいそうだにゃあぁぁ。
去年は注射の後、熱っぽくなったので注意して様子を見なくては。

お正月に買いだめした日本酒がなくなったので、晩御飯を買いに行ったついでに「磯自慢」をゲット。
あまり期待していなかったんだけど、これはうまい!
これの大吟醸だったら、さぞかしうまいことだろう・・・ダラリ。
お正月に飲んだ正雪の純米大吟醸もめちゃくちゃうまかったし、静岡の酒はなかなかいいじゃないか。
磯自慢

夜、酒自慢の日記でも書こうとしたら500エラー。
サーバーは動いているようだが、めちゃくちゃ遅い気がする。これがロリポップ特有の不具合ってやつ?
ググってみると、ロリポップのMySQLはMTと相性が悪いという記事もあり、SQLiteに変更することにした。
Movable Type 3.2のSQLite移行方法を見ながらOgawaさんのmt-db-convert.cgiを使ってみたけれど、エラーですすまなくなったので、とりあえずあきらめて寝た。

今日は朝早くからこたろうが布団の中に入ってきた。寒いのかな?
だいぶ元気がない。ご飯も手付かず。昨日おなかの調子も悪かったみたいだし心配だ。
布団を片付けたら、こたつに入ったまま出てこなくなった。


午後からSQLiteの続きをやる。
ちなみにこれをやったときのうちの環境は、ロリポップ、PHP、MySQL、MT3.2-ja-2 です。

mt-db-convert.cgiをmt.cgiと同じディレクトリに放り込み、パーミッションを700にしてmt-db-convert.cgiにアクセス。
Destination DB Configurationの設定画面になったら、左側はDBPasswordのところだけ入れる。
右側はデータベースの転送先に、こんなカンジでファイル名まで指定してあげるとエラーがでないみたい(・・・/mtokiba/db までしか書かないとエラーが出た。)。
/home/sites/lolipop.jp/users/lolipop.jp-dpxxxxxxxx/web/mtokiba/db/sqlite.db
lolipop.jp-dpxxxxxxxxは自分のパスを参照、mtokibaも自分がmt.cgiを置いてるフォルダ名に。そこから下は任意の名前で。

昨日の夜やったときは、この形でもエラーが出たのだけど、なぜか今日はできた。
混雑する時間帯はできないとか?ロリポならありえる。
あと使っていないテンプレートは削除しておいたほうがよさげ。コンバート中のメッセージに文字化けして表示されていたので。
また、初期テンプレートを呼び出すらしく、index.phpのほかにindex.htmlが出来てた。
index.htmlの方を消さないと再構築時にテンプレートのエラーが起こる。

MySQLから引越しすると忘れがちですが、dbに以下の内容で.htaccess入れましょうね。
<Files *>
<Limit GET>
deny from all
</Limit>
</Files>

さて、SQLiteの使用感はいかに!

デフォルトのテンプレを使っていても、コメントのプレビュー時にエラーが出るのが気になっていたんですが、小粋空間さんで回避策発見。
ありがたや~。

だんな様のBlogをでざいん中。
カレンダーを横にしてみた。
エントリーのある日の背景に画像をおいてみた。
・・・サファリだけうまくいかない。
余白の高さだけうまくよめないらしい。なんでだ~・・・、というのがずっと続いています。

flashのカレンダーにしてみようかと思ったけど、あまりのソースコードの長さに退散。
もっとシンプルにいかないもんかねぇ。


ところで、最近自分の後姿を鏡で見たことはありますか?
風呂上りに、鏡に向かって見返り美人風に振り返ってみてください。
つま先まで鏡に映すことがポイントです。
私はかなりの衝撃を受けました。
そして今度こそダイエットしようと思い、ここ1ヶ月間体重をカレンダーに記入し続けていたんですが、昨日の体重と1ヶ月前の体重の増減は0でした。

プラスでないだけ良かった、と何事もプラス思考に解釈。

リンク先をtarget="_blank"にしたいって人がいたんで、つらつらググってたら、「target="_blank"」をやめたを見つけた。

W3C的には非推奨、それどころかXHTML1.1以降では廃止されてるそうだ

がびーん、そうなんだ。
まあ、新規ウィンドウなんて開きたいときに自分で開いてたらから、いらないって言えばそのとおりなんだが、クライアントに説明するときはどうするねん。

W3Cにしたがわないと検索エンジンの順位が落ちますよ、とか。

携帯から画像を送って、Flashで読めないかなあ、というのを2年前からやってたんですよ。
ぴくちゃぼからはじまり、写メール BBSで画像を送って、CGIでファイル名を拾って、Flashで読み込んで・・・という涙ぐましい努力をしてきたんですが、最近はMTのXMLから画像をひろって表示、というのがトレンドらしい。

んで、じゃあ携帯から画像を送れるシステムはというと、本家のMTにはないんですよね。
後発のシステムや、無料のBlogにはみんな付いてるんですが、何ででしょうね。
以前、ヒラタさんという方のシステムを使わせてもらったこともあるんですが、やっぱり個人の好意に甘えるのも悪い気がする。
とはいうものの、RSSの編集ができて、携帯から画像を送れる無料のblogって他に無いんですよ(あるかもしれないけど見つけられんかった)。

というわけで再びヒラタさんのお世話に・・・。

ところが、何度やっても設定がうまくいかない。
原因はこれでした。
携帯だけのアカウントにシステム権限を与えていいものか・・・。
パスワード設定したら、権限外してもいいのかな?
大丈夫みたいだな・・・。

Image::MagickとJPEG圧縮 その後を参考にサムネイルの画質変更をやってみた。
Movable Type 3.2-ja-2 の場合は、Image.pmの95行目です。

サムネイル:デフォルトの状態です。
(クリックすると拡大した写真が見れます)

サムネイル:quality90にしてみた。右側のぶどうのつるあたりが滑らかに見える。
(クリックすると拡大した写真が見れます)

MTInclude を使ってファイルの読み込みテストをしてたんですが、リアルタイムに反映しないので、phpの読み込み方法を探す。
以前はリビルドするCGIを使ったんですが、MTのバージョンアップを繰り返すうちに行方不明。

ここを発見。readfile と includeの違いが勉強になりました。

Another HTML-lint gatewayで見ると、どうしてもエラーが出てしまうアンカータグですが、こういうやり方はどうでしょうか。

変更前
<a id="a<$MTEntryID pad="1"$>"></a>
<div class="entry" id="entry-<$MTEntryID$>">

変更後
<div class="entry" id="a<$MTEntryID pad="1"$>">

これならタグの分量も減るし、見た目もいいし(ソースの)、エラーも出ないので、とてもビューティフル。

あと、indexのページにあるaタグのアンカー部分は使い道がないように思うので削除。
何か使うのかなあ、これ。

また、パーマリンク先をカテゴリーにしている場合、最近のエントリーのリンク先に困りますが、これでいけました。
<a href="<$MTEntryLink archive_type="Category"$>#a<$MTEntryID pad="1"$>"><$MTEntryTitle$></a>

コメント受け付けないブログの場合は簡単なんだけど、コメントありだと、もうちょっと工夫が必要か。

name属性を併記するかどうか悩ましいところ。
参考書では、以下のとおり。

XHTML 1.0文書では,後方互換性のため同時にname属性も併記
することが推奨されます。XHTML 1.1文書型では,フォーム制御を
のぞくname属性は廃止されました。

新しいのが出たようなのでさっそく導入。
早くなったかな?

MT3.2のデフォルトテンプレートをなるべくいじらずに修正していたのですが、ひとつ壁にぶつかりました。

デフォルトテンプレートにはPHP&XML宣言はないのです。
この状態でハックなどを仕込み、いざ宣言いれてみたら・・・なんじゃこりゃ~、ってことに。

仕込んでたハックは、これ。

#alpha {
margin: 30px 0px;
padding: 45px 45px 20px 45px;
border: #bbb 1px solid;
width: 550px;
voice-family: "\}\"";
voice-family: inherit;
width: 458px;
}
html>body #alpha {
width:458px;
}
これで完璧のはずが・・・

bug1.gif

<?php echo '<?xml version="1.0" encoding="<$MTPublishCharset$>"?>'."\n"?> を入れると、こうなる(WinIE6の画面)。

bug2.gif

WinIE6のみのようですが、width: 550px;からpadding、border分引かれているようです。

MTでphp化しているサイトの多くはXML宣言をはずしている模様。
しかし、これ入れないとAnother HTML-lint gatewayで大幅に減点されてしまう。困った・・・。

でも、今までこんなことにはならなかったんだから、従来のやり方でやれば問題ないんでは、と思い当たり以下に変更。

#alpha {
width: 550px;
}
#alpha-inner {
margin: 30px 0px;
padding: 45px 45px 20px 45px;
border: #bbb 1px solid;
}

問題なし!

ただひとつ、マックのSafariだけ、タイトルがboldにならない現象が起きますが、とくに支障はないので、まあいいか。

ロリポップの独自ドメインコースはサブドメインを自由に増やせるんですが、サブドメイン作ろうとして、ここのサイトを見えなくしてしまいました。

サブドメイン設定で、最初に表示されているやつを変更してはいけなかったらしい。あ~、あせった。
新規作成して、できたやつを変更、ということで。

マックでテキストエリアが文字化けしてるの見逃してました。
font-family追加したので直ってますが、なんか妙な現象が・・・。

ロリポップブログで使っている背景が、テキストエリアに入り込んでます。
(マックのIE、safari、Opera)
背景白にしてみたけど消えない。
???

StyleCatcherで遊ぶためにデフォルトに戻してましたが、HTMLをいじらずに元のデザインに直せるか奮闘していました(ほぼまる1日)。

苦闘箇所
・マックでリストの左が大きく空いてしまう。
.module-listにpadding: 0px; を追加してやることで回避!

・マックのSafari、Firefoxでアーカイブページのロゴと#pagebody部分が重なってしまう。
両方にposition: absolute;を入れてtopの位置を固定しました。これで回避。

あ~疲れた・・・。
・・・追加で修正していったら、また分からなくなってきた。
なんかずれてる~;;

おお~、デザイン一新!

せっかく直したところが無駄になってますが・・・。
ロリポップでのStyleCatcherのパスがよく分からなかったのですが、以下のでいけました。

ページ上のシステムメニュー>ページ左のプラグイン>StyleCatcherの右下にある設定を表示>
(*MT入れてるディレクトリをmtとします。)

Theme Root URL:/mt/mt-static/themes/
Theme Root URL:/home/sites/lolipop.jp/users/lolipop.jp-dp(自分のサーバー見てね)/web/mt/mt-static/themes

よく見るとファイルができた場所が違う・・・。
メインメニューの設定>プラグ