2016-06-10 10 views
0

Я использую fullcalendar как повестку дня бронирования. Я использую повторяющиеся события для отображения доступности врачей.Fullcalendar: при повторяющихся событиях я не хочу показывать определенные даты

Случается, однако, что врач не может быть доступен только на определенную дату:

Пример: Д-р Смит работает каждый понедельник с 1000 до 1800, но только на следующий понедельник не будет доступен.

Повторяющиеся события в fullcalendar позволяют показывать события в определенном диапазоне дат. Но как это можно сделать наоборот (всегда показывать, кроме определенного диапазона дат)?

У вас уже была эта проблема?

Спасибо за помощь!

+0

взглянуть на это JSFiddle http://jsfiddle.net/duu0dx2t/415/ – Ryan89

ответ

0

У меня есть функция, использующая @ Ryan89 JSFiddle.

//$val is doctor ID value 
//adding not availabilty to repeating events 
$adesso=date('Y-m-d H:i:s'); 
$sql_ecc="SELECT * FROM lpap_eccezioni_oneoff WHERE IDmedico=$val AND  datafine>'$adesso' AND stato='Non disponibile' ORDER BY datainizio"; 
$res_ecc=$wpdb->get_results($sql_ecc); 
$qta=count($res_ecc); 
if ($qta>0){ 
$eccezioni_non_disponibile=",ranges: [{start: moment().startOf('year'),"; 
foreach ($res_ecc as $val_ecc){ 
$stato=$val_ecc->stato; 
if ($stato=="Disponibile"){$dispchecked="checked";$nondispchecked="";} 
if ($stato=="Non disponibile"){$dispchecked="";$nondispchecked="checked";} 

$datainizioecc=$val_ecc->datainizio; 
$datafineecc=$val_ecc->datafine; 
$IDeccezioni=$val_ecc->IDeccezioni; 
$eccezioni_non_disponibile.=" 
end: moment('$datainizioecc','YYYY-MM-DD h:mm:ss'), 
},{ 
start: moment('$datafineecc','YYYY-MM-DD h:mm:ss'),";   
} 
$eccezioni_non_disponibile.="end: moment('$datafineecc','YYYY-MM-DD h:mm:ss').endOf('year'), 
}]"; 
} else {$eccezioni_non_disponibile="";} 

для того, чтобы получить этот код:

ranges: [{ 
 
\t \t \t \t \t start: moment().startOf('year'), 
 
\t \t \t \t \t end: moment('2016-06-13 10:00:00','YYYY-MM-DD h:mm:ss'), 
 
\t \t \t \t },{ 
 
\t \t \t \t \t start: moment('2016-06-13 18:00:00','YYYY-MM-DD h:mm:ss'), 
 
\t \t \t \t \t end: moment('2016-06-20 10:00:00','YYYY-MM-DD h:mm:ss'), 
 
\t \t \t \t }, 
 
     { 
 
\t \t \t \t \t start: moment('2016-06-20 18:00:00','YYYY-MM-DD h:mm:ss'), 
 
\t \t \t \t \t end: moment('2016-06-20 18:00:00','YYYY-MM-DD h:mm:ss').endOf('year'), 
 
\t \t \t \t },] \t

я добавил затем на повторяющиеся события переменную $ eccezioni_non_disponibile. $ SHOW_TIME = "{ идентификатор: 'Disp_ $ Вэл', RESOURCEID: '$ Gruppo', название: '$ Cognome $ нома - Presente', старт: '$ ora01', конец: '$ ora02' , dow: [$ key], цвет: '$ rgba', borderColor: '$ colore' $ eccezioni_non_disponibile }, "; }

0

Я спросил Аршау (автора fullcalendar), почему JSfiddle работает, а не на моем сайте, и похоже, что он не знает какой-либо функции RANGES.

Посмотрите здесь: enter link description here

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