TopMovable Typeカスタマイズカレンダー > Ajax 月送りカレンダー
2006年10月10日

Ajax 月送りカレンダー

Posted at October 10,2006 12:10 AM
Category:[Ajax, カレンダー]
Tag:[, , , ]
Ajax 月送りカレンダーAjax を利用した Movable Type 月送りカレンダーのカスタマイズです。リアルタイムカレンダー(本日の日付の装飾)および土・日・休日表示も盛り込まれています。

このカレンダーは、従来の月送りカレンダー(iframe 利用)と比較して、下記のアドバンテージがあります。

  • 週数の変化によって高さが可変、つまりカレンダー下に表示されるアイテムとの間隔が常に一定
  • 月送りのリンクの履歴がブラウザの履歴に残らない

すでにお気づきの方もいらっしゃると思いますが、当サイトでは数ヶ月前から月送りカレンダーを Ajax 化して試験運用してiいます。月送りのリンクをクリックして Ajax 化されたカレンダーを体感してみてください。

注:本カスタマイズでつまづいた場合、「8.トラブルシューティング」をご覧ください。

仕様

ここで紹介する月送りカレンダーの主な仕様です。

  • Ajax を利用してテーブル型のカレンダーを月送りします。Ajax 化されるのはページ表示時および月送り時のカレンダー切り替え時です
  • クッキーを利用して月送り状態を保持します
  • カレンダーの取得に失敗した場合、カレンダー表示エリアにメッセージを表示します(表示内容・非表示のカスタマイズ可能)

以下、カスタマイズ方法です。ここではデフォルトテンプレートおよび公開テンプレートをサンプルにしていますが、Ajax の動作はテンプレートに依存するものではありませんので、CSS を変更すれば他のテンプレートでもお使いになれます。

1.スクリプトのダウンロード・アップロード

下記のスクリプトをダウンロードします。

ダウンロードした ajaxCalendar.jsdayChecker.js はメインページと同じディレクトリにアップロードしてください。
また、prototype.js はダウンロードしたアーカイブを解凍して、dist フォルダの中にある prototype.js をメインページと同じディレクトリにアップロードしてください。

2.カレンダーテンプレート作成

注:ブログの文字コードが UTF-8 以外で運用されている場合は、2.1項のカスタマイズも併せて行ってください。

バージョンが 3.2-ja 以降の場合、管理メニューの「テンプレート」→「アーカイブ」→「テンプレートを新規作成」をクリック。3.1x-ja 以前の場合、管理メニューより「テンプレート」→「アーカイブに関連したテンプレート」で「新しいアーカイブテンプレートを作る」をクリック。
次画面で下記を設定してください。

  • テンプレート名:カレンダー(名称は何でもOKです)
  • このテンプレートにリンクするファイル:(設定不要)
  • テンプレートの内容:下記のいずれか

デフォルトテンプレートの場合

<div class="module-calendar module">
<h2 class="module-header"><MTArchivePrevious><a href="javascript:void(0);" onclick="changeMonth('<$MTBlogArchiveURL$><MTArchiveDate format="calendar/%Y/%m/%i">');">&#65308;</a> </MTArchivePrevious><$MTArchiveDate format="%B %Y"$><MTArchiveNext> <a href="javascript:void(0);" onclick="changeMonth('<$MTBlogArchiveURL$><MTArchiveDate format="calendar/%Y/%m/%i">');" >&#65310;</a></MTArchiveNext></h2>
<div class="calendar">
<table summary="<MTArchiveDate format="%Y/%m">">
<tr height="15">
<th abbr="Sunday" class="sunday">Sun</th>
<th abbr="Monday">Mon</th>
<th abbr="Tuesday">Tue</th>
<th abbr="Wednesday">Wed</th>
<th abbr="Thursday">Thu</th>
<th abbr="Friday">Fri</th>
<th abbr="Saturday" class="saturday">Sat</th>
</tr>
<MTCalendar month="this">
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td><MTCalendarIfBlank><MTElse><span></MTElse></MTCalendarIfBlank><MTCalendarIfEntries>
<MTEntries lastn="1"><a href="<$MTEntryLink archive_type="Daily"$>"><$MTCalendarDay$></a></MTEntries>
</MTCalendarIfEntries><MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries><MTCalendarIfBlank>
<MTElse></span></MTElse></MTCalendarIfBlank></td><MTCalendarWeekFooter></tr></MTCalendarWeekFooter></MTCalendar>
</table>
</div>
</div>

公開テンプレートの場合

<table summary="<MTArchiveDate format="%Y/%m">">
<caption class="calendarhead">
<MTArchivePrevious>
<a href="javascript:void(0);" onclick="changeMonth('<$MTBlogArchiveURL$><MTArchiveDate format="calendar/%Y/%m/%i">');">&#65308;</a>
</MTArchivePrevious>
<$MTArchiveDate format="%B %Y"$> 
<MTArchiveNext>
<a href="javascript:void(0);" onclick="changeMonth('<$MTBlogArchiveURL$><MTArchiveDate format="calendar/%Y/%m/%i">');" >&#65310;</a>
</MTArchiveNext>
</caption>
<tr height="15">
<th abbr="Sunday" class="sunday">Sun</th>
<th abbr="Monday">Mon</th>
<th abbr="Tuesday">Tue</th>
<th abbr="Wednesday">Wed</th>
<th abbr="Thursday">Thu</th>
<th abbr="Friday">Fri</th>
<th abbr="Saturday" class="saturday">Sat</th>
</tr>
<MTCalendar month="this">
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td><MTCalendarIfBlank><MTElse><span></MTElse></MTCalendarIfBlank><MTCalendarIfEntries>
<MTEntries lastn="1"><a href="<$MTEntryLink archive_type="Daily"$>"><$MTCalendarDay$></a></MTEntries>
</MTCalendarIfEntries><MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries><MTCalendarIfBlank>
<MTElse></span></MTElse></MTCalendarIfBlank></td><MTCalendarWeekFooter></tr></MTCalendarWeekFooter></MTCalendar>
</table>

設定が終わったら「保存」をクリックしてください。

2.1 ブログの文字コードがUTF-8以外の場合

Ajax(XMLHttpRequest)は UTF-8 で動作することを前提としています。他の文字コードでブログを運用している場合、本カスタマイズが正常に動作しない可能性があります。*1

ここではひとつの解決方法として Ogawa::memoranda さんの MT-I18N プラグインを利用する方法を紹介します。つまりブログの文字コードが UTF-8 以外の場合、プラグインを利用してカレンダーアーカイブの文字コードだけ UTF-8 で出力するという作戦です。

まず、MT-I18N Plugin.ja JP をダウンロードして、プラグイン mt-i18n.pl を plugins フォルダにアップロードします。

そして、2項で示したカレンダーテンプレート全体を下記の青色のタグで括ってください。

<MTEncodeText to="utf8">
      :
 (カレンダーテンプレート)
      :
</MTEncodeText>

本プラグインを利用し、EUC-JP、Shith_JIS で作成した Movable Type のサイトで、カレンダー動作と日本語表示の正常性は確認済です。ただし、.htaccess 等で文字コードを強制的に指定している場合は未確認です。

3.カレンダーテンプレートを月別アーカイブに関連付け

バージョンが 3.2-ja 以降の場合、管理メニューの「設定」→「公開」の「アーカイブ・マッピング」の項目の右側にある「マッピングを新規作成」をクリックして下記の設定を実施してください(バージョン 3.3 以降の場合、右上にある「詳細モードに切り替え」のリンクをクリックすることで「公開」というメニューが表示されます)。

バージョンが3.1x-ja 以前の場合は、管理メニューより「ウェブログの設定」→「アーカイブの設定」で「新しく、テンプレートとアーカイブを関連付ける」より下記の設定を実施してください。

  • アーカイブの種類:月別
  • テンプレート:カレンダー(←2項で設定した「テンプレート名」です)

「追加」をクリック後、その下の「アーカイブ」欄にある「月別」に、2項で付与した「テンプレート名(ここでは"カレンダー")」が追加されていればOKです。
次に同じ「アーカイブ」欄の「月別」の「カレンダー」の右側にある「出力フォーマット(3.2-ja 以降)」または「アーカイブ・ファイルのテンプレート(3.1x 以前)」に下記を設定してください。

出力フォーマット(3.2-ja 以降)

calendar/%y/%m/%i

アーカイブ・ファイルのテンプレート(3.1x-ja 以前)

<$MTArchiveDate format="calendar/%Y/%m/index.html"$>

これがカレンダー用のディレクトリおよびファイル名となります。
設定後、ページ下にある「変更を保存」をクリックしてください。

