Я сам выяснил это. Это то, что я придумал.
Это 2 сгиба:
- сохраняет вид и
- восстанавливает выбранную дату после загрузки страницы.
Проблема, с которой я столкнулся, заключалась в том, что файл cookie с текущей датой был установлен при загрузке / инициализации FullCalendar и после этого файл cookie был прочитан. Я решил это, только считав cookie при загрузке страницы и удалив его. Файлы cookie для даты будут установлены при навигации.
$(document).ready(function() {
calendar = $('#calendar').fullCalendar( {
defaultView:$.cookie('fullcalendar_defaultView') || {if $_USER.status==1}'month'{else}'agendaWeek'{/if},
viewDisplay: function(view) {
$.cookie('fullcalendar_defaultView', view.name);
if ( calendar ) MySetDate();
}
}
function MySetDate()
{
var thedate = $('#calendar').fullCalendar('getDate');
raw_date = thedate + 'stringed';
raw_split_date = raw_date.split(' ');
switch (raw_split_date[1])
{
case 'Jan': raw_month = 0; break;
case 'Feb': raw_month = 1; break;
case 'Mrt': raw_month = 2; break;
case 'Apr': raw_month = 3; break;
case 'May': raw_month = 4; break;
case 'Jun': raw_month = 5; break;
case 'Jul': raw_month = 6; break;
case 'Aug': raw_month = 7; break;
case 'Sep': raw_month = 8; break;
case 'Oct': raw_month = 9; break;
case 'Nov': raw_month =10; break;
case 'Dec': raw_month =11; break;
}
$.cookie('lof_y', raw_split_date[3], { expires: 2 } );
$.cookie('lof_m', raw_month, { expires: 2 } );
$.cookie('lof_d', raw_split_date[2], { expires: 2 } );
}
function setMyView() {
$('#calendar').fullCalendar('gotoDate', $.cookie('lof_y'), $.cookie('lof_m'), $.cookie('lof_d') );
$.cookie('lof_y', null);
}
if ( $.cookie('lof_y') ) setMyView();
} );