Ajax 月送りカレンダー
Ajax を利用した Movable Type 月送りカレンダーのカスタマイズです。リアルタイムカレンダー(本日の日付の装飾)および土・日・休日表示も盛り込まれています。 |
このカレンダーは、従来の月送りカレンダー(iframe 利用)と比較して、下記のアドバンテージがあります。
- 週数の変化によって高さが可変、つまりカレンダー下に表示されるアイテムとの間隔が常に一定
- 月送りのリンクの履歴がブラウザの履歴に残らない
すでにお気づきの方もいらっしゃると思いますが、当サイトでは数ヶ月前から月送りカレンダーを Ajax 化して試験運用してiいます。月送りのリンクをクリックして Ajax 化されたカレンダーを体感してみてください。
注:本カスタマイズでつまづいた場合、「8.トラブルシューティング」をご覧ください。
仕様
ここで紹介する月送りカレンダーの主な仕様です。
- Ajax を利用してテーブル型のカレンダーを月送りします。Ajax 化されるのはページ表示時および月送り時のカレンダー切り替え時です
- クッキーを利用して月送り状態を保持します
- カレンダーの取得に失敗した場合、カレンダー表示エリアにメッセージを表示します(表示内容・非表示のカスタマイズ可能)
以下、カスタマイズ方法です。ここではデフォルトテンプレートおよび公開テンプレートをサンプルにしていますが、Ajax の動作はテンプレートに依存するものではありませんので、CSS を変更すれば他のテンプレートでもお使いになれます。
1.スクリプトのダウンロード・アップロード
下記のスクリプトをダウンロードします。
prototype.js("Download the latest version" のリンクをクリック)ajaxCalendar.jsdayChecker.js(「2.ダウンロード」にある dayChecker.js をクリック)
ダウンロードした ajaxCalendar.js と dayChecker.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">');"><</a> </MTArchivePrevious><$MTArchiveDate format="%B %Y"$><MTArchiveNext> <a href="javascript:void(0);" onclick="changeMonth('<$MTBlogArchiveURL$><MTArchiveDate format="calendar/%Y/%m/%i">');" >></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">');"><</a>
</MTArchivePrevious>
<$MTArchiveDate format="%B %Y"$>
<MTArchiveNext>
<a href="javascript:void(0);" onclick="changeMonth('<$MTBlogArchiveURL$><MTArchiveDate format="calendar/%Y/%m/%i">');" >></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"$>
これがカレンダー用のディレクトリおよびファイル名となります。
設定後、ページ下にある「変更を保存」をクリックしてください。
またカレンダーを初めてご利用になる場合は、「アーカイブ種類」欄の「日別アーカイブ」をチェックして保存してください。このチェックがされていないと、再構築で下記のようなエラーが発生します。
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 で出力されていない
ご質問の前に確認していただきたいのは、
- ブラウザの[表示]-[ソース](あるいは「ソースの表示」)で、カレンダーを設定しているページのソースを表示
- 表示されたソースから下記のタグをみつけ、
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 です。
- 休日表示付きリアルタイムカレンダー for WordPress 日本語版
- 「休日表示付きリアルタイムカレンダー for WordPress」不具合のお知らせ
- Ajax 日めくりカレンダー(MT4版)
- Ajax 月送りカレンダー(MT4版)
- JavaScript カレンダー修正(春分の日・秋分の日の振替休日対応)
- Flash カレンダープラグイン(3.00 対応版) for Serene Bach
- カレンダーの日付リンクのジャンプ先をエントリー・アーカイブに変更する
- Ajax 月送りカレンダー(縦型)
- カレンダーの日曜と祝日のスタイルを別にする
- 「休日表示付リアルタイムカレンダー for livedoor ブログ」修正のお知らせ
- 休日表示付きリアルタイムカレンダー for WordPress
- Ajax 月送りカレンダー(横型)
- 休日表示付リアルタイムカレンダー for livedoor ブログ
- 月送りカレンダー(簡易版・横型・休日表示付き)
- Flash カレンダープラグイン バージョンアップ
- Flash カレンダープラグイン for Serene Bach
- 月送りカレンダー(簡易版・休日表示付き)
- 休日表示付リアルタイムカレンダー for FC2ブログ
- 休日表示付リアルタイムカレンダープラグイン(横型) for Serene Bach 不具合修正のお知らせ
≫ AJAXカレンダー from uckond.com
小粋空間さんが公開しているAJAXカレンダーを導入してみた。 カレンダーの読み込... [続きを読む]
≫ カレンダー from アフィリエイト ブログ ツール
本サイトにカレンダーを実装するにあたり、小粋空間さまのAjax月送りカレンダーを... [続きを読む]
≫ MT3.33 再インストール from Hitorigoto?
なんか、このところMTネタが続いてますが・・・(^_^;; 先日MT3.17から... [続きを読む]
≫ カレンダーで挫折…… from ひねもす MT備忘録
カレンダーはいまは一応、向こうのブログもこちらも小粋空間さまのAjaxカレンダー... [続きを読む]
≫ Ajaxカレンダーの設置 from - limitation.info -
当ブログにAjaxのカレンダーを設置しました。 月めぐりでカレンダーが表示できる... [続きを読む]
≫ Ajax 月送りカレンダー from ちょいオタエンジニアのブログ
カレンダーを表示しているだけでなく、月送り出来るようにしました。 小粋空間さんの... [続きを読む]
≫ 新年企画その2 ?Ajax月送りカレンダーを設置? from MOKKUN-6109
新年ブログ改造計画第二弾ということで、 ブログの3カラム化に続き、 「Ajax月... [続きを読む]
≫ Ajaxカレンダー導入 from 小さな会社の社長日記
明けましておめでとうございます。 実家が退屈で東京の自宅に帰るやいなやMovab... [続きを読む]
≫ 月送りカレンダー from PiPELiNEぶろぐ
小粋空間さんが公開されてる「Ajax 月送りカレンダー」を使わせて頂くことにしま... [続きを読む]
≫ カレンダーを変更しました from SWEET WATER Web Server
久しぶりに少し大掛かりな(?)カスタマイズをしました[:-)] 小粋空間:Ajax 月送りカレンダー 必要なものは「Prototype.js(JavaSc... [続きを読む]
≫ カレンダー変更しました from 遠藤青汁のやすらぎ裏サイト
このブログサイトのカレンダーを使い勝手が良いように少し変更してみました。 まだブ... [続きを読む]
≫ 月送り型Ajaxカレンダー from あかつき財務戦略研究所
前ののブログを書いている頃から、月送り型のカレンダーを設置したいと考えていたのだ... [続きを読む]
≫ カレンダー設置 from STUDIO SCATTER12
AJAXカレンダーを設置しました。 詳しくは小粋空間さんのこちらの記事へ。人任せ... [続きを読む]
≫ カレンダー設置 from Studio Scatter
AJAXカレンダーを設置しました。 詳しくは小粋空間さんのこちらの記事へ。人任... [続きを読む]
≫ OKANO?STYLE2007年版公開 from OKANOWEB.NET
OKANOWEB & OKANOsで使用しているMovableType用テンプレ... [続きを読む]
≫ Ajaxカレンダー導入? from 薄羽日記 2.0
例によって小粋空間さんとこからAjaxカレンダーを導入してみました。 途中いくつ... [続きを読む]
≫ Ajax mtカレンダー Mac Safariでの文字化け対策 from K25
このblogではないが、別の所で
小粋空間様のAjaxカレンダーを利用させてもらっている。
ただ、自分は曜日を日本語の、
日?土というようにして... [続きを読む]
≫ 超・紆余曲折MT化 from finder.
つつつ、ついに…。 サイトMT化しました。 長かった…。 長かったし…。つ、辛か... [続きを読む]
≫ MacのSafariで閲覧の方へ from 北海道のいで湯-かけ流し日帰り温泉・露天風呂宿のメモ
MacのSafariで閲覧の方へご連絡です。 新たにカレンダー表示(小粋空間... [続きを読む]
≫ Ajax 月送りカレンダー from White Wing version2.0
カレンダーを変更しました。 デフォルトのMovable Typeのカレンダーは... [続きを読む]
≫ Movable TypeカレンダーのAjax化 from Spirits of the Earth
小粋空間さんのサイトを参考に。 別に大した事をやったわけではないですが。。 Mo... [続きを読む]
≫ ブログにカレンダーをつけました from 株式トレード日記
MTサーバをインストールしてから、しばらく手をつけていなかったが、自分のブログで... [続きを読む]
≫ MT4で○○に挑戦・・・No.1続き from K.Kimura-制作中-
11時に始めたMT4の再インストールから、元の形に戻すまで約5時間((-ω-。)... [続きを読む]
≫ チカッパブログのカレンダー機能 from 社労士@DIARY
チカッパブログをインストールするとたいていのテンプレートでデフォルトで使用可能なカレンダー機能。カレンダー機能は無料ブログやMovableTypeなどの... [続きを読む]
≫ チカッパブログのカレンダー機能 from 社労士@DIARY
チカッパブログをインストールするとたいていのテンプレートでデフォルトで使用可能なカレンダー機能。カレンダー機能は無料ブログやMovableTypeなどの... [続きを読む]
≫ チカッパブログのカレンダー機能 from 社労士@DIARY
チカッパブログをインストールするとたいていのテンプレートでデフォルトで使用可能なカレンダー機能。カレンダー機能は無料ブログやMovableTypeなどの... [続きを読む]
こんにちわ^^
いつも拝見させてもらっています。
以前、わたしもカレンダーをAjax化できないかトライしてみたのですが、Ajaxを使いこなせなくて断念しました(つω-`。)
さっそく家帰ったらトライしてみます!!
いつもお世話になっています。
さっそく設置して、便利に使っています。
僕のブログはカレンダーの「October 2006」などのタイトル部分をサイドタイトルと同じような外観にしたため、プレビューやネクストの矢印が背景色と同じになってしまいました。
CSSに
.calendarhead a:link {
text-decoration: none;
font-weight: normal;
color: #000000 !important
}
上記を追加し、更に「!important」を付加してリンク色を変えたのですが、他によい方法というかもっと簡単にできるやり方があるようでしたら教えていただけないでしょうか?
これからも新しいカスタマイズを楽しみにしています。
こんにちは。
Ajax版月送りカレンダー公開お疲れ様でした。
>bzbellさん
こんにちは。
ご利用&ご連絡ありがとうございます。
うまくできたようでホッとしました。
ではでは!
>鹿之助さん
こんにちは。
ご利用ありがとうございます。
ご質問の件ですが、サンプルは .calendar に color 指定をしているので important 指定が必要になっている可能性があります。
それぞれの要素セレクタに個別に color プロパティを設定する手があるかもしれません(試していませんので間違ってたらお許しください)が、鹿之助さんの方法が簡単かもしれません。
それではよろしくお願い致します。
>壱さん
こんにちは。
コメントありがとうございます。
壱さんも公開お疲れさまでした!
貴サイト、とても丁寧で助かっています。
ところで、Ajaxの月送りカレンダーを導入しようとしているのですが、どうしても「prototype.js」のファイル(prototype-1.4.0.tar.tar)の解凍がWinZipで「Error reading header after processing 0 entries」とエラーになってしまいできません。
何か回避策があれば教えてください。
お手数ですが、宜しくお願い致します。
すみません。
+Lhacaで解凍してみたら問題なくできました。
お騒がせしました、、。
>mippiさん
こんばんは。
ご質問の件、自己解決されたようでよかったです。
ではでは!
小粋空間さんのサイト、いつもホントに助かっています!
今まで個人的に「カレンダーはいらない?」と思っていたので、あえてカレンダーなしでブログを書いてきましたが、Ajaxカレンダーの秀逸さに魅かれて設置させてもらいました。
URLにWWWをつけると、読み込みエラー(「Loading...」状態)になったので、TBで書かれているuckond.comさんとのコメントのやりとりを参考にさせていただき、無事解決しました。
MTで悩んだ時は真っ先にこちらのサイトを拝見しています。
これからもよろしくお願いします!
>オレンジさん
こんばんは。
カレンダーご利用&ご連絡ありがとうございます。
無事に表示されたようでなによりです。
こちらこそ今後ともよろしくお願い致します。
小粋空間さん、初めまして。
キラタマという者です。
今朝から小粋空間さんのテンプレートを使わさして頂いております。
先ほど、時計の設置もしたのですが、平日の数字が表字されません。説明通りにやったはずなのですが・・・どうすれば良いでしょうか?教えて頂けますか?
キラタマさん
はじめまして。
ご質問の件は「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に登録させて頂きました。
それではよろしくお願い致します。
小粋空間さん、こんばんは。
ありがとうございます。ご指摘のとおりしましたら、表示されるようになりました。
ただいま、トップページには表示されてますが、他のアーカイブページにもタグを貼り付けたのですが、「loading ...」の文字が表示されたり、されなかったりです。もう少し時間が経たないと駄目なのかな?朝、また様子を見てみます。
ブログピープル、僕も登録させていただきました。
ありがとうございました。おやすみなさい。
>キラタマさん
こんにちは。
ご連絡ありがとうございました。
ブラウザの一時ファイルやクッキー等を一旦クリアされると良いかもしれません。
また他のブラウザで試してみることもお勧めします。
どうしてもうまく表示されない場合は再度ご相談ください(他のカスタマイズと違って Ajax はこちらで動作を確認できないのですが…)。
なおアーカイブページの BlogPeople 表示用の script タグの終了タグが抜けているようですので、修正されると良いでしょう(Firefox では表示が崩れています)。
それではよろしくお願い致します。
こんばんは。
今日、ファイアーフォックスを導入して見たのですが、やはり駄目でした・・・
なので、『「失敗してもカレンダーを表示させたい」という場合は、上記メッセージ出力の1行を削除して、6項の「loading ...」というメッセージの代わりに、カレンダータグ(通常のカレンダータグ)を埋め込んでおく』、という記事のとおりやってみました。
タグの件ありがとうございます。やり直しました。
>キラタマさん
こんばんは。
ご連絡ありがとうございました。
もし 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 の内容に違いがないかご確認ください。
それではよろしくお願い致します。
小粋空間さん、こんばんは。
ありがとうございます。
赤字の部分を「ajaxCalendar.js 」に書き込んだのですが、今度は画面を切り替えたすると
「http://kagayakerutamashii.kiratama.org/calendar/2006/11/」
と、ポップアップのようなものが出てしまいます。
とりあえず、赤字の部分は消しておきます。
>キラタマさん
こんにちは。
alert関数はカッコ内に記述されたデータ等をポップアップ表示する機能です(先の依頼はalert関数を用いてデバグして頂く主旨でしたので、「JavaScript がお分かりでしたら」ということを申し上げました)。
頂いたデータの内容から、URLは正常に取得できているようです。
はじめまして!
MTを利用する前から、ブログのカスタマイズなどを
参考にさせてもらっていました。
今回Ajaxのカレンダー導入にあたり、エントリを参考に
がんばってきたのですが、どうしてもFile Not Foundが
出て来てしまいます。色々確認してみたのですが、
うまくいかないようです。
パスの指定などはうまくいっているように思われるのですが、
どこに原因があるのでしょうか?
ご指導いただけましたら幸いです。よろしくおねがいします。
>あーにゃさん
こんにちは。
ご質問の件ですが、例えばトップページをブラウザで表示し、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をブラウザに入力して実行するとカレンダーだけが表示されるはずですが、現在、通常のページが表示されてしまうようですので、カレンダーのページへのリンクがうまく設定できてないように思われます。設定(特にアーカイブマッピング)を再度ご確認ください。
なお、確認・修正後、ブラウザから再表示する場合はブラウザのクッキーを予め削除してください。
それではよろしくお願い致します。
>yujiroさん
丁寧にありがとうございます!
カレンダーを表示させるためのcalendarフォルダ
を作成して、改めて再設置を行ってみましたら、無事解決しました。
書き込みを行った際は、calendarフォルダが必要ない
と思っていました。アドバイス頂き本当にありがとうございました。
>あーにゃさん
こんばんは。
ご連絡ありがとうございました。
無事に表示されたようで良かったです。
ではでは!
yujiroさん、こんばんは。
つまり、JavaScriptが良くわかっていないと駄目という事ですね・・・
もう少し、勉強してみます。色々すいません。
>キラタマさん
いえいえ。
こちらでも原因が分からず申し訳ございません。
何か分かりましたらエントリーに追記しておきたいと思います。
ではでは!
始めましてです
書かれたとおりに変更してみましたがエラーが出てしまいます
最後まで設定して再構築すると
日付アーカイブ「Monthly20061101000000」の再構築に失敗しました: テンプレート「カレンダー」の再構築に失敗しました: <MTCalendar>タグでエラーが発生しました: <MTCalendarIfEntries>タグでエラーが発生しました: <MTEntryLink>タグでエラーが発生しました: <$MTEntryLink$>タグを使って、Dailyアーカイブにリンクしようとしましたが、そのアーカイブ・タイプは公開されていません。
と表示されます
考えられる原因はなんでしょうか?
なんとなく初歩的な感じが直感でするのですが自分でいじってみてもわかりませんでした。
ご多忙だとは思いますが宜しくお願いします
>もちっこさん
はじめまして。
ご質問の件ですが、3項の最後に書いてある作業が未完了のようですので、再度ご確認頂けますでしょうか。
それではよろしくお願い致します。
初めまして、いつも役立つ情報を本当にありがとうございます。
今回初めてカレンダーを導入するにあたりAjaxのカレンダーの方法をやらせていただきました。
IEのVer6で表示させた上で最初は問題なくカレンダーが表示しているものの、前の月に移動するとなぜかサイト全体の文字フォントが大きくなって表示されてしまいます。
リロードすれば元の状態に戻ってくれますがどのような原因が考えられるのでしょうか?
MTバージョンは3.3を使用しており
今回、公開テンプレートを使わせていただいてます。
文字コードが UTF-8で使用しています。
お手数ではありますがよろしくお願いします。
>CHOBIさん
はじめまして。
ご利用ありがとうございます。
ご質問の件ですが、こちらの環境(IE6)ではフォントが大きくなる事象は発生しておりません。
ブラウザのキャッシュ(一時ファイル)等を一端削除されてみてはいかがでしょうか。
それではよろしくお願い致します。
はじめまして。Ajaxカレンダーを導入してみたのですが、うまくいかないので、質問させてください。
もろもろ作業後、出力画面のソースを確認してみると
<script type="text/javascript">
getCalendar("http://user-domain/calendar/");
</script>
という風になってしまっていて、「yyyy/mm」が表示されません。
なので、カレンダーが表示されるはずの部分には、ブログのトップページが入れ子状に表示されてしまってます。。。
この場合どのようなミスが考えられますでしょうか??ちなみにNot foundも出ません。
ご教授お願いします!
すみません。自己解決です。
エントリーがなにもない場合、index.htmlが表示されるようですね。
お騒がせしました???
はじめました。
先ほど、月送りカレンダー設置させて頂きました。
動作も軽く大変気に入っています。
ありがとうございました。
ところで、「2.カレンダーテンプレート作成」の「デフォルトテンプレートの場合」欄で、以下の部分で少し気になりましたので、厚かましくも書いておきます。間違えてたらスイマセン。
誤)<MTArchiveDate format="archives/calendar/%Y/%m/%i">')
正)<MTArchiveDate format="calendar/%Y/%m/%i">')
話しは変わりますが、カレンダーのデフォルトの表示を「一番過去」にする事は出来ないでしょうか?
と言うのも、MTを日記形式では無く、これから先のスケジュール表として利用しています。公開しているエントリーは本日と未来のもののみです。
その為、カレンダーを「公開しているエントリーの一番過去」、もしくは「今現在の月」のカレンダーを表示させたいと思っています。
もし可能であれば、アドバイス頂ければ嬉しいです。
いつも楽しく拝見しています。
Ajaxカレンダーですが、設置した月よりも過去に戻ることは通常できないんでしょうか?
教えてください!宜しくお願いします。
>kitano (yellowjamaican)さん
こんばんは。
ご質問の件ですが、4.2項にあるリストに含まれる
sort_order="descend"
を
sort_order="ascend"
にすれば一番古い月のカレンダーが表示されると思います。
ご指摘の部分は修正致しました。ご連絡ありがとうございました。
それではよろしくお願い致します。
>あきーさん
こんばんは。
ご質問の件ですが、残念ながらエントリーがない月のカレンダーを表示させることはできません。
それではよろしくお願い致します。
ご丁寧にありがとうございます。
「sord_order="ascend"」は「sort_order="ascend"」の間違いですよね。
早速試してみたのですが、何故か反映されませんでした。
一度古いカレンダーを表示させ、一端ウィンドウを閉じた後、もう一度アクセスするとその時のカレンダーが表示されるのですが、キャッシュをクリアするなど、新規でアクセスすると最新のカレンダーが表示されてしまいます。
>kitano (yellowjamaican)さん
こんにちは。
こちらでも動作を確認してみました。
この属性の組み合わせでは正常に動作しないようです(つまりMTの仕様、あるいはバグ)。
またスペルミスご指摘ありがとうございました。
それではよろしくお願い致します。
こんにちは。
今MTでブログを現在製作中で、ここのAjaxのカレンダーを設置させてもらっています。
で、システム系のテンプレート(具体的にはコメントエラー、コメントプレビュー、検索結果)にもカレンダーを設置しましたが、なぜか表示されません。これは仕様なんですかね?
ソースを確認してもカレンダー自体のページはちゃんと存在してます。
どのブラウザでも表示されません;
ちなみにindexやアーカイブのテンプレートだとちゃんと表示されます。
>gouacheさん
こんにちは。
ご質問の件につきまして、デフォルトテンプレートのコメントプレビューにAjax月送りカレンダーを設置してみたところ、正常に動作しました。
ということで申し訳ありませんが設定もれ等ないかご確認ください。
それではよろしくお願い致します。
確認ありがとうございます。
さきほど「sord」を「sort」になおしたり、そもそもその属性を外したりしてみても、やはりシステム系のテンプレートだけ表示されませんでした。
まだ完成してませんが、一応ブログのURLを書いておきました。
>gouacheさん
こんにちは。
JavaScript エラーが発生しているのが正常に動作しない原因かもしれません。
下記のタグを追加してください(エントリー・アーカイブも)。
<script type="text/javascript" src="<$MTBlogURL$>mt-site.js"></script>
それではよろしくお願い致します。
迅速に対応してくださってありがとうございます。
やってみましたが、どうもダメみたいです;
movable type初めて使ったのでこういうことには疎いもんで。お手数かけます;
>gouacheさん
こんにちは。
すいませんが、コメント[38]の設定は行った状態にしてください(Movable Type でこの設定は必須です)。
それからエントリー・アーカイブとコメント・プレビューの body タグを
<body onload="individualArchivesOnLoad(commenter_name)">
に変更してください(id 属性等はそのまま残して結構です)。
その状態で改めてこちらから動作を確認してみます。
それではよろしくお願い致します。
すみません。わざわざありがとうございます。
よろしくお願いします。
>gouacheさん
分かりました。原因はコメント・プレビューのドメインがメインページやエントリーアーカイブページと異なるためのようです。
なお先ほどの設定で JavaScript のエラーは発生しなくなりました。
それではよろしくお願い致します。
>gouacheさん
mt-config.cgi の CGIPath を修正すれば良いと思いますが、CGI が同一ドメインで動作する(=HTMLページと同じドキュメントルートに存在する)ことが必要です。
なぜ異なるドメインを設定されているかについては、gouache さんの利用されている環境に依存するので、当方では不明です。
とりあえず試してみてはいかがでしょうか。
ご丁寧にありがとうございます。
解決策が見つかりました。
本当にありがとうございました。
はじめまして。
Movabletypeにカレンダーを設置しようと思いまして、貴サイトが非常に参考になりました。
貴重な情報をありがとうございます。
早速Ajaxカレンダーを導入したのですが、
カレンダーが表示されず、がっくり、です。
Loading...のままとなってしまいます。
自分での原因調査および結果です。
・ソースで書かれたURLでカレンダーが表示されるか
→getCalendar("http://blog.doux-fleur.com/calendar/2007/01/");
が抽出できたので、ieに貼りつけてみたらカレンダーが表示された
・上記IEで文字コードを見てみたらシフトJISだったので、ご指摘のプラグインを入れ、カレンダーテンプレートにMTEncodeTextタグを挿入した
・ご指示のjsファイルを消しても状況は変わらなかった。
→head内の指定を確認したが、問題は無いと思われる。
→jsファイルがあろうがなかろうが状況が変わらないので、これがなにかあやしい?
他に調査することが有ればご指示頂けますか?
よろしくお願いします。
補足です。コメント[15]にご指摘のあった方法でURLを確認してみましたが、問題有りませんでした。
>やまちゃんさん
はじめまして。
ご利用ありがとうございます。
ご質問の件ですが、サイトを拝見させて頂いたところ、もしかしたらコメント[42]と[44]が該当するかもしれません。
それではよろしくお願い致します。
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されるはずなのですが、アラートダイアログボックスが表示されないと理解しています。
(違っていたらご指摘ください。。。)
>やまちゃんさん
こんばんは。
説明不足ですいません。
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 を起動するには、表示されている月送りカレンダーの前月または次月のリンクをクリックしてみてください。
それではよろしくお願い致します。
こんばんは。
Ajax版カレンダー使わせてもらいました^^
おかげでスタイル切替時にカレンダーも即反映されるようになりました?(= ̄▽ ̄=)V やったね
ありがとうございましたm(._.)m
>WINDさん
こんばんは。
ご利用ありがとうございます。
たしかに、そういう恩恵もありましたね!
いつも参考にさせてもらい助かっています。
一つ質問なのですが、「Ajax 月送りカレンダー」を導入し、正常に動作するまでは行きましたが、休日・祝日のスタイル変更では出来なかったので、できる方法があれば教えていただきたいと思います。
具体的にはSundayとHolidayのスタイルを別々したいのです。
[ajaxCalendar.js]を拝見ところ、HolidayとSaturdayのclass指定は別々に記述されるようになっていましたが、Sundayのスタイルは指定がなくHolidayと同じものがつかわれているようです。
これを
[Holiday] [Saturday] [Sunday]
個別に指定したいのですが可能でしょうか。
以上、よろしくお願いいたします。
>Akiさん
こんばんは。
ご利用ありがとうございます。
ご質問の件につきまして、JavaScript のスキルをどの程度お持ちかわかりませんが、dayChecker.js にある isSunday() を起動するように改造すれば、異なるスタイルを使用することは可能です。
お分かりにならないようでしたらスクリプトを検討しますのでご連絡ください。
それではよろしくお願い致します。
>yujiroさん
早速の返答ありがとうございました。
dayChecker.jsを少し触ってみたのですが、
うまくスタイルが変更できませんでした。
お手数ですがスクリプト変更の検討をお願いできませんでしょうか。
よろしくお願いいたします。
>Akiさん
こんばんは。
それでは別途エントリーさせて頂きます。
すいませんがしばらくお時間ください。
>yujiroさん
上記の件ですが、ajaxCalendar.jsを修正することで[Holiday] [Saturday] [Sunday]に個別のスタイルをあてることが出来るようになりました。
お手数をおかけいたしました。
はじめまして。カレンダーを使わせていただいています!
質問ですが、わたしのカレンダーのエントリーのある日付をクリックすると、必ずアーカイブの画面に飛んでしまうのですが、その日付のエントリーに飛ばすことは出来ないでしょうか?というか、できるのでしょうが、わたしの設置ミスだと思います。。。
方法を教えて頂けますでしょうか?
よろしくお願いします!
>Akiさん
こんにちは。
ご返事遅くなりすいません。
ご連絡ありがとうございました(メールもありがとうございました)。
うまくできたようで良かったです。
ではでは!
>こめさん
こんにちは。
ご質問の件ですが、管理画面の[設定]-[公開]の「アーカイブのマッピング」の[日別]のところに2つのテンプレートが含まれていないでしょうか(ここはひとつが正解です)。
ちなみに「アーカイブ」とはどのアーカイブかお分かりでしょうか?(一応「日付のエントリー」もアーカイブなので)
サイトを拝見させて頂ければもう少し適切な回答ができると思います。
それではよろしくお願い致します。
yujiroさん、お返事ありがとうございます。
管理画面の[設定]-[公開]の「アーカイブのマッピング」の[日別]のところに2つのテンプレートが含まれていないでしょうか
ひとつです。ほかの[エントリー][週別]などのところもひとつです。
「アーカイブ」とはどのアーカイブかお分かりでしょうか?
すみません。わかりません。。。汗
URLを書きましたので、一度ご覧になって頂いてもよろしいですか?
よろしくお願いします。
>こめさん
こんにちは。
アーカイブのURLより、問題なく日付アーカイブが表示されているようです。
それではよろしくお願い致します。
>yujiroさん
ご回答ありがとうございます。
アーカイブのURLより、問題なく日付アーカイブが表示されているようです。
なるほど、一応正常に動作しているんですね。。
カレンダーの日付を押すと、「日付アーカイブ」ではなく、その日に書き込まれたエントリーを表示させたいのですが、、、
たとえば上のWINDさんのブログのように。。。
http://www.zechs-web.net/
どうすれば表示できますでしょうか?
よろしくお願い致します!
>こめさん
こんばんは。
ご質問の件につきましては別途エントリー致します。
少々お待ちください。
>yujiroさん。
お手数おかけします。
よろしくお願いいたします!
はじめまして。カレンダーを使頂こうと思いまして記載どうりにやってみたのですがうまくいきません。
現象としては「File Not Found」と出てしまいます。ソースのカレンダーのアドレスで直接見ると表示されます。ブラウザのキャッシュ・一時ファイルの削除等も行いましたが同じです。
何かアドバイスいただけますでしょうか?
1点気になるのは、ブログ自体は「UTF-8」で運用してるのですが、カレンダーのページに直接行くと「Shith_JIS」になってしまいます。ブラウザのエンコードで「UTF-8」に手動で直しても文字化けなく表示されます。
関係ないでしょうか?
>のりさん
はじめまして。
ご利用ありがとうございます。
ご質問の件ですが、Shift_JIS になる原因は不明です(どのブラウザでも同じ事象でしょうか?)。
なおカレンダーに日本語が含まれていなければ文字コードを変更しても正常に表示されます。
解決できるかどうか分かりませんが URL をご連絡頂ければもう少し状況を確認したいと思います。
それではよろしくお願い致します。
いつもお世話になっております。
本エントリーのAjax月送りカレンダーを使わせてもらっております。
記載通り行なって、メインページでは、上手く表示できているのですが、何故が、カテゴリー・アーカイブ・ページ、月別アーカイブ・ページ、エントリー・ページでは、「File Not Found」になってしまいます。
8項のトラブル・シューティングを見て、それぞれのエラーとなるページのソースを見ましたが、カレンダーのアドレスをブラウザで表示させるとカレンダーは表示はできます。さらにそれぞれのページの文字コードは、ちゃんとUTF-8 になっています。ブラウザの再起動もやりましたし、再構築もしましたが、やはりエラーとなります。
残りは、アーカイブ・パスとなるのでしょうが、メインメージでは正常に表示されています。
メインメージ以外を正常にさせるには、他に何か方法があるのでしょうか。
お忙しいところ恐縮ですが、ご教示いただければと思います。
>ようちゃんさん
こんばんは。
ご利用ありがとうございます。
ご質問の件ですが、メインページ以外はブラウザを起動した初回表示はOKで、2回目以降の表示で NG になるようです。つまり Cookie に保存されたカレンダー年月が正常に表示できていないように思われます。
もし ajaxCalendar.js の編集が可能であれば[15]の alert 関数を追加して、ページを表示した時にダイアログにカレンダーのURLが表示されますので、メインページ以外のページでどのようなURLが表示されるかご確認ください。ただしどうしてこのような事象になるのか原因不明ですので解消できないかもしれません。
それではよろしくお願い致します。
yujiro様、早速のコメントありがとうございます。
ajaxCalendar.js を編集して、URLを見ましたら、どのページも最後にcalendar/2007/02が表示されます。
例えば12月の月別アーカイブを表示すると/blog/2006/12/calendar/2007/02となる状況です。同様に他のページでも、最後に必ず"calendar/2007/02"がついてしまいます。
ブラウザのソースでは、getCalendar( )の所には、正しく表示されている様なのですが。
やはり原因不明でしょうか。
どうしてもエラーになってしまう場合は、メインメージ以外は、元にもどした方が、よさそうですね。
>ようちゃんさん
こんにちは。
ご連絡ありがとうございました。パスの取得は問題ないようです。
何回か試したところ、カレンダーが一瞬表示されてから「File Not Found」が表示されているようですので、ajaxCalendar.js の「File Not Found」を表示しないようにしてみてもらえますでしょうか(本来的な対処ではありませんし、うまくいかないかもしれません)。
下記のように、「File Not Found」を表示する行をコメントアウトしてください。
function errorProcess() {
// $('calendar').innerHTML = 'File Not Found';
}
それではよろしくお願いいたします。
yujiro様、お手数お掛けしております。
ご教示頂いた形で、、「File Not Found」を表示する行をコメントアウトしたところ、エラー表示の代わりに、公開テンプレートのカレンダーが表示される様にはなりました。ありがとうございました。
しかし、メインページのカレンダーも、「ブラウザを起動した初回表示はOKで、2回目以降の表示で NG」の状況になりました。そこで、メインページも、急遽、「失敗してもカレンダーを表示させたい」状況に直しました。キャッシュをクリアすれば、Ajax月送りカレンダーが表示できる様です。
月送りではありませんが、とりあえず、カレンダーが表示できているので、この状態にしておきたいと思います。
>ようちゃんさん
こんにちは。
Firefox または Opera で確認すると、カレンダー以外の部分で JavaScript エラーが発生しています。
Ajax カレンダーとは無関係かもしれませんがとりあえず情報まで。
いつもお世話になっております。
先日、「File Not Foundエラー」の現象で、お世話になりましたが、Frismさんのサイト記事"http://frism.com/archives/200702/162359.php"でご教示いただき、メインページ以外でも、月送りカレンダーが表示できる様になりましたので、ご報告致します。
本題とはそれまずが、OperaでJavascriptエラーを確認しましたが、修正方法がわかりません。Operaブラウザーでは、表示はされている様なのですが。
>ようちゃんさん
こんばんは。
ご連絡ありがとうございました。
もしかしたら url という変数名がよくないのかもしれませんね。
後半のご質問は message: Security violation の件と思いますが、申し訳ありませんが当方でも不明です。
それではよろしくお願い致します。
いつもお世話になっております。
Ajax 月送りカレンダーを使わせてもらっています。
いままで正常に表示されていたのですが、本日表示されていないことに気が付きました。色々調べてみた結果、cookie関係だというとこまでたどり着いたのですが対処方法が分かりません。
当方、ブログAとブログBの2個のブログを公開しています。双方にカレンダーを設置しているのですが、ブログAの最新の記事が3月、ブログBの最新記事が2月の場合、ブログAのカレンダーで3月を選択した状態でブログBを表示するとカレンダーが「File Not Found」が表示されてしまいます。多分cookieで状態を保存しているためと思いますが対処方法はあるでしょうか?
お願いいたします。
>のりさん
こんばんは。
ご返事が遅くなってしまい申し訳ありません。
修正したスクリプトを別途エントリーさせて頂きますので、もう少々お待ちください。
それではよろしくお願い致します。
こんにちは。
いつもお世話になっております。
数ヶ月前より、この「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 」を使用しています。
どうぞよろしくお願いします。
昨日、カレンダーが「File Not Found」になる、と言う事でコメントさせて頂いたのですが(まだ反映されていないようです)、取り急ぎ強制的にテンプレートを以下のように書き換えました。
getCalendar("lt;$MTBlogURL$>calendar/2007/03/");
昨日、コメントさせて頂いたので再度コメント書き込みさせて頂きました。
>kitanoさん
こんばんは。
カレンダーご利用ありがとうございます。
また保留コメントきがつかずすいませんでした。
ご質問の件ですが、大変申し訳ありませんが、当方では原因不明です(MTEntries タグが正常に動作していないように見えます)。
解決策ではありませんが、不具合箇所を切り分けたい場合は、新しいインデックステンプレートを作成して(出力ファイル名は test.html 等)、そこに下記のみを記述して保存・再構築して、test.html を表示してみてください。
<MTEntries lastn="1" sort_order="descend"><$MTEntryDate format="calendar/%Y/%m/" $></MTEntries>
お役に立てず申し訳ありません。もし何か分かりましたらエントリーにてお知らせ致します。
それではよろしくお願い致します。
こんばんは、始めまして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」フォルダにアップロードしています)
>iroriさん
こんにちは。
カレンダーご利用ありがとうございます。
ご質問の件ですが、先ほど拝見させて頂いたところ、ajaxCalendar.js で下記の行がエラーになっています。
path = http://lusus.moo.jp/blog/ + archive_path + "calendar/" + cookie + "/";
エラーを解消するには、「http://lusus.moo.jp/blog/」 の部分をシングルクォーテーションで括るか、元の「url」に直してください。
これで表示されないようでしたら、お手数ですが再度ご連絡ください。
それではよろしくお願い致します。
yujiro様
こんにちは、iroriです。
ご指摘頂いたように、URLをシングルクォーテーションで挟んだところ、うまく表示されました。
カテゴリー、エントリーアーカイブでも表示されましたが、未だ問題が出てきました。
上記の好調はIEFirefoxになると下記のようになります。
1:クッキーを削除した直後は表示されるが、再度ページを表示すると「Not found」になってしまう。
2:カレンダーをWidget化しているのですが、アーカイブページに飛ぶと「Loading...」でとまってしまう。
3:2の現象が発生したので、トップページに戻ってみると、さっきまで表示されていたカレンダーが「not found」になる。
ブラウザの問題なのでしょうか。
何度も申し訳ありません。よろしくお願いいたします。
yujiro様
何度も連続して投稿してしまい申し訳ありません。
コメント「81」で指示していただいた通り修正し、IEではうまく動作しているようとご報告しましたが、検証不測でした。
コメント「65」でもあがっているように、ブログ自体の文字コードは、utf-8ですが、カレンダーを直接表示させると、文字コードがshift-JISになっていました。(IE、ネットスケープ、Firfox全てで確認しました。)
もう一度、手順2?1の文字コード変換方法を試してみましたが、上記状況はかわりませんでした。
なんども申し訳ありません。なぜ文字コードがかわってしまうのでしょうか・・・?本当にお手数かけて申し訳ありません。
>iroriさん
こんにちは。
ご質問の件、サイトを拝見させて頂いたところ正常に動作しているようですが回復されましたでしょうか。
なお昨晩少し解析していたところ、Cookie に保存するデータの年と月の間にある "/" がURLエンコードされた形で保存されていることが判明しました。これが原因で Cookie から取得したデータが正常に処理できない場合があるようです(現在この事象にはなっておりません)。
とり急ぎご連絡まで。
yujiro様
長々とお付き合いいただいてありがとうございました。
テンプレートのURLを相対パスに変えたりいろいろいじっているうちに、どれかが解決策になったのかもしれません。
確認しにいきましたら、おっしゃるとおり正常に動作していました。検証までいていただいて、本当にありがとうございます。
蛇足ですが、データ作成時の文字コードがlolipopではShift-JISデフォルトになっているのではないかと思い、さくらインターネットで同じ作業をしてみたところ、すぐにスムーズに動き、カレンダーの文字コードも最初からutf-8になりました。レンタルサーバーの相性もあるような気がしました。
では、本当にありがとうございました。これからもカスタムのリリース楽しみに拝見させていただきます。
では失礼いたします。
>iroriさん
こんばんは。
ご連絡およびレンタルサーバの情報ありがとうございました。
とりあえず無事に直ったようで良かったです。
また何かございましたらご連絡ください。
ではでは!
yujiro様 こんばんは、またiroriです。
何度も申し訳ありません。また問題が発生しました。
3月20日に修正されたファイルをアップロードしたところ、calendarフォルダに、カレンダーデータが生成されなくなりました。
ためしに、calendarフォルダに、バックアップしていたデータを入れてみたところ普通に表示されましたので、リンク設定のミスではないと思います。
また変わったエラーメッセージがでてきまして、カレンダー表示部分に「ご指定のアドレスのページは見つかりませんでした」とエラーメッセージがでてきてしまいました。
足りない頭で考えてみた結果、カレンダーデータが作成されない、プログラムが動作していないのではとの結論に達しました。
どうやって解消したらよいでしょうか。
よろしくご教示ください。よろしくお願いいたします。
yujiro様
iroriです。事故解決しました。
連続で投稿して申し訳ありませんでした。
実はPerl版ダイナミックパブリッシングと併用させていただいておりまして、カレンダーアーカイブを、動的出力であるダイナミックパブリッシングに設定してしまっていたんです。
このカレンダーには、静的出力が必要なことをよく理解していませんでした。
カレンダーアーカイブを静的再構築に設定しなおしたっところ、カレンダー表示データが生成されました。
お手を煩わせてしまい本当に申し訳ありませんでした。これからはもっとよくチャックしていこうと思います。
失礼しました。
>iroriさん
こんばんは。
ご連絡ありがとうございました。
自己解決されたようで良かったです。
また状況連絡ありがとうございます。大変参考になりました。
ではでは!
すばらしい情報いつもありがとうございます。
祭日・休日まで出て、軽快に動くカレンダー感動です♪
さて、今、この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;
Ajax を利用した Movable Type 月送りカレンダーのカスタマイズです。リアルタイムカレンダー(本日の日付の装飾)および土・日・休日表示も盛り込まれています。