またカレンダーを初めてご利用になる場合は、「アーカイブ種類」欄の「日別アーカイブ」をチェックして保存してください。このチェックがされていないと、再構築で下記のようなエラーが発生します。

日付アーカイブ「Monthlyxxxx」の再構築に失敗しました: テンプレート「カレンダー」の再構築に失敗しました: <MTCalendar>タグでエラーが発生しました: <MTCalendarIfEntries>タグでエラーが発生しました: <MTEntryLink>タグでエラーが発生しました:<$MTEntryLink$>タグを使って、Dailyアーカイブにリンクしようとしましたが、そのアーカイブ・タイプは公開されていません。

4.テンプレート修正

カレンダーを表示させたいテンプレートに下記の設定を行います。

4.1 外部ファイルのインクルード

<head>~</head> の間に下記を追加します。

<script type="text/javascript" src="<$MTBlogURL$>prototype.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>ajaxCalendar.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>dayChecker.js"></script>

4.2 カレンダー表示部分の設定

カレンダーを表示させたい位置に下記を追加します。

<div id="calendar"></div>
<script type="text/javascript">
getCalendar("<$MTBlogArchiveURL$>", "<$MTBlogID$>", "<$MTBlogArchiveURL$><MTEntries lastn="1" sort_order="descend"><$MTEntryDate format="calendar/%Y/%m/" $></MTEntries>");
</script>

div は空要素ですが、Ajax によってこの部分にカレンダーが表示されます。
上記リストの赤色部分を修正します。
例えば archives というアーカイブパスを設定している場合は、下記の青色のように修正てください。

getCalendar("<$MTBlogArchiveURL$>", "<$MTBlogID$>", "<$MTBlogURL$><MTEntries lastn="1" sort_order="descend"><$MTEntryDate format="archives/calendar/%Y/%m/" $></MTEntries>");
-->

5.CSS修正

下記をスタイルシートに追加します。すでにカレンダー関係のスタイル設定が行われている場合は競合を避けるため、古い設定を削除(またはコメントアウト)してください。

デフォルトテンプレートの場合

.calendar {
    margin: 5px 0;
    text-align: center;
}
.calendarhead {
    padding-bottom: 5px;
    font-size: 9px;
    letter-spacing: 0.2em;
}
.calendar table {
    padding: 0;
    border-collapse: collapse;
}
.calendar th {
    padding-bottom: 3px;
    font-size: 9px;
    width: 23px;
}
.calendar td {
    padding: 2px 0;
    text-align: center;
    font-size: 10px;
    line-height: 120%;
}
.today {
    display: block;
    border: 1px solid #444444;
}
.sunday,
.holiday,
.holiday a:link,
.holiday a:visited {
    color: #e50003;
}
.saturday,
.saturday a:link,
.saturday a:visited {
    color: #0000ff;
}

公開テンプレートの場合

#calendar {
    margin: 5px 0 10px;;
    color: #444444;
}
.calendarhead {
    padding-bottom: 5px;
    font-size: 9px;
    letter-spacing: 0.2em;
}
#calendar table {
    padding: 0;
    border-collapse: collapse;
}
#calendar th {
    padding-bottom: 3px;
    text-align: center;
    font-size: 9px;
    width: 23px;
}
#calendar td {
    padding: 2px 0;
    text-align: center;
    font-size: 10px;
    line-height: 120%;
}
.today {
    display: block;
    border: 1px solid #444444;
}
.sunday,
.holiday,
.holiday a:link,
.holiday a:visited {
    color: #e50003;
}
.saturday,
.saturday a:link,
.saturday a:visited {
    color: #0000ff;
}

6.ページ表示時にローディング状態を表示する場合

インチキっぽいですが、4.2項で設定した

<div id="calendar"></div>

に、例えば青色の

<div id="calendar">loading ...</div>

を追加することで、ページ描画でカレンダーが表示されるまでローディング状態を示すことができます。img タグを設定すれば画像を表示することも可能です。

月送り時は挿入した文字は表示されません。またカレンダー取得失敗の場合は表示が消えます(これは7項の設定と関連します)。

7.カレンダー取得失敗時にメッセージ等を表示する

Ajax 月送りカレンダーは HTTP 非同期通信でカレンダーファイルを取得・表示しますが、何らかの原因で通信に失敗し、正常に取得できない可能性があります。当サイトで運用していた時も 503 エラーが多発すると取得に失敗するようです。

このカスタマイズではカレンダーの取得に失敗した場合、カレンダー表示エリアに正常に取得できなかったメッセージ

File Not Found

を表示するようにしています。このメッセージは ajaxCalendar.js の下記の青色部分が対応します。

function errorProcess() {
    $('calendar').innerHTML = 'File Not Found';
}

メッセージを変更したい場合はこの青色部分を修正してください。またこの1行を丸ごと削除すれば、HTTP 非同期通信に失敗した場合にカレンダー表示エリアの書き換えが行われなくなりますが、6項の表示がそのまま残りますのでご注意ください。

「失敗してもカレンダーを表示させたい」という場合は、上記メッセージ出力の1行を削除して、6項の「loading ...」というメッセージの代わりに、カレンダータグ(通常のカレンダータグ)を埋め込んでおくという手もあります。通信が成功すれば Ajax 月送りカレンダーに切り替わり、失敗すれば通常のカレンダーがそのまま表示されます。

8.トラブルシューティング

8.1 一度も表示されない場合

カレンダーが正常に表示されない場合、つまり上記のカスタマイズをそのまま行って、カレンダーが表示される位置に "File Not Found" が表示された場合、以下の問題が考えられます(全てではありませんが思いついたものを挙げておきます)。

  • カレンダーアーカイブの再構築ができていない
  • カレンダーアーカイブページへのパス設定が誤っている
  • テンプレートに設定したカレンダーアーカイブページの拡張子が不一致
  • カレンダーアーカイブが UTF-8 で出力されていない

ご質問の前に確認していただきたいのは、

  1. ブラウザの[表示]-[ソース](あるいは「ソースの表示」)で、カレンダーを設定しているページのソースを表示
  2. 表示されたソースから下記のタグをみつけ、getCalendar() の3番目のパラメータに設定されている URL(赤色)をブラウザに設定して実行
<div id="calendar"></div>
<script type="text/javascript">
getCalendar("http://user-domain/", "1", "http://user-domain/calendar/yyyy/mm/");
</script>

何も表示されない場合(404 Not Found)はカレンダーアーカイブへのパスの設定が誤っているか、アーカイブが生成されていない可能性があります。

逆に、カレンダーが表示されてブラウザにそのカレンダーが表示されない場合は、ブラウザの再起動や、ブラウザのキャッシュ・一時ファイルの削除等を行ってみてください。また UTF-8 以外で運用されている方は、カレンダーが表示されている状態で、ブラウザの[表示]-[エンコード]でカレンダーのページの文字コードが UTF-8 になっていることを確認してください。

8.2 一度表示され、リロードすると表示されなくなる場合

クッキーを削除した直後のカレンダーは表示されるけれども、月送りのリンクをクリックすると File Not Found が表示されるという場合は、2項のテンプレートに埋め込んでいるアーカイブパスが誤っている可能性があります。よくあるのは次のように最後の"/"が抜けているケースです。

<div id="calendar"></div>
<script type="text/javascript">
getCalendar("http://user-domain/archives", "1", "http://user-domain/archives/calendar/yyyy/mm/");
</script>

これは、管理画面の [設定] - [公開] で「アーカイブの設定」にチェックをつけていて、 [アーカイブURL] の最後に "/" がない場合に発生します。

9.その他

当サイトで運用している月送りカレンダーの Ajax ライブラリは、prototype.js ではなく、「入門 Ajax」のサポートページで紹介されている jslb_ajax.js を使っていますが、紹介するカスタマイズでは知名度の高い protptype.js を用いています。

2006.12.26
タグの属性名が誤ってましたので修正しました。(sord_order → sort_order)

2007.03.20
Cookie に保持された場合にカレンダーが表示されなくなる不具合および、複数ブログで利用可能になるよう、ajaxCalendar.js および4.2項のMTタグを修正しました。
また、デフォルトテンプレート + IE6 で、カレンダー日付のスタイルが崩れる不具合を修正しました。

2007.10.20
アーカイブパスがサイトパス配下に存在しない場合に正常に動作しない不具合を修正しました。


*1:文字コードの設定を行わずに Movable Type をインストールした場合の文字コードは UTF-8 です。

Posted by yujiro
関連記事
人気エントリー
トラックバックURL


トラックバック

AJAXカレンダー from uckond.com
小粋空間さんが公開しているAJAXカレンダーを導入してみた。 カレンダーの読み込... [続きを読む]

Tracked on October 21, 2006 2:37 PM

