Calendar
« 2004年09月 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    


Categories
Archives

2004年09月 12日

MT アーカイブ連動カレンダー テンプレート

カテゴリー: blogをはじめてみよう

月間移動可能なカレンダーはすでに提案されているのですが、カレンダーでそのまま Archive をブラウズできる方が僕的にはうれしいなぁ~と。で、作ってみました。

このサイト左上にあるカレンダーがそのサンプルなんですが、今表示している Entry 郡の月別アーカイブへリンクされています。前月・次月アーカイブへもリンクされています。これを各日別・月別アーカイブに載せれば、閲覧している人がカレンダーを使って各アーカイブを自由にブラウズできるようになるってわけです。

Data Based Archive テンプレートに下記を追加することで実現できます。スタイルシート等は各サイトによって違うと思いますので適宜改変くださいませ。ちなみにこの色で表示されたところが主に必要な部分です。Data Based Archive でカレンダーを付けるための工夫も入っています。

<!-- カレンダー  --> 

<div class="sidetitle">
    Calendar
</div>

<div align="center" class="calendar">

<table width="160" border="0" cellspacing="2" cellpadding="0"
    summary="Monthly calendar with links to each day's posts">
    <caption class="calendarhead" >
        <MTArchivePrevious archive_type="Monthly">
            <a href="<$MTArchiveLink$>">&laquo;</a>
        </MTArchivePrevious>
        <a href="<$MTArchiveLink archive_type="Monthly"$>">
            <$MTEntryDate format="%B %Y"$></a>
        <MTArchiveNext archive_type="Monthly">
            <a href="<$MTArchiveLink$>">&raquo;</a>
        </MTArchiveNext>
    </caption>
    <tr>
    <th abbr="Sunday" align="center">
        <span class="calendar" >
            <font color="#990000">Su</font></span></th>
    <th abbr="Monday" align="center">
        <span class="calendar" >Mo</span></th>
    <th abbr="Tuesday" align="center">
        <span class="calendar" >Tu</span></th>
    <th abbr="Wednesday" align="center">
        <span class="calendar" >We</span></th>
    <th abbr="Thursday" align="center">
        <span class="calendar" >Th</span></th>
    <th abbr="Friday" align="center">
        <span class="calendar" >Fr</span></th>
    <th abbr="Saturday" align="center">
        <span class="calendar" >
            <font color="#0033CC">Sa</font></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="Last entry is[<$MTEntryTitle$>]">
                <b><$MTCalendarDay$></b></a>
        </MTEntries>
    </MTCalendarIfEntries>
    <MTCalendarIfNoEntries><$MTCalendarDay$>
        </MTCalendarIfNoEntries>
    <MTCalendarIfBlank> </MTCalendarIfBlank></span>
    </td>
    <MTCalendarWeekFooter>
    </tr>
    </MTCalendarWeekFooter>
    </MTCalendar>
</table>

</div>

Main Index のテンプレートはちょっと書き方を変えなければいけません。続きに示すようにしてください。

<!-- カレンダー  --> 

<div class="sidetitle">
    Calendar
</div>

<div align="center" class="calendar">

<table width="160" border="0" cellspacing="2" cellpadding="0"
    summary="Monthly calendar with links to each day's posts">
    <MTArchiveList  archive_type="Monthly" lastn="1">
        <caption class="calendarhead" >
            <MTArchivePrevious>
                <a href="<$MTArchiveLink$>">&laquo;</a>
            </MTArchivePrevious>
            <a href="<$MTArchiveLink$>">
                <$MTDate format="%B %Y"$></a>
        </caption>
    </MTArchiveList>
    <tr>
    <th abbr="Sunday" align="center">
        <span class="calendar" >
            <font color="#990000">Su</font></span></th>
    <th abbr="Monday" align="center">
        <span class="calendar" >Mo</span></th>
    <th abbr="Tuesday" align="center">
        <span class="calendar" >Tu</span></th>
    <th abbr="Wednesday" align="center">
        <span class="calendar" >We</span></th>
    <th abbr="Thursday" align="center">
        <span class="calendar" >Th</span></th>
    <th abbr="Friday" align="center">
        <span class="calendar" >Fr</span></th>
    <th abbr="Saturday" align="center">
        <span class="calendar" >
            <font color="#0033CC">Sa</font></span></th>
    </tr>
    <MTCalendar>
    <MTCalendarWeekHeader>
    <tr>
    </MTCalendarWeekHeader>
    <td align="center"><span class="calendar" >
    <MTCalendarIfEntries>
        <MTEntries lastn="1">
            <a href="<$MTEntryLink archive_type="Daily"$>" 
                title="Last entry is[<$MTEntryTitle$>]">
                    <b><$MTCalendarDay$></b></a>
        </MTEntries>
    </MTCalendarIfEntries>
    <MTCalendarIfNoEntries><$MTCalendarDay$>
        </MTCalendarIfNoEntries>
    <MTCalendarIfBlank> </MTCalendarIfBlank></span>
    </td>
    <MTCalendarWeekFooter>
    </tr>
    </MTCalendarWeekFooter>
    </MTCalendar>
</table>

</div>

上級技として

