2005年06月28日
◆ 作成日時を公開日時に自動更新するプラグイン
記事を作成してる間に時間がたってしまったり、下書きにして保存した後、公開したとき、時間が作成日時のままになっているため、公開日時とズレがでます。
それを自動的に公開日時に変更してくれるプラグインです。
The blog of H_Fujimotoさんのエントリーの作成日時を公開日時に自動更新するプラグインにあるreleasedate.plのソースをコピーして、「releasedate.pl」と名前をつけたファイルをつくり、Movable Typeの「plugins」ディレクトリにアップロードするだけで完了です。
これでエントリの作成日時が、公開時に自動的に公開日時に変更されます。
エントリーの作成日時を更新したくない場合は、「エントリーの内容(body)」の欄の最後に、半角で#nc#と入力します。
2005年06月20日
◆ 前のエントリへ移動するリンク
すごく簡単なカスタマイズです。
ページの下のほうに表示されているページから前のエントリのページへ移動するリンクを作ります。
</MTEntries>のすぐ上に以下を貼り付けて完了です。
<MTEntryPrevious>
<a href="<$MTEntryPermalink$>">≪ 前のエントリへ</a>
</MTEntryPrevious>
</MTEntriesFooter>
Techknow Weblogさんのメインページに「<<前のエントリへ」リンクを作るを参考にさせていただきました。
◆ 月めくりカレンダーphp版
月めくりカレンダーのphp版です。
新しい月になったとき、その月の記事がないままコメントやトラックバックなどがあると、カレンダーがエラーになってしまう不具合も修正してあります。
まず、カレンダーのスタイルシートを作ります。
テンプレートの名前をカレンダーにし、出力ファイル名はcalsheet.cssにします。
background:#F0FFFF;
}
A { text-decoration: underline; }
A:link { color: #000099; }
A:visited { color: #000099; }
A:active { color: #000099; }
A:hover { color: #FA8072; }
.calendar {
color: #999999;
font-family:verdana, arial, sans-serif;
font-size: x-small;
padding-right: 1px;
text-align: left;
margin-bottom: 30px;
}
.calendarhead {
color:#666666;
font-family:verdana, arial, sans-serif;
font-size:x-small;
text-align:center;
font-weight:bold;
text-transform: uppercase;
letter-spacing: .3em;
}
.calendar th {
height:20px;
width:20px;
}
次に新しいテンプレートを作ります。
テンプレートの新しいアーカイブ・テンプレートを作るをクリックし、テンプレートの名前をCalendarにします。
テンプレートの中身には以下のものを書きます。
<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$>calsheet.css" type="text/css" />
<MTBlogIfCCLicense>
<$MTCCLicenseRDF$>
</MTBlogIfCCLicense>
</head>
<body>
<div align="center" class="calendar">
<table table width="160" border="0" cellspacing="4" cellpadding="0" summary="Monthly calendar with links to each day's posts">
<caption class="calendarhead">
<MTArchivePrevious>
<a href="<MTBlogURL>archives/calendar/<MTArchiveDate format="%Y/%m/index">.php"> ≪</a>
</MTArchivePrevious>
<$MTArchiveDate format="%B %Y"$>
<MTArchiveNext>
<a href="<MTBlogURL>archives/calendar/<MTArchiveDate format="%Y/%m/index">.php"> ≫</a>
</MTArchiveNext>
</caption>
<tr height="20">
<th abbr="Sunday" align="center"><span class="calendar">日</span></th>
<th abbr="Monday" align="center"><span class="calendar">月</span></th>
<th abbr="Tuesday" align="center"><span class="calendar">火</span></th>
<th abbr="Wednesday" align="center"><span class="calendar">水</span></th>
<th abbr="Thursday" align="center"><span class="calendar">木</span></th>
<th abbr="Friday" align="center"><span class="calendar">金</span></th>
<th abbr="Saturday" align="center"><span class="calendar">土</span></th>
</tr>
<MTCalendar month="this">
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td align="center"><span class="calendar">
<MTCalendarIfEntries><MTEntries lastn="1">
<a href="<$MTEntryLink archive_type="Daily"$>" title="[<$MTEntryTitle$>]" target="_top">
<$MTCalendarDay$></a>
</MTEntries></MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank></span></td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>
</table>
</div>
</body>
</html>
そして、ウェブログの設定から、アーカイブの設定へ行き、「テンプレートとアーカイブを関連付ける。」で、アーカイブの種類を月別にし、テンプレートをCalendarにして保存します。
月別テンプレートのところにCalendarが追加されているのを確認し、その右横の「アーカイブ・ファイルのテンプレート」に、
注意点は、Calendar左横のラジオボタンは触らないことです。月別のテンプレートは日付アーカイブのままにしておきます。
メインページの拡張子をphpにして、任意の場所に以下を貼り付けます。
$path = '絶対パス';
$url = '<$MTBlogURL$>';
$year = '<$MTDate format="%Y" $>';
$month = '<$MTDate format="%m" $>';
$filename = 'index.php';
$src = "";
$file = 'archives/calendar/' . $year . '/' . $month . '/' . $filename;
if (file_exists($path . $file)) {
$src = $url . $file;
} else {
for ($i = 0; $i < 11; $i++) {
if ($month != '01') {
$month--;
$month = substr('0'. $month, -2);
} else {
$year--;
$month = '12';
}
$file = 'archives/calendar/' . $year . '/' . $month . '/' . $filename;
if (file_exists($path . $file)) {
$src = $url . $file;
$flag = 1;
break;
}
}
}
?>
<div lign="center">
<iframe name="cal-iframe" src="<? print $src; ?>" width="160"
height="150"scrolling="NO" frameborder="0" marginwidth="0" marginheight="0"></iframe>
</div>
/virtual/xxxxxx/public_html/xxx/といったトップページへの絶対パスを書きます。
/virtual/xxxxxx/public_html/xxx/index.phpならば、$path = '/virtual/xxxxxx/public_html/xxx/';となります。
index.phpはいらないです。
これを保存して再構築します。
最後に、サーバー上に残っているindex.htmlを削除して終わりです。
これを忘れると、index.phpではなく、index.htmlが表示されてしまいます。
追記 カレンダーは日別にリンクするようにしてあるので、ウェブログの設定から、アーカイブの設定へいき、日別をチェックして保存するのを忘れずに。
きままにポロポロさんの月めくりカレンダーと小粋空間さんの月送りカレンダー・1日に表示されなくなる不具合を改善を参考にさせていただきました。
関連記事:月めくりカレンダー
◆ メールアドレスの非表示
MTのコメント欄にあるメールアドレスに記入すると、URLを記入しなかった場合、表示されてしまいますが、それを非表示にする方法です。
コメント・リストと個別エントリーアーカイブのテンプレートの投稿者の後にある
コメント・プレビューのテンプレートは任意で変更してください。
変更したら、再構築して終わりです。
*** CCC ***さんのコメント投稿の際のメールアドレスを非表示 MTを参考にさせていただきました。
2005年03月21日
◆ サイドメニューの折りたたみ
サイドバーがどんどん長くなってきたので、折りたたみ式にしました。
使わせていただいたのは、小粋空間さんで公開されている方法です。
スタイルシートの設定が違うので、div属性のclass="side"だけはずしましたが、
あとは説明されているとおりにやったらすぐにできました。
yujiroさん、ありがとうございます。
2005年03月17日
◆ 月めくりカレンダー
カレンダーを過去の分も表示できるようにしました。忘れないうちに覚え書き。
参考にさせていただいたのは、diving to ...さんです。
まず、テンプレートの設定で、新しいアーカイブ・テンプレートを作るを選び、名前をcalendarにして以下のソースを書きます。
<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$>calsheet.css" type="text/css" />
<MTBlogIfCCLicense>
<$MTCCLicenseRDF$>
</MTBlogIfCCLicense>
</head>
<body>
<div align="center" class="calendar">
<table border="0" cellspacing="4" cellpadding="0" summary="Monthly calendar with links to each day's posts">
<caption class="calendarhead">
<MTArchivePrevious>
<a href="<MTBlogURL>archives/<MTArchiveDate format="%Y_%m">.html" title="« <MTArchiveDate format="%B %Y">" onmouseover="window. status='<MTArchiveDate format="%B %Y">'; return true" onmouseout="window.status='';return true">«</a>
</MTArchivePrevious>
<$MTArchiveDate format="%B %Y"$>
<MTArchiveNext>
<a href="<MTBlogURL>archives/<MTArchiveDate format="%Y_%m">.html" title="» <MTArchiveDate format="%B %Y">" onmouseover="window. status='<MTArchiveDate format="%B %Y">'; return true" onmouseout="window.status='';return true">»</a>
</MTArchiveNext>
</caption>
<tr>
<th abbr="Sunday" align="center"><span class="calendar">日</span></th>
<th abbr="Monday" align="center"><span class="calendar">月</span></th>
<th abbr="Tuesday" align="center"><span class="calendar">火</span></th>
<th abbr="Wednesday" align="center"><span class="calendar">水</span></th>
<th abbr="Thursday" align="center"><span class="calendar">木</span></th>
<th abbr="Friday" align="center"><span class="calendar">金</span></th>
<th abbr="Saturday" align="center"><span class="calendar">土</span></th>
</tr>
<MTCalendar month="this">
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td align="center"><span class="calendar">
<MTCalendarIfEntries><MTEntries lastn="1"><a href="<$MTEntryLink archive_type="Daily"$>" target="_blank"><$MTCalendarDay$></a></MTEntries></MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank></span></td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter></MTCalendar>
</table>
</div>
</body>
</html>
それから、今度は、新しいインデックス・テンプレートを作るを選んでスタイルシートをつくります。
テンプレートの名前をcalendar stylesheetにして、ファイル名をcalsheet.cssにします。
background:#F0FFFF;
}
A { text-decoration: underline; }
A:link { color: #000099; }
A:visited { color: #000099; }
A:active { color: #000099; }
A:hover { color: #FA8072; }
.calendar {
color: #999999;
font-family:verdana, arial, sans-serif;
font-size: x-small;
padding-right: 1px;
text-align: left;
margin-bottom: 30px;
}
.calendarhead {
color:#666666;
font-family:verdana, arial, sans-serif;
font-size:x-small;
text-align:center;
font-weight:bold;
text-transform: uppercase;
letter-spacing: .3em;
}
.calendar th {
height:20px;
width:20px;
}
そして、ウェブログの設定からアーカイブの設定にいき、月別とcalendarを関連付けます。
アーカイブ・ファイルのテンプレートには、
ポイントは、calendarを優先にしないことです。ラジオボタンはいじらない。
後は以下のソースをindexに張って、再構築して終わりです。
<iframe name="cal-iframe" src="<MTBlogURL>archives/<MTDate format="%Y_%m">.html" width="160" height="150"scrolling="NO" frameborder="0" marginwidth="0" marginheight="0">
</iframe>
</div>
これの問題は新しい月にかわるとき、記事を書かないとその月のカレンダーが作成されないことです。
記事を書かなくても作成されるようになるといいのだけれど。
2005年03月14日
◆ 最近のトラックバックの表示
まず、hirata's techknow MTさんで公開されているPingEntry.plをダウンロードして、mt.cgiのあるディリクトリのpluginsへアップロードします。
表示したい場所に、以下のソースを書きます。
<MTPings lastn="5">
<MTPingEntry>
<li>
◆ <a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
└ <a href="<$MTPingURL$>" target="_blank">
<$MTPingBlogName$></a> at <$MTPingDate format="%b/%e"$>
</MTPingEntry>
</il>
</MTPings>
</ul>
これで、トラックバックされた記事が表示され、どこからトラックバックがきたのかわかります。
わたしの好みでかなりシンプルなものになっています。
