Movable Type 備忘録

 

 月移動できるカレンダーにする

今までずっと疑問に思ってたことが、カレンダーの必要性です。
少なくともわたしのブログでは、アクセス解析でもほとんどアクセスがありません。

オブジェとしか思っていないカレンダーを少しでも見栄えよくしようと思ってかわいいフラッシュ・カレンダーを設置していました。

でも、1つ問題があってフラッシュ・カレンダー設置したはいいけど、XHTMLの構文チェックでエラーしてしまうんです。
XHTMLの構文に拘っていたわたしにとっては致命的で、JavaScriptを使ってフラッシュ・コードを表示させるようにしていました。

でも、これでもまだ問題があったんです。
実はGoogleのウェブマスターのためのガイドラインで気になることが書いてあったんです。
以下ちょっと引用します。

技術関連のガイドライン

Lynx などのテキスト ブラウザを使用してサイトを確認する。 ほとんどの検索エンジン スパイダーは、クロール時に Lynx に表示される形式で各サイトを認識します。 テキスト ブラウザで、Javascript、cookie、セッション ID、フレーム、DHTML、Flash などの特殊な機能を使用して作成されたサイトの一部が表示されない場合は、検索エンジンスパイダーがサイトをクロールするときに問題が発生する可能性があります。

もうお気づきの人もいると思いますが、話には聞いていたJavaScriptがSEO的にはマイナス…というのはまんざらでもないようです。
つか、SEOのことよく分かってませんけどね (; ̄∇ ̄A はは

- 2006.08.24 追記 -

JavaScriptがSEO的にマイナス…と聞いてましたが、実際のところあまり関係ないような気がします。
しばらく様子みたりしましたが、JavaScript使ってないからって検索エンジンの上位表示されるたわけでもないし、使ってたって上位表示されるサイトもあるわけでして、ホントに検索エンジンの上位表示を狙うなら、トータル的にSEO対策しないとあまり効果ないような気がします。

最近ではAjaxを多用されてるサイトもありますしねぇ。

ということで、便利なJavaScriptもあるので気にせず使うことにしました ( ̄∇ ̄)/

ということで、カレンダーの必要性に疑問を持っていたわたしは、迷うことなくフラッシュ・カレンダーを取り外し!!
かといって、なくしちゃうのもさみしい…ということで、別な形でカレンダーを設置し直しました。

今回は、月移動できるカレンダー+テンプレート内をすっきりさせるカスタマイズをやってみました。

今回紹介するカレンダーのカスタマイズは、テンプレート内からカレンダーのコードを外に出して、<iframe>タグで表示させるカスタマイズです。

カスタマイズ方法

  1. まずは、カレンダーのテンプレートを作成します。
    MovableType(ムーバブルタイプ)の管理画面の左サイドバーにある「テンプレート」というリンクをクリックして、画面上部にある「アーカイブ」というリンクをクリックします。
    そうすると、エントリ・アーカイブなどのテンプレート一覧が表示されます。

    そして、右上にある「テンプレートを新規作成」とありますので、そのリンクをクリックしてください。
    入力内容は以下の通りです。

    テンプレート名: カレンダー(任意)
    このテンプレートにリンクするファイル: 未記入でいいです。
    テンプレートの内容: 以下のコードをコピペします。
    
    
    <!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" xml:lang="ja">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" /><title><$MTBlogName$></title>
    <link rel="stylesheet" href="<$MTBlogURL$>style/styles-site.css" type="text/css" />
    </head>
    <body class="calendar-body"><center>
    
    <div id="calendar" class="hide">
    <table align="center" width="160" border="0" cellspacing="4" cellpadding="0" summary="Monthly Calendar">
    
    <caption>
        <MTArchivePrevious><a href="<MTBlogURL><MTArchiveDate format="%Y/%m/calendar">.html"> ≪</a></MTArchivePrevious>
    
        <$MTArchiveDate format="%B %Y"$>
    
        <MTArchiveNext><a href="<MTBlogURL><MTArchiveDate format="%Y/%m/calendar">.html"> ≫</a></MTArchiveNext>
    </caption>
    
    <tr>
    <th abbr="Sunday"><span class="sun">Su</span></th>
    <th abbr="Monday"><span class="mon">Mo</span></th>
    <th abbr="Tuesday"><span class="tue">Tu</span></th>
    <th abbr="Wednesday"><span class="wed">We</span></th>
    <th abbr="Thursday"><span class="thu">Th</span></th>
    <th abbr="Friday"><span class="fri">Fr</span></th>
    <th abbr="Saturday"><span class="sat">Sa</span></th>
    </tr>
    
    <MTCalendar month="this">
        <MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
        <td align="center"><span class="days">
            <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>
    
    </center></body>
    </html>
    
    

    一通り入力したら保存して再構築します。

  2. 次に、月別アーカイブに関連付けします。
    MovableType(ムーバブルタイプ)の管理画面左にある、「設定」というリンクをクリックして、画面上にある「公開」というリンクをクリックします。

    画面下の方に「マッピングを新規作成」とあるのでそれをクリックします。
    設定内容は以下の通りです。

    アーカイブの種類: 月別を選択します。
    テンプレート: 先ほど作ったカレンダーを選択します。
    
    

    選択したら右横にある「追加」ボタンをクリックすると、カレンダー用のテンプレートがマッピングされます。

    一覧表示されたカレンダー用テンプレートのドロップダウンリストから、「カスタマイズする」を選択してください。
    そして、出力フォーマットとして以下のように入力してください。

    %y/%m/calendar.html
    
    

    これは日付アーカイブのファイル名が %y/%m/%i/index.html で作成されるので、カレンダー用のファイル名を%y/%m/calendar.htmlと指定しています。
    例えば、今月(2006/06)の日付アーカイブは 2006/06/index.html ですが、カレンダーは 2006/06/calendar.html で作成されます。

    入力したら、変更を保存ボタンをクリックして再構築します。

  3. 次に、トップページのテンプレートを変更します。
    トップページで表示しているカレンダーのコードを削除して、任意の場所に以下のコードを追加します。

    <iframe name="calendar" src="<MTBlogURL><MTDate
    format="%Y/%m/calendar">.html"
    width="160" height="120"
    scrolling="no" frameborder="0" marginwidth="0" marginheight="0"></iframe>
    
    

    カレンダー用のテンプレートを透過にしたい場合には、以下のコードをお使いください。
    ただし、以下のコードでは、<iframe>タグの属性に allowtransparency はないので、XHTMLの構文チェックではエラーになります。

    <iframe name="calendar" src="<MTBlogURL><MTDate
    format="%Y/%m/calendar">.html"
    width="160" height="120"
    scrolling="no" frameborder="0" marginwidth="0" marginheight="0" allowtransparency="true"></iframe>
    
    

    青い字の部分は先ほどマッピングしたカレンダー・テンプレートのファイル名を指定しています。
    赤い字の部分は各自のブログデザインに合わせてサイズを変更します。
    一通り変更したら保存して再構築します。

  4. 次にスタイルシートを変更します。
    わたしが使っているスタイルシートは以下の通りです。

    body.calendar-body {
        background: none;
        font-size: 11px;
        line-height: 120%;
    }
    
    #calendar {
        font-family: Verdana, Arial, sans-serif;
        color:#ffc2c2;
    }
    
    /*カレンダーのタイトル(年)*/
    #calendar caption {
    }
    
    /*カレンダーの曜日*/
    #calendar th {
        height: 20px;
    }
    
    /*カレンダーの日付*/
    #calendar td {
    }
    
    #calendar a:link,
    #calendar a:visited,
    #calendar a:active {
        font-size: 11px;
        color: #990000;
    }
    #calendar a:hover {
        position: relative;
        bottom: 1px;
        font-size: 11px;
    }
    
    

    お好みで色、フォントサイズなどを変更してくださいな。

以上で、月移動できるカレンダー+テンプレート内をすっきりさせることができました。

 Trackback Pings(0)

No trackbacks found.

 Comments(0)

No comments found.

 Post a Comment

コメント用フィード