2012-02-23 2 views
2

Вопрос заключается в том:FullCalendar - отображение различных инфо

как отобразить (что нужно изменить в коде) для отображения различной информации в недельном и в виде f.ex дня .: зрения

недели - время , название

вид на день - время, название, описание ect.

и проформа: месяц вид - время, название

ответ

2

В глобальных JS заявляют,

var currentView; 

В конструкторе fullCalendar есть viewDisplay триггер, используйте этот код.

  viewDisplay: function(view) { 
           //This is very ugly way to change events on switch... but it works! 
           //Every time you you use 'gotoDate' this will trigger, also pressing next, previous 

           if (view.name != currentView) { 
            if (view.name == 'basicWeek') 
             { 
              $('#myDateSelector').hide(); 
              $('#calendar').fullCalendar('removeEventSource', 'json_day.php'); 
              $('#calendar').fullCalendar('addEventSource', 'json_week.php'); 
              console.log("week"); 
             } 
            if (view.name == 'basicDay') 
             { 
              $('#myDateSelector').show(); 
              $('#calendar').fullCalendar('removeEventSource', 'json_week.php'); 
              $('#calendar').fullCalendar('addEventSource', 'json_day.php'); 
              console.log("day"); 
             } 
             //You can use it some where else to know what view is active quickly 
             currentView = view.name; 
            } 
        }, 

Код очень взломанный, но он намного лучше, чем копание в исходном коде для календаря. Вы должны помнить, что нужно добавлять и удалять какие-либо фиды, обычно вы заметите, что ваши фиды начинают дублироваться. Это означает, что где-то отсутствует.

+1

Thnks за вашу помощь :)) – Andrew

0

Я отправил это на другой вопрос, ранее

Проверить эту ссылку

http://arshaw.com/fullcalendar/docs/text/titleFormat/

Вы можете указать, какой вид вы хотите редактировать через этот

http://arshaw.com/fullcalendar/docs/views/View_Option_Hash/

Так вы вероятно, будет иметь что-то вроде строк

titleFormat: { 

day: 'dddd, d MMM, yyyy' //whatever date format you want here 
month: 'MMMM yyyy',        
week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}" 
} 
2

Решение ppumkin может работать, но это очень Hacky, так что я подумал, я выложу лучше один:

$("#calendar").fullCalendar({ 
    events: [ 
     { 
     start: "2010-01-05", 
     end: "2010-01-07", 
     title: "event info", 
     advancedTitle: "advanced event info" 
     } 
    ], 
    eventRender: function(event, element, view){ 
     if(view.name == "agendaDay") 
     { 
     event.title = event.advancedTitle; 
     } 
    } 
}); 

В случае объектов вы можете указать нестандартное поле для пример 'advancedTitle', который содержит расширенную информацию о событиях. Затем в функции обратного вызова eventRender вы можете легко переключить заголовок на «advancedTitle» для нужного вида.

Надежда, что помогает кому-то :)

+0

Очень полезным и гораздо лучшее решение, ура! – dlofrodloh

Смежные вопросы