カレンダー from アフィリエイト ブログ ツール
本サイトにカレンダーを実装するにあたり、小粋空間さまのAjax月送りカレンダーを... [続きを読む]

Tracked on October 30, 2006 4:43 AM

MT3.33 再インストール from Hitorigoto?
なんか、このところMTネタが続いてますが・・・(^_^;; 先日MT3.17から... [続きを読む]

Tracked on November 16, 2006 12:51 AM

カレンダーで挫折…… from ひねもす MT備忘録
カレンダーはいまは一応、向こうのブログもこちらも小粋空間さまのAjaxカレンダー... [続きを読む]

Tracked on November 23, 2006 5:53 PM

Ajaxカレンダーの設置 from - limitation.info -
当ブログにAjaxのカレンダーを設置しました。 月めぐりでカレンダーが表示できる... [続きを読む]

Tracked on December 2, 2006 5:35 PM

Ajax 月送りカレンダー from ちょいオタエンジニアのブログ
カレンダーを表示しているだけでなく、月送り出来るようにしました。 小粋空間さんの... [続きを読む]

Tracked on December 13, 2006 10:17 AM

新年企画その2 ?Ajax月送りカレンダーを設置? from MOKKUN-6109
新年ブログ改造計画第二弾ということで、 ブログの3カラム化に続き、 「Ajax月... [続きを読む]

Tracked on January 1, 2007 2:57 PM

Ajaxカレンダー導入 from 小さな会社の社長日記
明けましておめでとうございます。 実家が退屈で東京の自宅に帰るやいなやMovab... [続きを読む]

Tracked on January 4, 2007 6:44 PM

月送りカレンダー from PiPELiNEぶろぐ
小粋空間さんが公開されてる「Ajax 月送りカレンダー」を使わせて頂くことにしま... [続きを読む]

Tracked on January 4, 2007 7:03 PM

カレンダーを変更しました from SWEET WATER Web Server
久しぶりに少し大掛かりな(?)カスタマイズをしました[:-)] 小粋空間:Ajax 月送りカレンダー 必要なものは「Prototype.js(JavaSc... [続きを読む]

Tracked on January 9, 2007 2:27 PM

カレンダー変更しました from 遠藤青汁のやすらぎ裏サイト
このブログサイトのカレンダーを使い勝手が良いように少し変更してみました。 まだブ... [続きを読む]

Tracked on February 8, 2007 2:51 AM

月送り型Ajaxカレンダー from あかつき財務戦略研究所
前ののブログを書いている頃から、月送り型のカレンダーを設置したいと考えていたのだ... [続きを読む]

Tracked on February 21, 2007 11:22 PM

カレンダー設置 from STUDIO SCATTER12
AJAXカレンダーを設置しました。 詳しくは小粋空間さんのこちらの記事へ。人任せ... [続きを読む]

Tracked on March 20, 2007 8:02 PM

カレンダー設置 from Studio Scatter
AJAXカレンダーを設置しました。 詳しくは小粋空間さんのこちらの記事へ。人任... [続きを読む]

Tracked on March 31, 2007 7:54 AM

OKANO?STYLE2007年版公開 from OKANOWEB.NET
OKANOWEB & OKANOsで使用しているMovableType用テンプレ... [続きを読む]

Tracked on April 8, 2007 7:38 PM

Ajaxカレンダー導入? from 薄羽日記 2.0
例によって小粋空間さんとこからAjaxカレンダーを導入してみました。 途中いくつ... [続きを読む]

Tracked on April 18, 2007 11:29 AM

Ajax mtカレンダー Mac Safariでの文字化け対策 from K25
このblogではないが、別の所で 小粋空間様のAjaxカレンダーを利用させてもらっている。 ただ、自分は曜日を日本語の、 日?土というようにして... [続きを読む]

Tracked on April 18, 2007 9:44 PM

超・紆余曲折MT化 from finder.
つつつ、ついに…。 サイトMT化しました。 長かった…。 長かったし…。つ、辛か... [続きを読む]

Tracked on June 3, 2007 2:19 AM

MacのSafariで閲覧の方へ from 北海道のいで湯-かけ流し日帰り温泉・露天風呂宿のメモ
 MacのSafariで閲覧の方へご連絡です。  新たにカレンダー表示(小粋空間... [続きを読む]

Tracked on June 4, 2007 11:16 AM

Ajax 月送りカレンダー from White Wing version2.0
カレンダーを変更しました。 デフォルトのMovable Typeのカレンダーは... [続きを読む]

Tracked on June 16, 2007 10:49 AM

Movable TypeカレンダーのAjax化 from Spirits of the Earth
小粋空間さんのサイトを参考に。 別に大した事をやったわけではないですが。。 Mo... [続きを読む]

Tracked on July 1, 2007 2:20 PM

ブログにカレンダーをつけました from 株式トレード日記
MTサーバをインストールしてから、しばらく手をつけていなかったが、自分のブログで... [続きを読む]

Tracked on July 24, 2007 5:05 PM

MT4で○○に挑戦・・・No.1続き from K.Kimura-制作中-
11時に始めたMT4の再インストールから、元の形に戻すまで約5時間((-ω-。)... [続きを読む]

Tracked on January 18, 2008 1:31 PM

チカッパブログのカレンダー機能 from 社労士@DIARY
 チカッパブログをインストールするとたいていのテンプレートでデフォルトで使用可能なカレンダー機能。カレンダー機能は無料ブログやMovableTypeなどの... [続きを読む]

Tracked on April 5, 2008 6:12 PM

チカッパブログのカレンダー機能 from 社労士@DIARY
 チカッパブログをインストールするとたいていのテンプレートでデフォルトで使用可能なカレンダー機能。カレンダー機能は無料ブログやMovableTypeなどの... [続きを読む]

Tracked on April 5, 2008 6:13 PM

チカッパブログのカレンダー機能 from 社労士@DIARY
 チカッパブログをインストールするとたいていのテンプレートでデフォルトで使用可能なカレンダー機能。カレンダー機能は無料ブログやMovableTypeなどの... [続きを読む]

Tracked on April 5, 2008 6:14 PM
コメント

こんにちわ^^

いつも拝見させてもらっています。

以前、わたしもカレンダーをAjax化できないかトライしてみたのですが、Ajaxを使いこなせなくて断念しました(つω-`。)

さっそく家帰ったらトライしてみます!!

[1] Posted by bzbell : October 10, 2006 11:41 AM

いつもお世話になっています。
さっそく設置して、便利に使っています。

僕のブログはカレンダーの「October 2006」などのタイトル部分をサイドタイトルと同じような外観にしたため、プレビューやネクストの矢印が背景色と同じになってしまいました。

CSSに

.calendarhead a:link {
text-decoration: none;
font-weight: normal;
color: #000000 !important
}

上記を追加し、更に「!important」を付加してリンク色を変えたのですが、他によい方法というかもっと簡単にできるやり方があるようでしたら教えていただけないでしょうか?

これからも新しいカスタマイズを楽しみにしています。

[2] Posted by 鹿之助 : October 10, 2006 8:28 PM

こんにちは。
Ajax版月送りカレンダー公開お疲れ様でした。

[3] Posted by : October 10, 2006 11:38 PM

>bzbellさん
こんにちは。
ご利用&ご連絡ありがとうございます。
うまくできたようでホッとしました。
ではでは!

>鹿之助さん
こんにちは。
ご利用ありがとうございます。
ご質問の件ですが、サンプルは .calendar に color 指定をしているので important 指定が必要になっている可能性があります。
それぞれの要素セレクタに個別に color プロパティを設定する手があるかもしれません(試していませんので間違ってたらお許しください)が、鹿之助さんの方法が簡単かもしれません。
それではよろしくお願い致します。

>壱さん
こんにちは。
コメントありがとうございます。
壱さんも公開お疲れさまでした!

[4] Posted by yujiro : October 12, 2006 3:32 PM

貴サイト、とても丁寧で助かっています。
ところで、Ajaxの月送りカレンダーを導入しようとしているのですが、どうしても「prototype.js」のファイル(prototype-1.4.0.tar.tar)の解凍がWinZipで「Error reading header after processing 0 entries」とエラーになってしまいできません。
何か回避策があれば教えてください。
お手数ですが、宜しくお願い致します。

[5] Posted by mippi : October 20, 2006 12:50 AM

すみません。
+Lhacaで解凍してみたら問題なくできました。
お騒がせしました、、。

[6] Posted by mippi : October 20, 2006 12:57 AM

>mippiさん
こんばんは。
ご質問の件、自己解決されたようでよかったです。
ではでは!

[7] Posted by yujiro : October 21, 2006 12:49 AM

小粋空間さんのサイト、いつもホントに助かっています!

今まで個人的に「カレンダーはいらない?」と思っていたので、あえてカレンダーなしでブログを書いてきましたが、Ajaxカレンダーの秀逸さに魅かれて設置させてもらいました。

URLにWWWをつけると、読み込みエラー(「Loading...」状態)になったので、TBで書かれているuckond.comさんとのコメントのやりとりを参考にさせていただき、無事解決しました。

MTで悩んだ時は真っ先にこちらのサイトを拝見しています。
これからもよろしくお願いします!

[8] Posted by オレンジ : November 13, 2006 10:54 PM

>オレンジさん
こんばんは。
カレンダーご利用&ご連絡ありがとうございます。
無事に表示されたようでなによりです。
こちらこそ今後ともよろしくお願い致します。

[9] Posted by yujiro : November 14, 2006 6:36 PM

小粋空間さん、初めまして。
 キラタマという者です。
 今朝から小粋空間さんのテンプレートを使わさして頂いております。
 先ほど、時計の設置もしたのですが、平日の数字が表字されません。説明通りにやったはずなのですが・・・どうすれば良いでしょうか?教えて頂けますか?

[10] Posted by キラタマ : November 23, 2006 10:54 AM

キラタマさん
はじめまして。
ご質問の件は「Firefox で閲覧するとカレンダーの平日部分が白くなる」ということでよろしいでしょうか。
おそらく下記の部分を修正すれば正常に表示されると思いますのでお試しください。

修正前

/* アーカイブテンプレートの前後リンク */
.content-nav {
    margin: 10px;
    text-align: center;
    font-size: 12px;
#calendar {
    margin: 5px 0 10px;;
    color: #444444;
}
}

修正後

/* アーカイブテンプレートの前後リンク */
.content-nav {
    margin: 10px;
    text-align: center;
    font-size: 12px;
}
#calendar {
    margin: 5px 0 10px;;
    color: #444444;
}

上記のようなCSSの文法エラーがあると Firefox では正常に表示されなくなります。この修正でなおらないようであれば他に誤りがないかご確認ください。

あと勝手ながらBlogPeopleに登録させて頂きました。
それではよろしくお願い致します。

[11] Posted by yujiro : November 24, 2006 1:02 AM

小粋空間さん、こんばんは。
 
 ありがとうございます。ご指摘のとおりしましたら、表示されるようになりました。

 ただいま、トップページには表示されてますが、他のアーカイブページにもタグを貼り付けたのですが、「loading ...」の文字が表示されたり、されなかったりです。もう少し時間が経たないと駄目なのかな?朝、また様子を見てみます。

 ブログピープル、僕も登録させていただきました。

 ありがとうございました。おやすみなさい。

[12] Posted by キラタマ : November 24, 2006 2:17 AM

>キラタマさん
こんにちは。
ご連絡ありがとうございました。
ブラウザの一時ファイルやクッキー等を一旦クリアされると良いかもしれません。
また他のブラウザで試してみることもお勧めします。
どうしてもうまく表示されない場合は再度ご相談ください(他のカスタマイズと違って Ajax はこちらで動作を確認できないのですが…)。

なおアーカイブページの BlogPeople 表示用の script タグの終了タグが抜けているようですので、修正されると良いでしょう(Firefox では表示が崩れています)。
それではよろしくお願い致します。

[13] Posted by yujiro : November 24, 2006 3:41 PM

こんばんは。
 今日、ファイアーフォックスを導入して見たのですが、やはり駄目でした・・・
 なので、『「失敗してもカレンダーを表示させたい」という場合は、上記メッセージ出力の1行を削除して、6項の「loading ...」というメッセージの代わりに、カレンダータグ(通常のカレンダータグ)を埋め込んでおく』、という記事のとおりやってみました。

 タグの件ありがとうございます。やり直しました。

[14] Posted by キラタマ : November 25, 2006 2:05 AM

>キラタマさん
こんばんは。
ご連絡ありがとうございました。
もし JavaScript がお分かりでしたら、ajaxCalendar.js のカレンダーファイルのURLを取得する処理に赤色の alert 関数

function getCalendar(path) {
    var cookie = readCookie("AjaxCal");
    if(cookie != null) {
        path = url + archive_path + "calendar/" + cookie + "/";
    }
alert(path);
    changeMonth(path);
}

を入れて、トップページから取得する時と、アーカイブページから取得する時で path の内容に違いがないかご確認ください。
それではよろしくお願い致します。

[15] Posted by yujiro : November 26, 2006 9:54 PM

小粋空間さん、こんばんは。
 ありがとうございます。
 赤字の部分を「ajaxCalendar.js 」に書き込んだのですが、今度は画面を切り替えたすると
「http://kagayakerutamashii.kiratama.org/calendar/2006/11/」
と、ポップアップのようなものが出てしまいます。
 とりあえず、赤字の部分は消しておきます。

[16] Posted by キラタマ : November 27, 2006 1:48 AM

>キラタマさん
こんにちは。
alert関数はカッコ内に記述されたデータ等をポップアップ表示する機能です(先の依頼はalert関数を用いてデバグして頂く主旨でしたので、「JavaScript がお分かりでしたら」ということを申し上げました)。
頂いたデータの内容から、URLは正常に取得できているようです。

[17] Posted by yujiro : November 27, 2006 10:00 AM

 はじめまして!
MTを利用する前から、ブログのカスタマイズなどを
参考にさせてもらっていました。

 今回Ajaxのカレンダー導入にあたり、エントリを参考に
がんばってきたのですが、どうしてもFile Not Foundが
出て来てしまいます。色々確認してみたのですが、
うまくいかないようです。
 パスの指定などはうまくいっているように思われるのですが、
どこに原因があるのでしょうか?

 ご指導いただけましたら幸いです。よろしくおねがいします。

[18] Posted by あーにゃ : November 27, 2006 4:00 PM

>あーにゃさん
こんにちは。
ご質問の件ですが、例えばトップページをブラウザで表示し、IEでしたら画面上で右クリックして「ソースの表示」でHTMLソースを見ることができます。そのHTMLソースのカレンダーを表示するタグの部分

<!-- カレンダー開始 -->
<div id="calendar"></div>
<script type="text/javascript">
getCalendar("http://not8found.biz/o2/2006/11/index.php");
</script>
<!-- カレンダー終了 -->

の中にあるURL

http://not8found.biz/o2/2006/11/index.php

が、実際にカレンダーのページになります。

このURLをブラウザに入力して実行するとカレンダーだけが表示されるはずですが、現在、通常のページが表示されてしまうようですので、カレンダーのページへのリンクがうまく設定できてないように思われます。設定(特にアーカイブマッピング)を再度ご確認ください。

なお、確認・修正後、ブラウザから再表示する場合はブラウザのクッキーを予め削除してください。

それではよろしくお願い致します。

[19] Posted by yujiro : November 27, 2006 4:39 PM

>yujiroさん
 丁寧にありがとうございます!
 カレンダーを表示させるためのcalendarフォルダ
 を作成して、改めて再設置を行ってみましたら、無事解決しました。

 書き込みを行った際は、calendarフォルダが必要ない
 と思っていました。アドバイス頂き本当にありがとうございました。

[20] Posted by あーにゃ : November 27, 2006 6:28 PM

>あーにゃさん
こんばんは。
ご連絡ありがとうございました。
無事に表示されたようで良かったです。
ではでは!

[21] Posted by yujiro : November 27, 2006 6:50 PM

yujiroさん、こんばんは。
 つまり、JavaScriptが良くわかっていないと駄目という事ですね・・・
 もう少し、勉強してみます。色々すいません。

[22] Posted by キラタマ : November 28, 2006 6:09 PM

>キラタマさん
いえいえ。
こちらでも原因が分からず申し訳ございません。
何か分かりましたらエントリーに追記しておきたいと思います。
ではでは!

[23] Posted by yujiro : November 29, 2006 10:14 AM

始めましてです
書かれたとおりに変更してみましたがエラーが出てしまいます
最後まで設定して再構築すると

日付アーカイブ「Monthly20061101000000」の再構築に失敗しました: テンプレート「カレンダー」の再構築に失敗しました: <MTCalendar>タグでエラーが発生しました: <MTCalendarIfEntries>タグでエラーが発生しました: <MTEntryLink>タグでエラーが発生しました: <$MTEntryLink$>タグを使って、Dailyアーカイブにリンクしようとしましたが、そのアーカイブ・タイプは公開されていません。

と表示されます
考えられる原因はなんでしょうか?
なんとなく初歩的な感じが直感でするのですが自分でいじってみてもわかりませんでした。
ご多忙だとは思いますが宜しくお願いします

[24] Posted by もちっこ : November 29, 2006 11:50 PM

>もちっこさん
はじめまして。
ご質問の件ですが、3項の最後に書いてある作業が未完了のようですので、再度ご確認頂けますでしょうか。
それではよろしくお願い致します。

[25] Posted by yujiro : November 30, 2006 9:50 AM

初めまして、いつも役立つ情報を本当にありがとうございます。

今回初めてカレンダーを導入するにあたりAjaxのカレンダーの方法をやらせていただきました。

IEのVer6で表示させた上で最初は問題なくカレンダーが表示しているものの、前の月に移動するとなぜかサイト全体の文字フォントが大きくなって表示されてしまいます。

リロードすれば元の状態に戻ってくれますがどのような原因が考えられるのでしょうか?

MTバージョンは3.3を使用しており
今回、公開テンプレートを使わせていただいてます。
文字コードが UTF-8で使用しています。

お手数ではありますがよろしくお願いします。

[26] Posted by CHOBI : December 19, 2006 12:27 AM

>CHOBIさん
はじめまして。
ご利用ありがとうございます。
ご質問の件ですが、こちらの環境(IE6)ではフォントが大きくなる事象は発生しておりません。
ブラウザのキャッシュ(一時ファイル)等を一端削除されてみてはいかがでしょうか。
それではよろしくお願い致します。

[27] Posted by yujiro : December 19, 2006 12:56 AM

はじめまして。Ajaxカレンダーを導入してみたのですが、うまくいかないので、質問させてください。

もろもろ作業後、出力画面のソースを確認してみると


<script type="text/javascript">
getCalendar("http://user-domain/calendar/");
</script>

という風になってしまっていて、「yyyy/mm」が表示されません。
なので、カレンダーが表示されるはずの部分には、ブログのトップページが入れ子状に表示されてしまってます。。。

この場合どのようなミスが考えられますでしょうか??ちなみにNot foundも出ません。

ご教授お願いします!

[28] Posted by nemo : December 21, 2006 7:34 PM

すみません。自己解決です。

エントリーがなにもない場合、index.htmlが表示されるようですね。

お騒がせしました???

[29] Posted by nemo : December 21, 2006 7:37 PM

はじめました。

先ほど、月送りカレンダー設置させて頂きました。
動作も軽く大変気に入っています。

ありがとうございました。

ところで、「2.カレンダーテンプレート作成」の「デフォルトテンプレートの場合」欄で、以下の部分で少し気になりましたので、厚かましくも書いておきます。間違えてたらスイマセン。

誤)<MTArchiveDate format="archives/calendar/%Y/%m/%i">')
正)<MTArchiveDate format="calendar/%Y/%m/%i">')

話しは変わりますが、カレンダーのデフォルトの表示を「一番過去」にする事は出来ないでしょうか?

と言うのも、MTを日記形式では無く、これから先のスケジュール表として利用しています。公開しているエントリーは本日と未来のもののみです。

その為、カレンダーを「公開しているエントリーの一番過去」、もしくは「今現在の月」のカレンダーを表示させたいと思っています。

もし可能であれば、アドバイス頂ければ嬉しいです。

[30] Posted by kitano (yellowjamaican) : December 21, 2006 8:53 PM

いつも楽しく拝見しています。

Ajaxカレンダーですが、設置した月よりも過去に戻ることは通常できないんでしょうか?

教えてください!宜しくお願いします。

[31] Posted by あきー : December 22, 2006 10:36 AM

>kitano (yellowjamaican)さん
こんばんは。
ご質問の件ですが、4.2項にあるリストに含まれる

sort_order="descend"

sort_order="ascend"

にすれば一番古い月のカレンダーが表示されると思います。

ご指摘の部分は修正致しました。ご連絡ありがとうございました。
それではよろしくお願い致します。

>あきーさん
こんばんは。
ご質問の件ですが、残念ながらエントリーがない月のカレンダーを表示させることはできません。
それではよろしくお願い致します。

[32] Posted by yujiro : December 23, 2006 1:44 AM

ご丁寧にありがとうございます。

「sord_order="ascend"」は「sort_order="ascend"」の間違いですよね。

早速試してみたのですが、何故か反映されませんでした。

一度古いカレンダーを表示させ、一端ウィンドウを閉じた後、もう一度アクセスするとその時のカレンダーが表示されるのですが、キャッシュをクリアするなど、新規でアクセスすると最新のカレンダーが表示されてしまいます。

[33] Posted by kitano (yellowjamaican) : December 26, 2006 3:34 PM

>kitano (yellowjamaican)さん
こんにちは。
こちらでも動作を確認してみました。
この属性の組み合わせでは正常に動作しないようです(つまりMTの仕様、あるいはバグ)。

またスペルミスご指摘ありがとうございました。
それではよろしくお願い致します。

[34] Posted by yujiro : December 26, 2006 5:25 PM

こんにちは。
今MTでブログを現在製作中で、ここのAjaxのカレンダーを設置させてもらっています。

で、システム系のテンプレート(具体的にはコメントエラー、コメントプレビュー、検索結果)にもカレンダーを設置しましたが、なぜか表示されません。これは仕様なんですかね?
ソースを確認してもカレンダー自体のページはちゃんと存在してます。
どのブラウザでも表示されません;

ちなみにindexやアーカイブのテンプレートだとちゃんと表示されます。

[35] Posted by gouache : December 26, 2006 8:52 PM

>gouacheさん
こんにちは。
ご質問の件につきまして、デフォルトテンプレートのコメントプレビューにAjax月送りカレンダーを設置してみたところ、正常に動作しました。
ということで申し訳ありませんが設定もれ等ないかご確認ください。
それではよろしくお願い致します。

[36] Posted by yujiro : December 27, 2006 12:32 PM

確認ありがとうございます。

さきほど「sord」を「sort」になおしたり、そもそもその属性を外したりしてみても、やはりシステム系のテンプレートだけ表示されませんでした。

まだ完成してませんが、一応ブログのURLを書いておきました。

[37] Posted by gouache : December 27, 2006 3:55 PM

>gouacheさん
こんにちは。
JavaScript エラーが発生しているのが正常に動作しない原因かもしれません。
下記のタグを追加してください(エントリー・アーカイブも)。

<script type="text/javascript" src="<$MTBlogURL$>mt-site.js"></script>

それではよろしくお願い致します。

[38] Posted by yujiro : December 27, 2006 4:55 PM

迅速に対応してくださってありがとうございます。

やってみましたが、どうもダメみたいです;

movable type初めて使ったのでこういうことには疎いもんで。お手数かけます;

[39] Posted by gouache : December 27, 2006 5:11 PM

>gouacheさん
こんにちは。
すいませんが、コメント[38]の設定は行った状態にしてください(Movable Type でこの設定は必須です)。
それからエントリー・アーカイブとコメント・プレビューの body タグを

<body onload="individualArchivesOnLoad(commenter_name)">

に変更してください(id 属性等はそのまま残して結構です)。
その状態で改めてこちらから動作を確認してみます。
それではよろしくお願い致します。

[40] Posted by yujiro : December 27, 2006 5:34 PM

すみません。わざわざありがとうございます。
よろしくお願いします。

[41] Posted by gouache : December 27, 2006 5:49 PM

>gouacheさん
分かりました。原因はコメント・プレビューのドメインがメインページやエントリーアーカイブページと異なるためのようです。
なお先ほどの設定で JavaScript のエラーは発生しなくなりました。
それではよろしくお願い致します。

[42] Posted by yujiro : December 27, 2006 6:35 PM

ありがとうございます。

…ということはこれはもうどうしようもないんですか?

[43] Posted by gouache : December 27, 2006 6:40 PM

>gouacheさん
mt-config.cgi の CGIPath を修正すれば良いと思いますが、CGI が同一ドメインで動作する(=HTMLページと同じドキュメントルートに存在する)ことが必要です。
なぜ異なるドメインを設定されているかについては、gouache さんの利用されている環境に依存するので、当方では不明です。
とりあえず試してみてはいかがでしょうか。

[44] Posted by yujiro : December 27, 2006 6:47 PM

ご丁寧にありがとうございます。
解決策が見つかりました。

本当にありがとうございました。

[45] Posted by gouache : December 27, 2006 6:51 PM

はじめまして。
Movabletypeにカレンダーを設置しようと思いまして、貴サイトが非常に参考になりました。
貴重な情報をありがとうございます。

早速Ajaxカレンダーを導入したのですが、
カレンダーが表示されず、がっくり、です。
Loading...のままとなってしまいます。

自分での原因調査および結果です。
・ソースで書かれたURLでカレンダーが表示されるか
→getCalendar("http://blog.doux-fleur.com/calendar/2007/01/");
 が抽出できたので、ieに貼りつけてみたらカレンダーが表示された

・上記IEで文字コードを見てみたらシフトJISだったので、ご指摘のプラグインを入れ、カレンダーテンプレートにMTEncodeTextタグを挿入した

・ご指示のjsファイルを消しても状況は変わらなかった。
→head内の指定を確認したが、問題は無いと思われる。
→jsファイルがあろうがなかろうが状況が変わらないので、これがなにかあやしい?

他に調査することが有ればご指示頂けますか?
よろしくお願いします。

[46] Posted by やまちゃん : January 3, 2007 4:56 PM

補足です。コメント[15]にご指摘のあった方法でURLを確認してみましたが、問題有りませんでした。

[47] Posted by やまちゃん : January 3, 2007 5:51 PM

>やまちゃんさん
はじめまして。
ご利用ありがとうございます。
ご質問の件ですが、サイトを拝見させて頂いたところ、もしかしたらコメント[42]と[44]が該当するかもしれません。
それではよろしくお願い致します。

[48] Posted by yujiro : January 4, 2007 1:58 AM

yujiroさん>
アドバイスありがとうございました。
一度クリーンインストールを行い、
同じディレクトリ階層にしてみましたが、
結果は変わらずでした。

サブドメインはblog.doux-fleur.comですが、
実フォルダはwww.doux-fleur.com/blogと
しています。ここにmt環境をインストールしています。

気になるのはajaxCalendar.js内の
function changeMonth(url) {
alert(url);yujiroさん>
アドバイスありがとうございました。
一度クリーンインストールを行い、
同じディレクトリ階層にしてみましたが、
結果は変わらずでした。

サブドメインはblog.doux-fleur.comですが、
実フォルダはwww.doux-fleur.com/blogと
しています。ここにmt環境をインストールしています。

気になるのはajaxCalendar.js内の
function changeMonth(url) {
alert(url); new Ajax.Updater({success: 'calendar'},
url, {
method: 'get',
onComplete: endProcess,
onFailure: errorProcess
});
return false;
}
と、やってみたのですが、アラートダイアログボックスが表示されないのです。
getCalendar関数から、changeMonthが
callされるはずなのですが、アラートダイアログボックスが表示されないと理解しています。
(違っていたらご指摘ください。。。)

[49] Posted by やまちゃん : January 7, 2007 3:45 AM

>やまちゃんさん
こんばんは。
説明不足ですいません。
Ajax では異なるドメインに対する呼び出しができません。私のサイトを例に挙げると、

http://www.koikikukan.com/

というURLでブラウザにページを表示している状態で、Ajax を利用してあるファイルを取得する場合は、

http://www.koikikukan.com/calendar/2007/01/index.html

という、同じドメインを設定する必要があります。異なるドメイン、例えば

http://blog.koikikukan.com/calendar/2007/01/index.html

というサブドメインでは Ajax の仕様上、ファイルを取得することができません。

やまちゃんさんのブログには、2つのドメインを使われているようですので、おそらくカレンダーファイルを取得する際のドメインが、その前にブラウザに表示されているページのドメインと異なっているのではないでしょうか(カレンダーを設置されている状態を拝見できないので推測です)。

Movable Type 管理メニューの[設定]-(詳細モード)-[公開]のサイトパスが、ajaxCalendar.js に設定されている(1項)と思いますが、表示されているトップページの URL は blog.doux-fleur.com から www.doux-fleur.com にリダイレクトされているのでしょうか。もしかしたらそういった制御が表示されない原因になっているかもしれません。

changeMonth に記述した alert(url); が表示されないのは、getCalendar 自体が起動されていない可能性があります。
getCalendar を起動するには、表示されている月送りカレンダーの前月または次月のリンクをクリックしてみてください。

それではよろしくお願い致します。

[50] Posted by yujiro : January 8, 2007 3:35 AM

こんばんは。

Ajax版カレンダー使わせてもらいました^^
おかげでスタイル切替時にカレンダーも即反映されるようになりました?(= ̄▽ ̄=)V やったね

ありがとうございましたm(._.)m

[51] Posted by WIND : January 9, 2007 2:25 AM

>WINDさん
こんばんは。
ご利用ありがとうございます。
たしかに、そういう恩恵もありましたね!

[52] Posted by yujiro : January 9, 2007 11:32 PM

いつも参考にさせてもらい助かっています。

一つ質問なのですが、「Ajax 月送りカレンダー」を導入し、正常に動作するまでは行きましたが、休日・祝日のスタイル変更では出来なかったので、できる方法があれば教えていただきたいと思います。
具体的にはSundayとHolidayのスタイルを別々したいのです。
[ajaxCalendar.js]を拝見ところ、HolidayとSaturdayのclass指定は別々に記述されるようになっていましたが、Sundayのスタイルは指定がなくHolidayと同じものがつかわれているようです。

これを

[Holiday] [Saturday] [Sunday]

個別に指定したいのですが可能でしょうか。


以上、よろしくお願いいたします。

[53] Posted by Aki : January 11, 2007 5:08 PM

>Akiさん
こんばんは。
ご利用ありがとうございます。
ご質問の件につきまして、JavaScript のスキルをどの程度お持ちかわかりませんが、dayChecker.js にある isSunday() を起動するように改造すれば、異なるスタイルを使用することは可能です。
お分かりにならないようでしたらスクリプトを検討しますのでご連絡ください。

それではよろしくお願い致します。

[54] Posted by yujiro : January 12, 2007 12:24 AM

>yujiroさん

早速の返答ありがとうございました。
dayChecker.jsを少し触ってみたのですが、
うまくスタイルが変更できませんでした。
お手数ですがスクリプト変更の検討をお願いできませんでしょうか。

よろしくお願いいたします。

[55] Posted by Aki : January 12, 2007 3:02 PM

>Akiさん
こんばんは。
それでは別途エントリーさせて頂きます。
すいませんがしばらくお時間ください。

[56] Posted by yujiro : January 12, 2007 9:30 PM

>yujiroさん

上記の件ですが、ajaxCalendar.jsを修正することで[Holiday] [Saturday] [Sunday]に個別のスタイルをあてることが出来るようになりました。

お手数をおかけいたしました。

[57] Posted by Aki : January 15, 2007 5:07 PM

はじめまして。カレンダーを使わせていただいています!

質問ですが、わたしのカレンダーのエントリーのある日付をクリックすると、必ずアーカイブの画面に飛んでしまうのですが、その日付のエントリーに飛ばすことは出来ないでしょうか?というか、できるのでしょうが、わたしの設置ミスだと思います。。。

方法を教えて頂けますでしょうか?
よろしくお願いします!

[58] Posted by こめ : January 16, 2007 4:54 PM

>Akiさん
こんにちは。
ご返事遅くなりすいません。
ご連絡ありがとうございました(メールもありがとうございました)。
うまくできたようで良かったです。
ではでは!

>こめさん
こんにちは。
ご質問の件ですが、管理画面の[設定]-[公開]の「アーカイブのマッピング」の[日別]のところに2つのテンプレートが含まれていないでしょうか(ここはひとつが正解です)。
ちなみに「アーカイブ」とはどのアーカイブかお分かりでしょうか?(一応「日付のエントリー」もアーカイブなので)
サイトを拝見させて頂ければもう少し適切な回答ができると思います。
それではよろしくお願い致します。

[59] Posted by yujiro : January 17, 2007 10:35 AM

yujiroさん、お返事ありがとうございます。

管理画面の[設定]-[公開]の「アーカイブのマッピング」の[日別]のところに2つのテンプレートが含まれていないでしょうか
ひとつです。ほかの[エントリー][週別]などのところもひとつです。
「アーカイブ」とはどのアーカイブかお分かりでしょうか?
すみません。わかりません。。。汗

URLを書きましたので、一度ご覧になって頂いてもよろしいですか?
よろしくお願いします。

[60] Posted by こめ : January 17, 2007 12:29 PM

>こめさん
こんにちは。
アーカイブのURLより、問題なく日付アーカイブが表示されているようです。
それではよろしくお願い致します。

[61] Posted by yujiro : January 17, 2007 3:40 PM

>yujiroさん

ご回答ありがとうございます。

アーカイブのURLより、問題なく日付アーカイブが表示されているようです。
なるほど、一応正常に動作しているんですね。。

カレンダーの日付を押すと、「日付アーカイブ」ではなく、その日に書き込まれたエントリーを表示させたいのですが、、、
たとえば上のWINDさんのブログのように。。。
http://www.zechs-web.net/

どうすれば表示できますでしょうか?
よろしくお願い致します!

[62] Posted by こめ : January 17, 2007 6:59 PM

>こめさん
こんばんは。
ご質問の件につきましては別途エントリー致します。
少々お待ちください。

[63] Posted by yujiro : January 17, 2007 8:25 PM

>yujiroさん。

お手数おかけします。
よろしくお願いいたします!

[64] Posted by こめ : January 18, 2007 9:38 PM

はじめまして。カレンダーを使頂こうと思いまして記載どうりにやってみたのですがうまくいきません。
現象としては「File Not Found」と出てしまいます。ソースのカレンダーのアドレスで直接見ると表示されます。ブラウザのキャッシュ・一時ファイルの削除等も行いましたが同じです。
何かアドバイスいただけますでしょうか?
1点気になるのは、ブログ自体は「UTF-8」で運用してるのですが、カレンダーのページに直接行くと「Shith_JIS」になってしまいます。ブラウザのエンコードで「UTF-8」に手動で直しても文字化けなく表示されます。
関係ないでしょうか?

[65] Posted by のり : January 27, 2007 4:24 PM

>のりさん
はじめまして。
ご利用ありがとうございます。
ご質問の件ですが、Shift_JIS になる原因は不明です(どのブラウザでも同じ事象でしょうか?)。
なおカレンダーに日本語が含まれていなければ文字コードを変更しても正常に表示されます。
解決できるかどうか分かりませんが URL をご連絡頂ければもう少し状況を確認したいと思います。
それではよろしくお願い致します。

[66] Posted by yujiro : January 27, 2007 11:15 PM

いつもお世話になっております。

本エントリーのAjax月送りカレンダーを使わせてもらっております。

記載通り行なって、メインページでは、上手く表示できているのですが、何故が、カテゴリー・アーカイブ・ページ、月別アーカイブ・ページ、エントリー・ページでは、「File Not Found」になってしまいます。

8項のトラブル・シューティングを見て、それぞれのエラーとなるページのソースを見ましたが、カレンダーのアドレスをブラウザで表示させるとカレンダーは表示はできます。さらにそれぞれのページの文字コードは、ちゃんとUTF-8 になっています。ブラウザの再起動もやりましたし、再構築もしましたが、やはりエラーとなります。

残りは、アーカイブ・パスとなるのでしょうが、メインメージでは正常に表示されています。
メインメージ以外を正常にさせるには、他に何か方法があるのでしょうか。

お忙しいところ恐縮ですが、ご教示いただければと思います。

[67] Posted by ようちゃん : February 7, 2007 10:01 PM

>ようちゃんさん
こんばんは。
ご利用ありがとうございます。
ご質問の件ですが、メインページ以外はブラウザを起動した初回表示はOKで、2回目以降の表示で NG になるようです。つまり Cookie に保存されたカレンダー年月が正常に表示できていないように思われます。
もし ajaxCalendar.js の編集が可能であれば[15]の alert 関数を追加して、ページを表示した時にダイアログにカレンダーのURLが表示されますので、メインページ以外のページでどのようなURLが表示されるかご確認ください。ただしどうしてこのような事象になるのか原因不明ですので解消できないかもしれません。
それではよろしくお願い致します。

[68] Posted by yujiro : February 8, 2007 12:42 AM

yujiro様、早速のコメントありがとうございます。

ajaxCalendar.js を編集して、URLを見ましたら、どのページも最後にcalendar/2007/02が表示されます。

例えば12月の月別アーカイブを表示すると/blog/2006/12/calendar/2007/02となる状況です。同様に他のページでも、最後に必ず"calendar/2007/02"がついてしまいます。

ブラウザのソースでは、getCalendar( )の所には、正しく表示されている様なのですが。

やはり原因不明でしょうか。
どうしてもエラーになってしまう場合は、メインメージ以外は、元にもどした方が、よさそうですね。

[69] Posted by ようちゃん : February 8, 2007 1:31 AM

>ようちゃんさん
こんにちは。
ご連絡ありがとうございました。パスの取得は問題ないようです。
何回か試したところ、カレンダーが一瞬表示されてから「File Not Found」が表示されているようですので、ajaxCalendar.js の「File Not Found」を表示しないようにしてみてもらえますでしょうか(本来的な対処ではありませんし、うまくいかないかもしれません)。

下記のように、「File Not Found」を表示する行をコメントアウトしてください。

function errorProcess() {
//    $('calendar').innerHTML = 'File Not Found';
}

それではよろしくお願いいたします。

[70] Posted by yujiro : February 8, 2007 12:05 PM

yujiro様、お手数お掛けしております。

ご教示頂いた形で、、「File Not Found」を表示する行をコメントアウトしたところ、エラー表示の代わりに、公開テンプレートのカレンダーが表示される様にはなりました。ありがとうございました。

しかし、メインページのカレンダーも、「ブラウザを起動した初回表示はOKで、2回目以降の表示で NG」の状況になりました。そこで、メインページも、急遽、「失敗してもカレンダーを表示させたい」状況に直しました。キャッシュをクリアすれば、Ajax月送りカレンダーが表示できる様です。

月送りではありませんが、とりあえず、カレンダーが表示できているので、この状態にしておきたいと思います。

[71] Posted by ようちゃん : February 8, 2007 8:58 PM

>ようちゃんさん
こんにちは。
Firefox または Opera で確認すると、カレンダー以外の部分で JavaScript エラーが発生しています。
Ajax カレンダーとは無関係かもしれませんがとりあえず情報まで。

[72] Posted by yujiro : February 12, 2007 12:13 PM

いつもお世話になっております。

先日、「File Not Foundエラー」の現象で、お世話になりましたが、Frismさんのサイト記事"http://frism.com/archives/200702/162359.php"でご教示いただき、メインページ以外でも、月送りカレンダーが表示できる様になりましたので、ご報告致します。

本題とはそれまずが、OperaでJavascriptエラーを確認しましたが、修正方法がわかりません。Operaブラウザーでは、表示はされている様なのですが。

[73] Posted by ようちゃん : February 18, 2007 8:38 AM

>ようちゃんさん
こんばんは。
ご連絡ありがとうございました。
もしかしたら url という変数名がよくないのかもしれませんね。
後半のご質問は message: Security violation の件と思いますが、申し訳ありませんが当方でも不明です。
それではよろしくお願い致します。

[74] Posted by yujiro : February 21, 2007 10:58 PM

いつもお世話になっております。
Ajax 月送りカレンダーを使わせてもらっています。
いままで正常に表示されていたのですが、本日表示されていないことに気が付きました。色々調べてみた結果、cookie関係だというとこまでたどり着いたのですが対処方法が分かりません。
当方、ブログAとブログBの2個のブログを公開しています。双方にカレンダーを設置しているのですが、ブログAの最新の記事が3月、ブログBの最新記事が2月の場合、ブログAのカレンダーで3月を選択した状態でブログBを表示するとカレンダーが「File Not Found」が表示されてしまいます。多分cookieで状態を保存しているためと思いますが対処方法はあるでしょうか?
お願いいたします。

[75] Posted by のり : March 3, 2007 9:03 PM

>のりさん
こんばんは。
ご返事が遅くなってしまい申し訳ありません。
修正したスクリプトを別途エントリーさせて頂きますので、もう少々お待ちください。
それではよろしくお願い致します。

[76] Posted by yujiro : March 8, 2007 12:38 AM

こんにちは。
いつもお世話になっております。

数ヶ月前より、この「Ajax 月送りカレンダー」を利用させて頂いていますが、何故か数日前より突然「File Not Found」と表示されるようになってしまいました。

ここしばらくは、カレンダー含め、テンプレート等の変更は一切していません。記事の投稿のみです。

そんな状況ですので、理由が全く判らず、新たに[prototype.js]、[ajaxCalendar.js]、[dayChecker.js] をダウンロードし、アップしなおしたりしていました。


しかし、ふと見てみると『カレンダーを表示させる為のURL』おかしくなっていました。

=====
■ カレンダー読み込みURL。
http://xxxx.xxx/calendar/2007/03/calendar/2007/03/

■ 実際のカレンダーのURL。
http://xxxx.xxx/calendar/2007/03/
=====

テンプレートに埋め込んだタグはそのままなので間違いは無いと思います。

=====
■ 埋め込んだタグ
<div id="calendar"></div>
<script type="text/javascript">
getCalendar("<$MTBlogURL$><MTEntries lastn="1" sort_order="descend"><$MTEntryDate format="calendar/%Y/%m/" $></MTEntries>");


■ 書き出されたHTML
<div id="calendar"></div>
<script type="text/javascript">
getCalendar("http://xxxx.xxx/calendar/2007/05/calendar/2007/05/");
</script>
=====


このように、何故か「calendar/2007/05/」の部分が2回繰り返されるのです。タグに間違いは無いような気がするのですが、他に原因がある可能性もあるのでしょうか?

お手数お掛けしますが、何か判ればアドバイス頂けると助かります。

MTは「Version 3.31-ja 」を使用しています。
どうぞよろしくお願いします。

[77] Posted by kitano : March 15, 2007 11:05 PM

昨日、カレンダーが「File Not Found」になる、と言う事でコメントさせて頂いたのですが(まだ反映されていないようです)、取り急ぎ強制的にテンプレートを以下のように書き換えました。

getCalendar("lt;$MTBlogURL$>calendar/2007/03/");

昨日、コメントさせて頂いたので再度コメント書き込みさせて頂きました。

[78] Posted by kitano : March 16, 2007 8:31 PM

>kitanoさん
こんばんは。
カレンダーご利用ありがとうございます。
また保留コメントきがつかずすいませんでした。

ご質問の件ですが、大変申し訳ありませんが、当方では原因不明です(MTEntries タグが正常に動作していないように見えます)。

解決策ではありませんが、不具合箇所を切り分けたい場合は、新しいインデックステンプレートを作成して(出力ファイル名は test.html 等)、そこに下記のみを記述して保存・再構築して、test.html を表示してみてください。

<MTEntries lastn="1" sort_order="descend"><$MTEntryDate format="calendar/%Y/%m/" $></MTEntries>

お役に立てず申し訳ありません。もし何か分かりましたらエントリーにてお知らせ致します。
それではよろしくお願い致します。

[79] Posted by yujiro : March 18, 2007 3:08 AM

こんばんは、始めましてiroriと申します。
いつも「小粋空間」様にはお世話になっております。

月送りカレンダーがどうしても設置できず、お忙しいところ申し訳ないのですが、コメントさせていただきます。

問題点を整理します。
1:カレンダー表示位置にずっと「Loading...」が表示されて動かない。

2:ソースから「http://lusus.moo.jp/blog/calendar/2007/03/」を表示してみると、カレンダーは表示される。(calendarフォルダは作成済みです)

3:2で表示されるカレンダーの文字コードがShift-jifになっており、手順で紹介されている、「utf8以外の設定」時の方法を導入しても文字コードがutf8に変わらない。

4:アーカイブマッピングを新規作成し、「月別」に作成した「カレンダーアーカイブ」を適応させているが、リンクしてくれない。

以上になります。長々とすいません。
どこがおかしいのか、ご指摘お願いいたします。
(3つの必要ファイルは、全てhttp://lusus.moo.jp/blog/の「blog」フォルダにアップロードしています)

[80] Posted by irori : March 19, 2007 12:36 AM

>iroriさん
こんにちは。
カレンダーご利用ありがとうございます。
ご質問の件ですが、先ほど拝見させて頂いたところ、ajaxCalendar.js で下記の行がエラーになっています。

path = http://lusus.moo.jp/blog/ + archive_path + "calendar/" + cookie + "/";

エラーを解消するには、「http://lusus.moo.jp/blog/」 の部分をシングルクォーテーションで括るか、元の「url」に直してください。
これで表示されないようでしたら、お手数ですが再度ご連絡ください。
それではよろしくお願い致します。

[81] Posted by yujiro : March 19, 2007 12:19 PM

yujiro様

こんにちは、iroriです。
ご指摘頂いたように、URLをシングルクォーテーションで挟んだところ、うまく表示されました。
カテゴリー、エントリーアーカイブでも表示されましたが、未だ問題が出てきました。

上記の好調はIEFirefoxになると下記のようになります。

1:クッキーを削除した直後は表示されるが、再度ページを表示すると「Not found」になってしまう。

2:カレンダーをWidget化しているのですが、アーカイブページに飛ぶと「Loading...」でとまってしまう。

3:2の現象が発生したので、トップページに戻ってみると、さっきまで表示されていたカレンダーが「not found」になる。

ブラウザの問題なのでしょうか。
何度も申し訳ありません。よろしくお願いいたします。

[82] Posted by irori : March 19, 2007 3:02 PM

yujiro様

何度も連続して投稿してしまい申し訳ありません。
コメント「81」で指示していただいた通り修正し、IEではうまく動作しているようとご報告しましたが、検証不測でした。
コメント「65」でもあがっているように、ブログ自体の文字コードは、utf-8ですが、カレンダーを直接表示させると、文字コードがshift-JISになっていました。(IE、ネットスケープ、Firfox全てで確認しました。)

もう一度、手順2?1の文字コード変換方法を試してみましたが、上記状況はかわりませんでした。

なんども申し訳ありません。なぜ文字コードがかわってしまうのでしょうか・・・?本当にお手数かけて申し訳ありません。

[83] Posted by irori : March 19, 2007 11:54 PM

>iroriさん
こんにちは。
ご質問の件、サイトを拝見させて頂いたところ正常に動作しているようですが回復されましたでしょうか。

なお昨晩少し解析していたところ、Cookie に保存するデータの年と月の間にある "/" がURLエンコードされた形で保存されていることが判明しました。これが原因で Cookie から取得したデータが正常に処理できない場合があるようです(現在この事象にはなっておりません)。
とり急ぎご連絡まで。

[84] Posted by yujiro : March 20, 2007 12:26 PM

yujiro様

長々とお付き合いいただいてありがとうございました。
テンプレートのURLを相対パスに変えたりいろいろいじっているうちに、どれかが解決策になったのかもしれません。
確認しにいきましたら、おっしゃるとおり正常に動作していました。検証までいていただいて、本当にありがとうございます。

蛇足ですが、データ作成時の文字コードがlolipopではShift-JISデフォルトになっているのではないかと思い、さくらインターネットで同じ作業をしてみたところ、すぐにスムーズに動き、カレンダーの文字コードも最初からutf-8になりました。レンタルサーバーの相性もあるような気がしました。

では、本当にありがとうございました。これからもカスタムのリリース楽しみに拝見させていただきます。

では失礼いたします。

[85] Posted by irori : March 20, 2007 6:40 PM

>iroriさん
こんばんは。
ご連絡およびレンタルサーバの情報ありがとうございました。
とりあえず無事に直ったようで良かったです。
また何かございましたらご連絡ください。
ではでは!

[86] Posted by yujiro : March 20, 2007 6:55 PM

yujiro様 こんばんは、またiroriです。
何度も申し訳ありません。また問題が発生しました。
3月20日に修正されたファイルをアップロードしたところ、calendarフォルダに、カレンダーデータが生成されなくなりました。

ためしに、calendarフォルダに、バックアップしていたデータを入れてみたところ普通に表示されましたので、リンク設定のミスではないと思います。

また変わったエラーメッセージがでてきまして、カレンダー表示部分に「ご指定のアドレスのページは見つかりませんでした」とエラーメッセージがでてきてしまいました。

足りない頭で考えてみた結果、カレンダーデータが作成されない、プログラムが動作していないのではとの結論に達しました。

どうやって解消したらよいでしょうか。
よろしくご教示ください。よろしくお願いいたします。

[87] Posted by irori : March 26, 2007 1:56 AM

yujiro様

iroriです。事故解決しました。
連続で投稿して申し訳ありませんでした。

実はPerl版ダイナミックパブリッシングと併用させていただいておりまして、カレンダーアーカイブを、動的出力であるダイナミックパブリッシングに設定してしまっていたんです。
このカレンダーには、静的出力が必要なことをよく理解していませんでした。
カレンダーアーカイブを静的再構築に設定しなおしたっところ、カレンダー表示データが生成されました。

お手を煩わせてしまい本当に申し訳ありませんでした。これからはもっとよくチャックしていこうと思います。
失礼しました。

[88] Posted by irori : March 26, 2007 5:05 PM

>iroriさん
こんばんは。
ご連絡ありがとうございました。
自己解決されたようで良かったです。
また状況連絡ありがとうございます。大変参考になりました。
ではでは!

[89] Posted by yujiro : March 27, 2007 9:04 PM

すばらしい情報いつもありがとうございます。
祭日・休日まで出て、軽快に動くカレンダー感動です♪

さて、今、このAjaxカレンダーを使用して行事日程カレンダーを作成しようとしています。
Movable Typeのブログエントリーを行事予定を入れるツールとして使用しようと考えています。


カレンダーテンプレートの作成で、以下の*印の付いた3行を追加することで、
日付の下にエントリータイトルが並ぶようになりました。

<MTCalendarIfEntries>
<MTEntries lastn="1">
<a href="<$MTEntryLink archive_type="Daily"$>"><$MTCalendarDay$></a>
</MTEntries>
* <MTEntries><br />
* <a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
* </MTEntries>
</MTCalendarIfEntries>

後は、CSSで、
.calendar tdに
height: 96px;
border: 1px dotted #242468;
vertical-align: text-top;
text-align: left;