Trackbackの不具合・その後
直りました(というかいわゆるIllegal Operation Error _| ̄|○)。
お騒がせして申し訳ありません。
ですがコメント登録に時間がかかる等の性能問題は相変わらずです。再構築に時間がかかる話を以前書いたのですがアクセス状況が以前と大幅に変わってきているのでどうやらCeleron・633MHzのマシンでは限界のようです。こちらについてはPCの交換を検討中ですがサーバ構築に時間がかかりそうなのでしばらくお待ち頂きたいと思います。
Trackbackの不具合
ここ数日に書いたエントリーで参照させて頂いているサイトの該当記事にTrackbackを送信しているのですが、相手方のサイトにTrackbackが反映されないという事象にでくわしています。
ということでただいま調査中です。ちなみに現在の状況ですが、
- エントリー登録時にTrackbackエラーは出ていません
- 送受信ともNGの模様(他blogからのTrackbackが反映されません)
- 作成日時を変えるとTrackbackしないという記事があったので試しましが×
- 同一エントリーからリトライしても×
という状況です。性能的に無理が生じてきたのでしょうか…。
エントリー投稿画面へのリンク追加
Magic Whiteさんの編集修正楽にするでご連絡いただいていた方法でエントリーの投稿画面へのリンクを個別アーカイブ右下に「Edit」で追加しました。
これは自分の投稿したエントリーを読んでいる最中に編集したくなった時、このリンクをクリックしたらすぐに編集画面にジャンプできるというものです(PC上でMovable Typeのログイン・パスワードのcookieが残っていれば編集画面へ、残っていなければログイン画面にジャンプします)。
便利よさそうです。ありがとうございました。
2004.11.01 追記
ソースを追加しました。個別アーカイブテンプレートの場合、下記の部分に青色のタグを追加すればOKです。
<div class="posted">Posted by <$MTEntryAuthor$> at <$MTEntryDate$>
| <a href="<$MTCGIPath$>mt.cgi?__mode=view&_type=entry&id=<$MTEntryID$>&blog_id=<$MTBlogID$>">Edit</a>
</div><!-- posted -->
あと細かいですが、<$MTEntryDate$> の後ろに半角スペースを入れてやってください。
コメントスパム対策(その4)
我楽さんのコメント投稿で500エラーが出るけど、投稿反映される件について。でアドバイス頂いた通り、mt-comments.cgiのファイル名変更してみました。これで様子をみてみたいと思います。ありがとうございました。
コメントスパム対策(その3)
再びオンラインカジノからコメントスパム頂きましたので次の対策を打ってます。ちなみに前回より私が行っている対策はコメントに特定の文字列が入力された時だけエラーにするというものです。多分「kasino」とか変な日本語混ぜてまた来るんでしょうね…。
QRコード設定
Magic WhiteさんのQRコードつけてみた。経由のurl2QRcodeで生成したQRコードをサイドメニューにつけました。QRコードにはblogの携帯用URLを変換したものが設定されています。そしてこの画面に表示されたQRコードを携帯で認識させればURLをわざわざキーで打ち込まなくても携帯用のサイトにいくことができます。使用頻度は明らかに低いと思いますがQRコードの幾何学的デザインが気に入っているので。
本当はMTQRcodeをつけてみたいのですがWindows自宅サーバ者にはかなりハードル高そうでとりあえず変換した画像を貼り付けてます。
で、「これつけても読み込めないしなー」と思っていましたが、先日購入した携帯に「バーコードリーダ」というのがあり、起動すると真四角の枠が出たので試しにQRコードを認識させたところ、見事読み込めました(マニュアル読んでない)。
Magic WhiteさんのQRcodeも正常に読み込めました。
カレンダーの文字サイズ修正
公開中のスタイルシートですが、カレンダーのリンク以外の日付の文字サイズが設定されていませんでした。設定されてないとエントリーされていない日の文字サイズが大きく表示されてしまう不具合が発生する場合があります。
現在テンプレートをご利用頂いている方は下記のスクリプトを styles-site.css の .calendar の下辺りに追加することで不具合は解消します。
.calendar td {
font-size:9px;
}
なお公開版の方は修正済です。ご迷惑おかけして申し訳ございませんがよろしくお願い致します。
コメントスパム対策(その2)
半角英数のみのコメントをエラーとする対処にしていましたが、本文に「オンラインカジノ」と書かれたコメントスパムを3件頂きました(削除済)。
という訳で現在新たな対処を盛り込んでいます。不具合等ございましたらお許しください。
サイドメニュー折りたたみ(改)
2004.12.06 追記
サイドメニュー折りたたみのエントリーを書き直しましたので
を参照ください。
我楽さんのサイトにあるサイドメニューの折りたたみが気に入り、あらかたできたので、ぼちぼちエントリー追加。経由で
に随分前から取りかかってましたがようやく陽の目を見ることになりました。苦労した点はあとで書くとして、とりあえずメモ。
なお関連記事もございますのでよろしければ後ほど参照ください。
この機能は文字のごとくサイドメニューの折りたたみです。メニューのタイトル部分は常時表示で、タイトル横にある[+]/[-]でメニューリストの表示・非表示を切り替えられます。またメニュー単位に表示・非表示の初期状態を設定できます。
私の場合はリストが長いものに折りたたみをつけ、さらに利用度が低いと思われる「Monthly Archives」と「Recent Entries」を折りたたんだ状態にしてみました。またメニューのリスト合計数をタイトル横に表示できます。そのままの流用では正常に表示されませんでしたが若干のスクリプト修正で有効になりました。以下設定方法です。
1.テンプレートのサイドメニューにid属性を付与
下記の要領で折りたたみたいサイドメニューのタイトルに「id=xxname」、リストの方に「id=xxlist」を付与します。"name"と"list"は固定、"xx"の部分はメニュー毎に異なる名称を付与します(例えばカテゴリーリストは"category"、エントリーは"entry"等)。
<div class="sidetitle">
Categories
</div>
<div class="side">
<MTCategories>
<a href="<$MTCategoryArchiveLink$>">
<$MTCategoryLabel$></a> [<$MTCategoryCount$>]<br />
</MTCategories>
</div>
<div class="sidetitle" id="categoryname">
Categories
</div>
<div class="side" id="categorylist">
<MTCategories>
<a href="<$MTCategoryArchiveLink$>">
<$MTCategoryLabel$></a> [<$MTCategoryCount$>]<br />
</MTCategories>
</div>
2.JavaScriptファイルの作成
下記の内容を丸ごとコピーして"menufolder.js"という名前のファイルを作成します。作成したファイルはここではmt.cgiが配置されているディレクトリに配置することにします。赤および青字はオリジナルのスクリプトとの差分を示しています。
オリジナルではスクリプトをテンプレートに直接記述されていますが、他のテンプレートで同機能を持ちまわることを考え、ここでは独立したファイルにしてみました。注:ファイルの文字コードはBlogの文字コードと一致させてください。またMac+IEの場合は、後述の「テンプレートにJavaScriptファイル読み込みの設定」で示された位置に、本スクリプトを直接埋め込むようにしてください(jsファイルを正常に読み込めない報告を頂いております)。
function InitFoldNavi() {
FoldNavigation('newentry','off',false); // new entry
FoldNavigation('entry' ,'on' ,true); // entry
FoldNavigation('comment' ,'on' ,false); // comment
FoldNavigation('tb' ,'on' ,false); // trackback
FoldNavigation('archive' ,'off',true); // archive
FoldNavigation('link' ,'on' ,true); // link
FoldNavigation('profile' ,'off',false); // profile
}
function FoldNavigation(idName,initMode,viewNum) {
var openMark = '[+]'; // open mark
var closeMark = '[?]'; // close mark
var preMark = true; // position of mark
var idTitle = Array(idName,'name').join('');
var idList = Array(idName,'list').join('');
var objTitle = this.document.getElementById(idTitle);
var objLists = this.document.getElementById(idList);
if (!objTitle || !objLists) return;
var dispMode = objLists.style.display;
if (!dispMode) {
var tmpText = Array('FoldNavigation(',"'",idName,"','chng','');return(false);").join('');
var insMark = new Array();
var insText = new Array();
insMark[insMark.length] = Array('<a class="foldmark" href="#" onclick="',tmpText,'" onkeypress="',tmpText,'">').join('');
insMark[insMark.length] = (initMode == 'off') ? openMark : closeMark;
insMark[insMark.length] = '</a>';
if (preMark) insText[insText.length] = insMark.join('');
// insText[insText.length] = objTitle.innerHTML;
if (viewNum) {
var objItems;
objItems = objLists.getElementsByTagName('a');
var counter;
if (idName == "link") { // delete 3Link
counter = objItems.length - 3;
} else {
counter = objItems.length;
}
insText[insText.length] = ' ' + Array(' <span>',counter,'</span>').join('') + ' ' + objTitle.innerHTML;
} else {
insText[insText.length] = ' ' + objTitle.innerHTML;
}
if (!preMark) insText[insText.length] = insMark.join('');
objLists.style.display = (initMode == 'off') ? 'none' : 'block';
objTitle.innerHTML = insText.join('');
} else if (initMode == 'chng') {
var objMarks = objTitle.getElementsByTagName('a');
for (i=0;i<objMarks.length;i++) {
if (objMarks[i].className == 'foldmark') {
objMarks[i].firstChild.nodeValue = (dispMode == 'none') ? closeMark : openMark;
}
}
objLists.style.display = (dispMode == 'none') ? 'block' : 'none';
}
}
InitFoldNavi();
以下スクリプトの説明です。上部にある
FoldNavigation('newentry','off',false);
ですが、()内のパラメータの意味はそれぞれ
FoldNavigation('id属性名','初期状態',リスト数表示);
です。id属性名が先の"category"や"entry"に対応します。つまり折りたたみをしたいメニュー分、この行を作ります(注:全角文字(空白など)が混入しないように気をつけてください)。その右の初期状態はページを開いた時の折りたたみ状態です。onは開いた上体、offは閉じた状態です。最後のリスト数表示はタイトル横にそのメニュー内のリスト数(例えばカテゴリーメニューにカテゴリーが10あれば"10")を表示します。'true'と記述すれば表示、'false'は非表示です。
青色部分はオリジナルから変更した部分です。以下主な変更内容です。
まず、"[+]"、"[?]"はメニュータイトル横に表示される折りたたみ切り替え用のリンク文字です(好きな文字を設定できます)。
このスクリプトは前述の通りタイトル横にリストの合計数を表示してくれます。オリジナルは"li"のタグ数を計算して表示していますが改造版では<a href="?">タグの数を計算するようにしています(リスト表示に<li>タグを使っていないため)。またオリジナルではリストの合計数をタイトル右側に"()"で表示していますが、このスクリプトではタイトルの左側に表示するようにしてみました。BlogPeopleのリンク数についてはバナーと登録用リンクの計3つが余分なので、その分を減算しています(エレガントさに欠けますが…)。
さらに折りたたみ用マークをつけることでタイトルの位置が若干左にずれるため、タイトル左に全角空白を1文字挿入して微妙に位置調整しています(ただしマークをタイトル右側に挿入することが前提)。
3.テンプレートにJavaScriptファイル読み込みの設定
テンプレートの一番最後の方(</body>の直前等)に、先に作成したJavaScriptファイルを読み込むためのタグをを挿入します。
<script type="text/javascript" src="http://xxx/menufolder.js"></script>
"xxx"の部分には任意のURLを設定してください。JavaScriptファイルをmt.cgiと同じディレクトリに配置した場合、私のblogを例にとるとxxxの部分は"www.koikikukan.com"になります。
4.スタイルシートの追加
styles-site.css の .sidetitle の下に下記を追加します。
.sidetitle a {
float: right; /* マークを右側に配置 */
width: 1.8em;
text-decoration: none;
}
.sidetitle a.foldmark {
font-size:7px; /* マークのフォントサイズ */
padding-right:3px; /* マークの位置調整 */
}
このスタイルシートは適切な指定でないかも知れませんがとりあえず正常に動作しています。
設定方法は以上です。当初マークが右側に配置されなくて悩みましたがオリジナルのサイトにかなりの質問コメントが寄せられており、そちらを参照しました(スタイルシートのfloat: rightの設定とJavaScript上部にある「マークの挿入位置」がきちんと指定できていれば大丈夫みたいです)。
マークは右側に無事配置されたのですが今度はタイトル右端にくっついてしまうのが気になるので、これはpaddingで調整しました。blogの中にblogを作っている気分です。この時スタイルシートを変更しても変更が反映されずまたしても悩みましたが、ブラウザのキャッシュに古いデータが残っているのが原因のようでした。IEであればブラウザの「更新」をクリックするかキャッシュを削除しましょう。
ちなみに「Recent Comments」等もリスト数を取得できる筈なのですが動作確認できていないので保留にしています。できるようになりました。↓追記参照ください。
2004.08.31追記
上記2.の青色部分を下記のスクリプトの青色部分と入れ替えれば「最近のコメント」も件数表示が可能になります。これは「最近のコメント」にあるURLのaタグの"#"を計数しています。
if (viewNum) {
var objItems;
var href;
var commentCounter = 0;
objItems = objLists.getElementsByTagName('a');
if (idName == 'comment') {
for (i = 0; i < objItems.length; i++) {
href = objItems[i].getAttribute("href");
if(href.indexOf("#") == -1){
commentCounter++;
}
}
}
var counter;
if (idName == "link") {
counter = objItems.length - 3;
} else {
counter = objItems.length - commentCounter;
}
insText[insText.length] = ' ' + Array(' <span>',counter,'</span>').join('') + ' ' + objTitle.innerHTML;
} else {
insText[insText.length] = ' ' + objTitle.innerHTML;
}
2004.09.20追記
BlogPeople以外にリンクを増やす場合は
if (idName == "link") { // Linkは不要な3リンク分を減算
counter = objItems.length - 3;
} else {
counter = objItems.length;
}
の部分を
if (idName == "link1") {
counter = objItems.length - 3;
} else if (idName == "link2") {
counter = objItems.length - 2;
} else {
counter = objItems.length;
}
のように、link名を適宜対応した属性名のものに変更して条件文を必要な分だけ追加してください。追加するのは減算が必要な場合だけです。
2004.10.01追記
コピー後、";"のある行は途中で折り返しがないかご確認ください(折り返しがあるとsafariで正常に表示されないようです)
2004.11.01追記
サイドメニュー折りたたみ状態保持スクリプトおよびサイドメニュー折りたたみの動作遅延対処へのリンクを本文に追加しました。
2004.11.02追記
JavaScriptの日本語コメントを半角英数に修正しました。またMac+IEの場合はmenufolder.jsを正常に読み込めないようですので、スクリプトを直接テンプレート内に埋め込む記述を追加しました。
Trackback文字化け対処
Trackbackの文字化けを対処しました。遅くなってすいません > いつもTB頂いているMagic Whiteさん
これは文字コードの異なるBlog(例えばサイトAがUTF-8、サイトBがShift_JIS等)同士でTrackbackを行うと文字化けが発生(サイドメニューのRecent Trackbackの部分)し、これに対する対処です。Trackbackを受信するサイトが対処します。ちなみに現在このサイトはMT3.0Dなのですが、MT3.01D-jaでUTF-8とShift_JISの試験サイトをそれぞれ作ってUTF-8側をTrackback受信サイトとした場合、この対処なしでも文字化けは発生しませんでした(間違ってたらすいません)。
という訳でいつもの手順メモ。
Jcode.pmのダウンロード
Comprehensive Perl Archive NetworkよりJcode-0.86.tar.gzをダウンロード(現在はこのURLにあり、0.83/0.86/0.87があったので0.86を選択)。
Jcode.pmの配置
ダウンロードしたファイルを解凍し、その中の Jcode.pm と Jcode フォルダを extlib フォルダ直下に配置。
TrackBack.pmの編集
lib/MT/App/TrackBack.pm を任意のエディタで開き、下記に青色部分のコードを追加。
sub no_utf8 {
require Jcode;
for (@_) {
next if !defined $_;
$_ = pack 'C0A*', $_;
$_ = Jcode->new($_)->utf8;
}
}
"utf8"の部分は自blogの文字コード("euc"、"sjis"等)を設定。
動作確認
自サイトの任意のエントリーに表示されているTrackback URLをブラウザに設定して、下記のXMLが表示されればOKみたいです。
<?xml version="1.0" encoding="iso-8859-1" ?>
-<response>
<error>1</error>
<message>Need a Source URL (url).</message>
</response>
参考サイトは下記です。ありがとうございました。
2004/09/15追記
2004/09/11に Movable Type 3.01D-jaにしたため、この対処は現在使用しておりません。
追記文章の折りたたみ用スクリプト(改)
#「追記折りたたみスクリプト」で再び隠した時に表示がずれるのが気になる方へ。
Movable Type のエントリーの「追記」部分に書いた文章は、エントリー本文の最後に「続きを読む」というリンクが現れ、それをクリックした時に読めるようになります。
ところがデフォルトの設定ではこのリンクをクリックすると個別アーカイブのページにジャンプしてしまい、さっきまで読んでいた箇所まで探さないといけなくなります。感覚的には「続きを読む」をクリックしたらそのまま下に続きを表示して欲しいところです。
そういう訳で、このスクリプトは今読んでいるページを動かさずに本文下に追記を表示してくれるというスグレモノです。これも以前から導入したかった機能でようやく実現できました。「追記」に文章書いたことは一度もないのですが(笑)。
スクリプトは色々なサイトに転がっており、オリジナルはScriptygoddessさんのサイトみたいです。
タイトルの(改)ですが、オリジナルのスクリプトでは続きを再び隠した時に画面がビクッとなり(=アンカー指定の位置にずれる模様)、それが起きないようJavaScriptをちょっと修正しました。それからオリジナルはコメント部分にも使える仕様ですが本文でしか使わないと思い、コメント関連のコードも削除してます。
とりあえずソースと手順を載せておきます。
1.テンプレートにスクリプト追加
リスト1のスクリプトを <head>~</head> の間にコピーしてください。
<script type="text/javascript">
function showHide(entryID, entryLink, htmlObj) {
extTextDivID = ('Text' + (entryID));
extLinkDivID = ('Link' + (entryID));
if( document.getElementById ) {
if( document.getElementById(extTextDivID).style.display ) {
if( entryLink != 0 ) {
document.getElementById(extTextDivID).style.display = "block";
document.getElementById(extLinkDivID).style.display = "none";
htmlObj.blur();
} else {
document.getElementById(extTextDivID).style.display = "none";
document.getElementById(extLinkDivID).style.display = "block";
}
} else {
location.href = entryLink;
return true;
}
} else {
location.href = entryLink;
return true;
}
}
</script>
リスト1:折りたたみ用スクリプト
2.テンプレートタグの修正
リスト2の赤字部分をリスト3の青字に入れ替えます(緑色部分は隠した時に表示がずれないための改造箇所)。
<MTEntryIfExtended>
<span class="extended">
<a href="<$MTEntryPermalink$>#more">続きを読む "<$MTEntryTitle$>"</a>
</span><br />
</MTEntryIfExtended>
リスト2:追記表示用MTタグ(修正前)
<MTEntryIfExtended>
<div id="Link<$MTEntryID$>">
<a href="<$MTEntryPermalink$>" name="<$MTEntryID pad="1"$>" onclick="showHide(<$MTEntryID$>,'<$MTEntryPermalink$>',this);return false;">続きを読む ≫</a>
</div>
<div id="Text<$MTEntryID$>" style="display: none">
<$MTEntryMore$>
<a href="<$MTEntryPermalink$>" name="<$MTEntryID pad="1"$>" onclick="showHide(<$MTEntryID$>,0,this);return false;">≪ 続きを隠す</a>
</div>
</MTEntryIfExtended>
リスト3:追記表示用MTタグ(修正後)
Category Archive/Date-Based Archiveも同様です。<MTEntryIfExtended>~</MTEntryIfExtended>で括られた部分を適宜入れ替えてください。個別エントリーアーカイブについては「個別アーカイブに続きを読むを導入」をごらんください。
2006.04.04 追記
リストから language 属性を削除しました(HTML4.01/XHTMLで非推奨あるいは廃止されているため)。
以上です。↓「続きを読む」をクリックするとこんな感じで追記が表示されます。
コメントスパム対策
ようやく取りかかりました。
- コメントスパムを削除する手間が面倒
- コメンターの方への入力文字制限をしない
というポリシーで、当初我楽さんのコメントスパム、補足というか・・・。経由で女子十二月号さんのMovableTypeコメントスパム対策をと思いましたが、コメントプレビューテンプレートでユーザ定義のhiddenタグが引き継げない(スキル不足?)ことが発覚し、今のところMagic WhiteさんのTypeKey対応などなどスパム対策経由できままにポロポロさんの続々コメントスパムを参考にさせて頂いて、半角英数のみのコメントをエラーとする対処にしています。
このサイトでのTypeKey機能
は正常に動作していません。サインインをしても「The validation failed.」となります。調べたところ、Individual Entry Archive の
<$MTSignOnURL$>&<MTIfNeedEmail>
を
<$MTSignOnURL$>&v=1.1&<MTIfNeedEmail>
に変更すれば良いということでやってみたのですが同じ現象でした。まあこれはアップグレードの方用の対処であって、私は3.0Dで無理矢理やってますからね…(よく調べきれてないので勘違いしているかも知れませんが今日のところはここまで)。
あとこのエラー画面ってなかなか出ないのでこの際テンプレートを直しておこうかと(負け惜しみ)。
2004.10.04 追記
現在はMovable Type 3.01D-jaで運用しておりますのでTypeKey機能は正常に動作しています。
カレンダーのリンク修正
月別アーカイブのページ分割後、カレンダーからクリックしたページのジャンプが思い切りおかしくなってました。デフォルト状態でのカレンダーからのリンクは、月別全体のページ+aタグのname属性でジャンプするのですが、ページ分割をしてしまうとその機能が無効になります。
ということで、再びMagic Whiteさんのカスタマイズメモその3からからIllustrations "choco*choco"さんの「アーカイブの名前を変えたよ」へ(最後までよく読んでなかったですね…)。
手順は以下の通りです。
「アーカイブファイルのテンプレート」修正
管理メニューの「ウェブログの設定」→「アーカイブの設定」でアーカイブの「日別」にチェックして「アーカイブファイルのテンプレート」に
<$MTArchiveDate format="%Y/%m/%d"$>-index.php
を設定。変更を保存。
テンプレート修正
カレンダーを使っているテンプレートで赤色部分を青色部分のように変更
<MTEntries lastn="1">
<a href="<$MTEntryLink archive_type="Monthly"$>#<$MTEntryID pad="1"$>">
<$MTCalendarDay$></a>
</MTEntries>
<MTEntries lastn="1">
<a href="<$MTEntryLink archive_type="Daily"$>">
<$MTCalendarDay$></a>
</MTEntries>
サイトの再構築
以上です。日別でジャンプしたところのサイドメニューも少し修正したいのですがとりあえずここまで。ちなみにテンプレートを持っていかれた方は元々下の設定になっていました。2ヶ月表示に変更した時のテンプレートが上の設定になっていたようです(無知)。
非常にすっきりしましたが再構築時間がちょっと心配。
カテゴリーアーカイブと月別アーカイブのページ分割
Movable Type でのカテゴリーアーカイブと月別アーカイブのページ分割方法をご紹介します。
参照サイトはMagic whiteさんの「カスタマイズメモその2」経由できままにポロポロさんの「ページ分割」です。あっさりできました。ありがとうございます。
ということで以下に設定方法(プラグインファイルの配置は自宅サーバ用)を記しておきます。
1.プラグインファイルのダウンロード
MT Extensions より MTPaginate をダウンロード(ページ上の方にある「Download」をクリック)。ファイルは任意のフォルダ(デスクトップ等)に保存します。
2.プラグインファイルのアップロード
ダウンロードしたファイルを解凍し、その中の MTPaginate.pl を plugins ディレクトリにアップロードします。
注:この情報はバージョン1.28のものです。
ダウンロードしたファイルを解凍し、その中の MTPaginate ディレクトリを下記のディレクトリ構成になるように plugins ディレクトリに丸ごとアップロードします。
plugins/MTPaginate/lib/MTPaginate.pm
plugins/MTPaginate/MTPaginate.pl
2.1 アーカイブURL/アーカイブ・パスの設定(Movable Type 3.2-ja 以降の場合)
管理メニューの「設定」→「公開」にある「アーカイブの設定」のチェックボックスをチェックします。チェックするとその下に「アーカイブURL」「アーカイブ・パス」の項目が表示されるので、下記のように設定します。
- アーカイブURL:サイトURL/archives/
- アーカイブ・パス:サイト・パス/archives
サイトURLとサイト・パスは同じページに表示されている「サイトURL」「サイト・パス」の内容をそのままあてはめてください。例えばサイトURLが http://www.koikikukan.com/ であれば、アーカイブURLは
- http://www.koikikukan.com/archives/
となります。
なおこれらはページ分割を行わない場合も設定することをお勧めします。
3.アーカイブファイル名の変更
Movable Type のバージョンによって3.1項または3.2項のいずれかを実施してください。
3.1 Movable Type 3.2-ja 以降の場合
管理メニュー左の「設定」→「公開」で「アーカイブ・マッピング」の「出力フォーマット」のテキストボックス欄で「カスタマイズ」を選択して下記を設定します。
- カテゴリーアーカイブ(「カテゴリー」行)
cat_<$MTCategoryID$>.php *1 - 月別アーカイブ(「月別」行)
%y/%m/index.php - 日別アーカイブ(「日別」行)
%y/%m/%d/index.php
をそれぞれ設定し「変更を保存」をクリックしてください。
*1:カテゴリーアーカイブのファイル名にはカテゴリーIDを設定するためにMTタグを使用することを推奨します。
3.2 Movable Type 3.1x 以前の場合
管理メニュー左の「ウェブログの設定」→「アーカイブの設定」で「アーカイブ」の「アーカイブ・ファイルのテンプレート」のテキストボックス欄に下記を設定します。
- カテゴリーアーカイブ(「カテゴリー」行)
cat_<$MTCategoryID$>.php - 月別アーカイブ(「月別」行)
<$MTArchiveDate format="%Y/%m/"$>index.php - 日別アーカイブ(「日別」行) *2
<$MTArchiveDate format="%Y/%m/%d/"$>index.php
をそれぞれ設定し「変更を保存」をクリックしてください。*3 *4
*2:カレンダーのリンク等で「日別」を使用されている場合は設定が必要です。
*3:すでに「アーカイブ・ファイルのテンプレート(3.2 は「出力フォーマット」)」へカスタマイズされたフォーマットを設定されている場合は「.html」となっている部分を「.php」に修正すればOKです。
*4:フォーマットは一例ですので、任意のフォーマットを設定してください。また 3.2-ja 以降ではフォーマットの指定方法が変更されていますが、3.1x 以前のMTタグを利用した設定でも正常に動作します。
4.ページ分割の設定
カテゴリーアーカイブテンプレート・日別アーカイブテンプレートに以下の青色部分を設定します。
カテゴリーアーカイブの場合
<div class="blog">
<MTPaginate>
<MTPaginateContent max_sections="8">
<MTEntries>
:
:
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>
<MTPaginateIfMultiplePages>
<div class="paginate">
<MTPaginateIfPreviousPage_>
<a href="<$MTPaginatePreviousPageLink$>"><</a>
</MTPaginateIfPreviousPage_>
<$MTPaginateNavigator style="links" format_all="All pages" place_all="after" separator=" | ">
<MTPaginateIfNextPage_>
<a href="<$MTPaginateNextPageLink$>">></a>
</MTPaginateIfNextPage_>
</div>
</MTPaginateIfMultiplePages>
</MTPaginate>
</div>
日付アーカイブの場合
<div class="blog">
<div id="menu">
<MTArchivePrevious>
<a href="<$MTArchiveLink$>"><< <$MTArchiveTitle$></a> |
</MTArchivePrevious>
<a href="<$MTBlogURL$>">Main</a>
<MTArchiveNext>
| <a href="<$MTArchiveLink$>"><$MTArchiveTitle$> >></a>
</MTArchiveNext>
</div>
<MTPaginate>
<MTPaginateContent max_sections="8">
<MTEntries>
:
:
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>
<MTPaginateIfMultiplePages>
<div class="paginate">
<MTPaginateIfPreviousPage_>
<a href="<$MTPaginatePreviousPageLink$>"><</a>
</MTPaginateIfPreviousPage_>
<$MTPaginateNavigator style="links" format_all="All pages" place_all="after" separator=" | ">
<MTPaginateIfNextPage_>
<a href="<$MTPaginateNextPageLink$>">></a>
</MTPaginateIfNextPage_>
</div>
</MTPaginateIfMultiplePages>
</MTPaginate>
</div>
赤色部分は中央に配置スタイルシート(styles-site.css)に ".paginate" というクラスセレクタを作成し、ページリンクのスタイルを設定するためのタグです。スタイルシートには必要に応じて
.paginate {
text-align: center;
font-size: 9px;
}
という風に設定してください。
設定が完了したら「保存」をクリックします。
追記.XML宣言の修正
拡張子を .html から .php に変更したテンプレートの1行目が
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
となっている場合は
<? echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>
に修正してください(XML宣言が存在しない場合はこの対処自体不要です)。この修正を行わないとページ表示時に
Parse error: parse error, unexpected T_STRING in [...] on line 1
というエラー(またはページが真っ白)が発生します。
5.サイトの再構築
4項まで完了したら再構築を実施し、ページ分割を設定したアーカイブのページを開き、分割されていればOKです。
6.その他
きままにポロポロさんのページで
<$MTPaginateNavigator format_current="<font size=+1>%d</font>">
と書けば現在のページ番号の文字を装飾できるようですが、上の例ではfontタグの"<"と">"(計4ヶ所)を"<"と">"で記述する必要があります。具体的には青色で表示してある
<$MTPaginateNavigator format_current="&lt;font size=+1&gt;%d&lt;/font&gt;">
となります。なお、XHTMLでは各要素の属性(ここでは font 要素の size 属性)はダブルクォーテーションで括る仕様となっているため、ここでは非推奨とします。font 要素自体も非推奨です。
なお月別アーカイブはjolie'sさんの【長くなったページを分割】でやってみたところ再構築でInvalid Argumentというエラーになりました。原因は、そのページに表示されていたアーカイブファイル名のテンプレート名をそのままコピー&ペーストして使ったのですが、そのタグの"<"と">"が全角になっているせいでした。こういうのって意外に気がつかないものです。
2004.10.04 追記
【PHPのバージョンについて】
ページ分割はPHP4.1以下では正常に動作しないようです。詳細については先と同様、Cool Gaming ! weBlogさんのカテゴリ、月別アーカイブのページ分割を参照ください。
2005.03.01 追記
日付アーカイブの設定について追加しました。
2005.04.13 追記
SWEET WATER Web Server さんの記事を参考に、日付アーカイブの設定について追加しました。
2005.11.11 追記
3.2-ja 用の設定を追記しました。
2005.11.20 追記
3.2-ja 用の設定をさらに追記しました。
2005.11.28 追記
3.2-ja 用の出力フォーマットを 3.1x 以前のものと分割しました。またページリンクのタグを改善しました。具体的には、MTPaginateIfMultiplePages タグと div 要素の位置を入れ替えて、ページ分割が行われない場合に不要な div 要素を生成しないようにしました。さらに div 要素に設定していた align 属性を削除しました。
2006.02.19 追記
XML宣言の修正について記述を追加しました。
2006.04.25 追記
XML宣言の修正について記述を修正しました(XML宣言がない場合は不要である旨)。
2007.05.04 追記
プラグインのバージョンアップに伴い、アップロード方法を修正しました。
タイトルの色変更
最近暑いですね?。しかも自宅で24時間PCを立ち上げているせいか部屋がムッとしっぱなしです。この無駄な熱をなんとか冷房に利用できないものでしょうか。
とりあえず涼しくなるかなと思って青色にしてみました。トップページだけですが。
Movable Type 3.0 Developer Edition 日本語版の提供開始
Movable Type 3.0 Developer Edition 日本語版が公開されました。7月15日リリースでしたので予定通りですね。もっともそのニュースが投稿されたのは23:59ですが(笑)。
とりあえずダウンロード手順を記しておきます。
- Movable Type のページ上または左の「
Movable Typeを入手ダウンロード」をクリック - 右の「
Movable Typeオンライン購入システムダウンロードへ」をクリック - ログイン(アカウントを持っていない場合はここで登録しましょう)
- ログインすると「Get Movable Type!!!」というページに進みます。無償で利用したい場合は一番上の「限定個人ライセンス」をクリック
- 「ライセンス契約を承諾する」をチェックして(利用許諾契約書も読んでね)「>>次へすすむ」をクリック
- パッケージの種類・アーカイブの種別を選んで「ダウンロード」をクリック。
その後のインストールはMovable Type 3.x 導入手順が分かりやすいです。
日本語版ですがインストール時は英語なんですよね(笑)。
エントリーの画像をサイドメニューに表示
エントリーに携帯等で撮った画像を表示しているブログをよく見かけますが、エントリーの画像を検索してサイドバーに自動的に表示するカスタマイズをご紹介致します。具体的な動作は、エントリーの中に書かれている img 要素の src 属性を検索し、そこで指定された画像をサイドバーに表示します。Collect プラグインというものを利用しています。
以下、手順メモです。
1.プラグインのダウンロード
Collect Plugin for Movable Type の Collect より Plugin をクリックします(ソースが表示される場合は右クリックして「対象をファイルに保存」を選択)。
2.プラグインのアップロード
ダウンロードした Collect.pl を plugins ディレクトリ直下にアップロードします。
3.テンプレート修正
リスト1のタグを、画像を表示したいテンプレート(メインページ/カテゴリーアーカイブ/日付アーカイブ/個別エントリーアーカイブ等)のサイドバー部分に追加します。次のタグは最近の8エントリーより、各エントリー内にある一番最初のイメージを表示します。
<MTEntries lastn="8">
<MTCollect tags="img">
<MTCollectThis show="0">
<$MTEntryBody$>
</MTCollectThis>
<MTIfCollected tags="img">
<MTCollected tags="img" lastn="1">
<a href="<$MTEntryLink$>">
<img src="<$MTCollectedAttr attr="src"$>" style="margin:10px" />
</a><br />
</MTCollected>
</MTIfCollected>
</MTCollect>
</MTEntries>
リスト1:最近の8エントリーより各エントリー内にある一番最初のイメージを表示
リスト2のタグは、全エントリーから最新の5個のイメージを表示します。
<MTCollect tags="img">
<MTEntries lastn="5">
<MTCollectThis>
<$MTEntryBody$>
<$MTEntryMore$>
</MTCollectThis>
</MTEntries>
<MTIfCollected>
Recent Photos of all <$MTCollectedTotalCount$> photos<br />
<MTCollected tags="img" lastn="5">
<img width="100" src="<$MTCollectedAttr attr="src"$>" alt="<$MTCollectedAttr attr="alt"$>"<$MTCollectedContent$><br />
</MTCollected>
<MTElse>
No Photos
</MTElse>
</MTIfCollected>
</MTCollect>
リスト2:全エントリーから最新の5個のイメージを表示
以上です。なおこの機能については以下のサイトを参考にさせて頂きました(テンプレートもそこからの抜粋です)。
あとはカメラ付き携帯を買うだけ(爆)。
2005.08.08 追記
本文を全面修正しました。
2006.09.10 追記
マークアップ修正。
MT-3.0D-ja-b3
さらに Movable Type 3.0 日本語版ベータ3が公開されてました。正式版の提供は7月中旬ということなのでそろそろでしょうか。
日本語カテゴリー名使用時の不具合を修正
日本語カテゴリーを作ると別の日本語カテゴリーのエントリーが誤ってリンクされるようです。例えば「車」カテゴリーのリンクをクリックすると「音楽」カテゴリーが表示されてしまいます。
原因は、英語(多分数字も含む)のカテゴリーであればそのカテゴリー名がフォルダとして作られる(厳密にはその配下に index.html を配置)のですが、日本語カテゴリーは任意のアルファベットに変換し、その名前でフォルダを作ります。その時に元の日本語カテゴリ名と生成されたフォルダの関連づけが誤ってしまうようです。
そういう時は横着して英語カテゴリー名に直していましたが本質的な解決ではありません。ということでこちらの記事を参考に日本語カテゴリー名を使用しても不具合が発生しないように修正しました。面倒かと思ったらカテゴリー用ファイル名を指定して再構築するだけでした。
日本語エントリーの個別アーカイブファイル名も場合によっては「aaeaaaaaaaa.html」みたいになってしまうことがあり、ちょっと気に入りません(動作上の問題は今のところありません)。こちらも解決策があるみたいですがとりあえず次回まわしにします。
それにしてももう少し気の利いた変換できないものでしょうか。
MT-3.0D-ja-b2
Movable Type 3.0 日本語版ベータ2が公開されたようです。が、とりあえずアップグレードせずに3.0正式版を待とうと思います。
「検索」タイトルとテキストエリア間の空白修正(その2)
以前テーブルタグを用いてフォーム前後の空白を除去しましたが、以下のスタイルシートを追加すれば同様の効果がありました。
form {
margin: 0;
}
この設定では全ての form タグに有効になりますので、個別に設定が必要な場合は form のクラス属性を指定します。例えば
<div class="side">
<form>
:
であれば、
.side form {
margin: 0;
}
としてください。
2005.08.18 追記
記事の内容を一部修正しました。
プロフィール修正
このblogは元々開設していたWebサイトからのリンクしか設定してなかったのですが、プロフィールにこちらから元サイトへのリンクを設定しました。先のCDの話もそうですがblogを読まれる際の補助になればと思います。最近元サイトの更新が滞っているのでどうしたものかというところですが。
「このサイトについて」を追加
プロフィール用テンプレートを流用して早速追加しました。サイドバーのプロフィールの上にリンクを追加してます。これでタイトルの由来を書くスペースも確保できました。
プロフィールのページを作る
この記事は Movable Type 3.1x 用ですので、Movable Type 3.2-ja 以降をお使いの方はプロフィールのページを作る(3.2-ja?用)へどうぞ。
サイドバーメニューのタイトル「Introduction」を新たに作成しサブメニューとしてプロフィールを追加しました(中身ありませんが)。ということで「プロフィール」用テンプレートの設定およびメニューへの追加方法を記しておきます。同様の手法で「このサイトについて」や「注意事項」のページを作ることができます。
追加方法のひとつに、「プロフィール」というカテゴリーを作り、そのカテゴリーのエントリーとしてプロフィールのコンテンツを記述、そのカテゴリだけを抽出してプロフィールのページを表示するという手段があるようですが、カテゴリーメニューや最近のエントリーに含まれてしまうので、逆にそれらから除外する設定が必要となるためやや面倒です。
ということで、ここではテンプレートに直接コンテンツを記述する方法で説明します(妥当な手法であるかどうかは定かでありません)。
1.新しいテンプレートの作成
Movable Type 管理画面左メニューより「テンプレート」をクリック。右側上に表示されている「新しいインデックス・テンプレートを作る」をクリック。
2.テンプレート設定
次に表示されたページで次の各項目を設定します。
- テンプレートの名前:Profile Index(任意の名前)
- 出力ファイル名:about.html(任意の名前)
- 「インデックス・テンプレートを?(中略)?再構築する」をチェック
- このテンプレートにリンクするファイル:何も設定しない
- テンプレートの中身:
ここではCategory Archiveの内容をそのままコピー下記の2004.10.29 追記のリストの内容をコピーしてください。なおサイドバーの内容については適宜必要なものを他のテンプレートからコピーしてください(注意事項がありますので先の追記欄を併せてご確認ください)
3.テンプレートより不要なタグを削除
プロフィールをカテゴリーやエントリーとして登録しないので、上記のテンプレートをコピーしただけでは再構築時にエラーとなります。そのため「テンプレートの中身」欄にコピーしたテンプレートより下記のタグを削除します。終了タグがある場合はそちらも併せて削除。
- MTArchiveTitle(タイトル)
- MTEntries(エントリー)
- MTDateHeader(日付)
- MTEntryXXX(個別エントリー:XXXは任意の文字列)
2004.10.29 追記
下記に本サイトの「プロフィール」を元にしたサンプルを置いておきます。本サイトで公開中のスタイルシート利用が前提です。サイズ可変の場合は赤色部分を削除してください。
うまく動作しないようでしたらすいませんがご連絡ください。注:サイドバーのメニューに、カテゴリー・アーカイブや日別アーカイブにある「The list of ?」のメニューを挿入しないでください(ここには上記のMTArchiveTitleが含まれているので再構築時にエラーとなります)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<title><$MTBlogName$>: プロフィール</title>
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="<$MTBlogURL$>index.rdf" />
</head>
<body>
<div id="box">
<div id="banner">
<h1><a href="<$MTBlogURL$>" accesskey="1"><$MTBlogName$></a></h1>
<h2><$MTBlogDescription$></h2>
</div>
<!-- 左サイドバーここから -->
省略(適宜必要なメニューを挿入してください)
<!-- 左サイドバーここまで -->
<div id="content">
<div class="blog">
<h2 class="date">プロフィール</h2>
<div class="blogbody">
<h3 class="title">●名前</h3>
yujiro
</div>
<div class="blogbody">
<h3 class="title">●性別</h3>
男
</div>
<div class="blogbody">
<h3 class="title">●さらに詳しく</h3>
</div>
</div>
</div>
<!-- 右サイドバーここから -->
省略(適宜必要なメニューを挿入してください)
<!-- 右サイドバーここまで -->
<br clear="all" />
</div>
</body>
</html>
4.テンプレートにコンテンツ記述
修正したテンプレートの本文に該当する部分にプロフィールを直接書き込みます。入力後このテンプレートを保存して再構築します。
5.サイドバーメニューにリンク設定
Main Index等のサイドバーメニューに下記の部分を追加します。フォーマットは各自のメニューのフォーマットに合わせてください。追加後保存して再構築します。
<div class="side">
<a href="<$MTBlogURL$>about.html">プロフィール</a><br />
</div>
2004.11.18 追記
サイドメニューにカテゴリー・アーカイブや日別アーカイブにある「The list of ?」のメニューを挿入しない注意書きを追記。
2004.11.29 追記
作業手順の「Category Archiveの内容をそのままコピー」は適切な表現でないため、提示のリストを使用するよう記述を変更致しました。
2005.03.12 追記
テンプレートの配置が可変3カラム専用でしたので固定3カラムに対応できるよう変更致しました。
2005.12.30 追記
3.2-ja 用記事へのリンクを追加しました。
個別アーカイブレイアウト変更
ポップアップ画面からコメントを送信した後にトップページがそこに表示されてしまうため、個別アーカイブのページでのマルチカラム化はやめました。
先程公開したテンプレートもそのように変更しています。
文字が表示されない不具合(記事が真っ白)・その2
結局テンプレートを入れ替えて回復してしまった「個別アーカイブの本文が表示されない」の問題ですが、不具合について記された同様の記事を見つけました(ただしMovable Type旧バージョン)。「真っ白」というのが巷のキーワードだったみたいです。こういう時どういう単語で検索すれば効率良くヒットするかって悩みますね。
ということでいくつか挙げておきます。参照元の記事は同じです。
Movable Type 3.0xで同様の記事が見つからないので、多分2.xから3.0のメジャーバージョンアップでバグフィックスされ、そこから私はテンプレートを「HINAGATA-3column 1.0」に変更したのでその事象に遭遇したのでしょう。そういえば私の時も短い文章が見えなくなる確率が高かったです。で、そういうのはたいがいダジャレなのでてっきりブラウザがひいてしまったのかと(寒)。
今もWinXP+IE6.0で個別アーカイブを順番に見ていくと記事が真っ白になるサイトを時々見かけます。まあ私がMacでどう見えているかが分からないように、その環境がない方には対岸の火事でしょうか。
ポップアップ画面修正
まだ完全ではありませんが、本文下の「コメント」および「トラックバック」をクリックした時のポップアップ画面のレイアウトを修正しました(これがやりたかった事です)。
現状ではコメント送信後にぐちゃっとなったメイン画面がポップアップ画面に出てしまうのでここは別途修正します。この原因は個別アーカイブ表示画面とテンプレートを共用しているためですね。ここをマルチカラムにしたのが良くなかったみたいです。
きちんと動作しないサイトって不信感抱かれるのでこの辺りを後回しにしたのは反省。これで少しはコメント頂けるようになるでしょうか。(笑)
カレンダー修正
以前、カレンダーの各曜日の幅が曜日名の文字の長さに依存していたので週末に向かって狭くなってました(笑)。昨日テンプレート一新の際、曜日のフォントを小さくして対処をしたのですがそれでも微妙にずれていたので各曜日の幅を一律指定。これでスッキリしました。
本当に直したいのはここではないのですが夜中になってしまったのでそこはまた今度。
テンプレート変更
見た目はたいして変わってませんが、
より各テンプレートをごっそり頂いて個別アーカイブで文字が表示されない不具合を解消しました。
前のテンプレートでは他にも不具合があり、左右のカラムがある部分とない部分で中央カラムの左右余白に若干ズレが生じてました。こちらのテンプレートではそういう不具合は発生しない模様です。ありがとうございました。
その他の変更点は、
- カレンダーサイズの変更(文字サイズを縮小)
- blockquoteのデザイン変更
です。まだ未設定部分が残ってますがとりあえず今晩はここまで。
文字が表示されない不具合
個別アーカイブの部分です。まだ直してませんがNetscape7.1や別PC(Win2000)のIE6.0から参照すると正常に表示されるので一律発生する問題ではないようですね。たまに同じような現象になっているblogサイトをみかけます。同様の問題なんでしょうか。
他にも不具合があるので週末にまとめて修正しようと思います。
デザイン変更
日付の部分を反転。本文下の罫線を点線に。検索のところにあった「Search this site:」を削除(一応意味のあるタグですが)。各メニュータイトルを英語に戻したのと配色の統一。
…てやってたら個別エントリーアーカイブの表示がおかしくなりました。
個別エントリーアーカイブで本文が表示されない問題
先の設定で時間を費やしたのが個別エントリーアーカイブのカスタマイズ後に本文が時々正常に表示されなくなるという問題です。具体的には記事を切り替えていくと背景と同じ色で表示されてしまう本文があるみたいで、マウスで本文の辺りをドラッグしないと文字が現れません。発生原因を切り分けてみたところトップページの
<div class="link-note">Powered by<br />
<a href="http://www.movabletype.org">Movable Type<$MTVersion$></a><br />
</div>
の部分を挿入すると発生する模様なので暫定対処でここを表示させないようにしました。原因が判明したら追記します。
テンプレート変更
忘却の彼方(笑)だった、個別アーカイブ・カテゴリー別アーカイブ・月別アーカイブのテンプレートを変更しました(「テンプレート」とはページに表示する情報やレイアウト等を決めるためのファイルです)。
基本的にはトップページのレイアウトを反映させ、左右のメニューの配置を各ページ毎に微妙に変えてます。例えば月別メニューからジャンプした場合は右側にその月の全記事と月別メニューを並べて、(その時使わないと思われる)カテゴリー別メニューは左へ。これで多少直感的に操作できるようにしたつもりですがいかがでしょう?
気がつかなかったのですが月別・記事別のページには本文上部に前後の記事(または月)およびトップページへジャンプするリンクがありました。これは Movable Type3.0 になってから付加された機能でしょうか(カテゴリー別ページからトップページに戻る時は左上のタイトルをクリックしてやってください)。
あとカテゴリー別はまとめて表示されてしまうので分割できればと思います。プラグインが出回っているみたいなのでこれはまたの機会に。
本文へのカテゴリー名追加と表示件数変更
本文下に「Posted by」という後に投稿者名が表示されていたのですが自分しかありえないので削除。その代わりカテゴリー名を追加しました。あと本文は7日分を表示してましたが1週間書かないとなくなってしまうので、「最近の7件」に変更してます。
過去のコンテンツ
blog設置前のコンテンツを登録しました。それを記した日あたりに配置しています。
そういえば個別ページやカテゴリー別のページ、月別アーカイブのページがカスタマイズできてませんでしたね。これらのページで右側に空白があるのはトップページのStylesheetを共用しているからです。
今日は眠いのでまた今度。
マウスのテキストコピー対処
#いつまでやってんだって感じですが…
Stylesheetのabsolute指定をfloat指定に変更して本文のテキストコピーができるようにしました。3カラムで両脇固定サイズ・中央可変サイズが保ててホッとしてます。
参考にさせて頂いたサイトはこちら。
あとはカウンタの画像を変更と本文下にカテゴリー名を追加。
マウスのテキストコピーに不具合
Stylesheetでabsolute指定をしているとIE6ではマウスでのテキストコピーが正常にできないみたいですね(今頃気がつきました)。他のサイトで解消法が書かれているようなので検討してみます。できれば3段カラムは崩したくないのですが…。
「検索」タイトルとテキストエリア間の空白修正
「検索」のタイトルと検索用テキストエリアの幅を狭くしました。以前も書いたのですがフォームの前後は自動改行が入るので、以下のtableタグでformタグを囲む方法で不要な改行をなくしてます。
注:CSSを利用した修正方法がありますので、「検索」タイトルとテキストエリア間の空白修正(その2)を参照ください。
<table>
<form method="get" action="<$MTCGIPath$><$MTSearchScript$>">
<td>
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<label for="search" accesskey="4">Search this site:</label><br />
<input id="search" name="search" size="20" /><br />
<input type="submit" value="Search" />
</td>
</form>
</table>
それと、NC7.1で左側タイトルの枠線(下だけ)が表示されていなかったのを対処。MACではちゃんと見えるんでしょうか…。
2005.08.18 追記
CSSを利用して対処する記事へのリンクを追加しました。
blogのレイアウト
このページの3カラムレイアウトはstylesheetでposition:absolute指定(絶対値指定)で記述しています。float:left(相対指定?)でも可能なようですが書き方によってはブラウザの幅を狭くするとブロックが下に回り込んでしまう現象が起きるみたいで、そういうサイトをいくつか発見したので今の設定にしています。2カラムのサイトでも同様です。
blogは機能自体がよく分かってなかったので敬遠していたのですが、インストールした後は設定でちょっとハマッてしまった感じです。
フォントサイズ指定変更
ブラウザの表示で文字サイズを変更するとレイアウトが崩れていたのでフォントサイズを相対値指定から絶対値指定に変更しました。本文はやや大きめに。あと月別アーカイブにトータル数表示を追加。
タイトル/URL変更・メニュー追加等
タイトル・URLを変更しました。最近のコメント・最近のトラックバック・カテゴリー別表示も追加。画像も変更。
参考サイトは以下です。ありがとうございました。
トップページ3カラム化
Movable Type のレイアウトってデフォルト2カラムなんですが、他サイトのサンプルスタイルシートを参考にしてご覧の通り3カラム化に成功しました。幅も固定サイズだったのを中央のエントリー部分だけ可変になるように変更しました。
参考サイトは下記です。ありがとうございました。
追記:
2004年6月12日現在の3カラムテンプレートは、
の大半を流用させて頂いてます。変更した経緯は下記を参照ください。
blog設定
巷でblogが流行っているので Movable Type 3.0D 入れてみました。
ネット上にはバージョン2.66の情報が結構散在してまして、日本語化パッチも出回っているので「これなら大丈夫だろう」と思いながら公式サイトにアクセスしてみると、全て3.0の情報に切り変わってしまってました。3.0からは日本語版もリリースされるようなのですが少し先のようで、とりあえず英語版をダウンロードしました。
ところが、「3.0英語版のアーカイブ内にある lib/MT/L10N/ja.pm の 243行目にtypoがあって読み込みに失敗しているようです。修正すれば日本語を選択できるようになります」というblogを発見。該当部分を修正しインストール後の言語設定を変更したら日本語表示になりました。ちょっと優越感(笑)。
アーカイブの取得方法ですが、まず公式ページ左上の「Get Movable Type」をクリック。次に右真ん中の「Movable Type Free」の中の「Movable Type Free.」をクリック(右上に日本語版のリンクがあるのでそのうちこちらから取得できるようになるでしょう)。あとは適当に進めていけばアーカイブを取得できます。
インストールで参考にさせてもらった主なサイトは以下。ありがとうございました。
なおDB_File.pm(perlのモジュール)等が予めインストールされていないと途中で失敗するので注意(上のサイトに書かれてます)。また「Active Perlは5.6.1が良い」とも書かれています。
テンプレート・css等は素の状態です。トラックバックもまだテストしてません。