ここまで作ると Individual Entry Archive テンプレート(個別の Entry)にもカレンダーを載せたくなるのですが、まっとうな方法では実装できません。各アーカイブへの URL が Data-Based Archive 以外では生成できないからです。上級技として実装の指針も書いてみます。

  • カレンダーだけを自動生成する新しいアーカイブテンプレートを作成する。
  • ウェブログの設定 → アーカイブの設定で、「月別」として登録。
  • 生成 file 名を calender_<$MTArchiveDate format="%Y_%m"$>.html などとする。
  • PHP の include か、MTInclude を使ってcalender_<$MTArchiveDate format="%Y_%m"$>.html を各 Individual Entry Archive から読み込むようにする。

個人的な見解ですが、iframe タグを使って読み込む方法は IE 以外のブラウザでは不具合を起こすため、あまりお勧めできません…が、そのあたりを開き直れるのであれば。なお、これらの検討は以下のエントリーに詳しく書いてありましたのでご参考まで。

nlog(n): カレンダーを MTInclude するには

Posted by Gucchiy at 2004年09月12日 15:17
トラックバック
やっとできたー!
念願の月めくりカレンダーを設置できました。 今回参考にしたのはIdea&&Tec...
From: baby's talk at 2004年10月02日 21:22
MT アーカイブ連動カレンダー テンプレート
Idea&&TechnologyさんのページにあったこれMT アーカイブ連動カレ...
From: なおっきのぶろぐ at 2004年12月24日 17:09
新規カレンダー設置
新年のカレンダーではありません。右に表示されているこのブログのカレンダーを、初期設定を捨て新たに設置しました。これで月の>をクリックすることで月別のアーカイブへ...
From: ヤマセン仙北果樹園 新つづら書き at 2005年01月01日 23:52
月別アーカイブ連動カレンダー
来るべき1周年に向けてテンプレートの変更をちょこまかとやっております。ホントはデザインをガラリと変えてみたいのだけれど、まずはサイトナビゲーションの改善から。ア...
From: coffeebreak at 2005年02月01日 11:12
月連動型 カレンダー
【Idea&&Technology】さんのアーカイブ連動カレンダー テンプレートを参考にカレンダーを使いやすくしました。...
From: WEBLOG "EVERGREEN" at 2005年02月12日 18:45
月別表示を修正
友人のサイト WEBLOG "EVERGREEN": 月連動型 カレンダー に影響されて、カレンダーや月別表示を修正しました 右上のカレンダーの所に >> 次の...
From: 使いやすさとバイオリン at 2005年02月13日 02:25
月めくりカレンダーにしたよ!
サイドバーにあるカレンダーを新しくしました。 ・月送りができるようにしたい ・個...
From: Diario at 2006年01月16日 11:02
カレンダー追加
出勤前の空いた時間で、Idea&&Technologyさんのサイトを参考につけて...
From: 日記帳 at 2006年02月27日 07:30
コメント

昨日から、悪戦苦闘していたphotoblogが、これでようやく先へすすめます。^^
ありがとうございました。

Posted by: cafe at 2004年09月30日 02:04

こんにちは。お役に立てたようでしたら僕も嬉しいです。
ところで、上記ソースですが、厳密には、

« ⇒ &laquo;
» ⇒ &raquo;

ですね。そのままでも動きますが。修正しておきます。

#<pre> タグでも &xxx; はそのまま変換されてしまうのでした
#あまり反応なかったのでほっといてましたスマソ

Posted by: Gucchiy at 2004年09月30日 11:28

はじめまして。
コチラの記事を参考にさせていただきました。
念願の月めくりカレンダーが設置できてすごく嬉しいです。
コメントまでいただけて・・・本当にありがとうございました。

ところで。。。
そちらにトラックバックを送る際、何度もタイムエラーになってしまいます。。。
そのため、追記・修正のたびにそちらにpingを送ってしまっているようです。
何度も送ってしまって申し訳ありませんでした。

Posted by: みう at 2004年10月02日 22:38

こちらこそ、お役に立てたなら嬉しいです。

トラックバックの件、
いえいえ、そうかな、と思っていました。

この blog は自宅でサーバーで組んでいるので
(加えて Windows サーバーなので)
何かと不具合あるみたいです。

大抵の MT サイトは ping でエラーが帰ってきても
反映はされているみたいです。
ので、最初の一回だけ送って
後は トラックバックリストから削除しちゃうのが
賢い模様ですね。

僕も同じようなコトを他のサイトによくやってしまいますw

Posted by: Gucchiy at 2004年10月02日 22:47

使いやすいのありがとうございます。
間違えてトラックバック2回送っちゃいました・・・。
すみません。

Posted by: coffeebreak at 2005年02月01日 11:19

ご紹介、とてもありがとうございました!
なんぼかでもお役に立てたなら幸いです。
トラックバックは1つ削除しておきますね。

Posted by: Gucchiy at 2005年02月01日 12:41

MT3.2からブログを始めたブログ初心者です。
デフォルトでカレンダーが出ないので四苦八苦していたところ 貴サイトにたどり着きました
早速セットしましたら見事にカレンダーが!
ありがとうございました。

ただ cssが反映されてないので テンプレートにstyles-site.cssにリンクを貼ってみたのですがダメでした。
初心者的質問で恐縮なのですが どうすればよいのかご教示頂けないでしょうか?

Posted by: tetsu at 2005年10月12日 10:34

ご連絡が遅くなってしまいました。
上記ですが、ちょっと状況が分かりません…。スタイルシート自体の記述を間違っていることはありませんか?ないしは、スタイルシートのリンク先 URL を間違っているとか。出来た blog のソースを直に参照してみると、時々意外な問題を発見することがあります>MT

Posted by: Gucchiy at 2005年11月04日 11:14