現在取り組んでいるプロジェクトでこの機能が必要です。これは学校のプロジェクトで、その日が休日のイベントと週末の場合、背景を赤色で強調する必要があります。ここではすべての土曜日が休日ではないことに注意してください。一部の学校では第 2 土曜日のみが休日であり、一部の学校では無作為に土曜日が勤務日として選択されます。
エレガントな解決策ではありませんが、何とかこの問題を克服しました。
バージョン 1.5.1 の行番号 2291 で、この行を追加します。
var refDate = typeof(window.holidays)!='undefined'?window.holidays:[]; //Quick and dirty fix
2300 から 2304 までの行を次のコードに置き換えます
if (+date == +today) {
cell.addClass(tm + '-state-highlight fc-today');
}else if($.inArray(+date, refDate)!=-1){ //Added by me
cell.addClass(tm + '-state-error'); //Added by me
}else{
cell.removeClass(tm + '-state-highlight fc-today');
cell.removeClass(tm + '-state-error'); //Added by me
}
完全なカレンダーを呼び出す前に、次のように、js 日付オブジェクトに変換された日付の配列を作成し、その前に + 記号を追加して長整数に変換する必要があります。
var holidayArray = ['2011-06-26','2011-07-03','2011-07-10','2011-07-17','2011-07-24','2011-07-31'];
window.holidays = [];
for(var i=0; i<holidayArray.length;i++){
holidays.push(+(mysqlDateToJSDate(holidayArray[i])));
}
最後に、mysql の日付を js の日付オブジェクトに変換する js 関数を見つけました。
function mysqlDateToJSDate(date) {
var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9])$/;
var parts=date.replace(regex,"$1 $2 $3").split(' ');
return new Date(parts[0],parts[1]-1,parts[2],0,0,0);
}
フル カレンダーを呼び出した後、グローバル変数を削除することを忘れないでください。
グローバル変数を作成するのは良いことではないことはわかっています。しかし、完全なカレンダーは頻繁なバグ修正と新機能で非常に活発であることを考えると、コードにあまり干渉したくありません. 変数をオプションとして渡し、必要な場所に簡単に取得する方法がわかりません。
これは月表示でのみ行われています。他のビューでも同じことをする必要があります...
プレビューは投稿できませんが、ここで見ることができます。