使用数据库和Google日历的FullCalendar

时间:2018-07-15 21:31:10

标签: php fullcalendar

是否可以使用FullCalendar显示来自数据库的自定义事件和Google日历?我已经完成了从数据库显示自定义事件的工作,并且我还想使用Google日历显示我所在国家的假期。我的问题是,可以在FullCalendar中这样做吗?这是我的代码:

googleCalendarApiKey: 'AIzaSyBTYvbg3gKLNi0A8qOXMyk6q-EnzM6DZq4',
events: [ googleCalendarId:'en.philippines#holiday@group.v.calendar.google.com',
  <?php foreach($events as $event): 

    $start = explode(" ", $event['start']);
    $end = explode(" ", $event['end']);
    if($start[1] == '00:00:00'){
      $start = $start[0];
    }else{
      $start = $event['start'];
    }
    if($end[1] == '00:00:00'){
      $end = $end[0];
    }else{
      $end = $event['end'];
    }
  ?>
    {
      id: '<?php echo $event['id']; ?>',
      title: '<?php echo $event['title']; ?>',
      start: '<?php echo $start; ?>',
      end: '<?php echo $end; ?>',
      color: '<?php echo $event['color']; ?>',
    },
  <?php endforeach; ?>

3 个答案:

答案 0 :(得分:1)

您应该可以使用addEventSource来做到这一点:

$('#myCal').fullCalendar( ‘addEventSource’, source );

其中

  与事件选项一样,

可能是数组/ URL /函数。   活动将立即从此来源获取并放置在   日历。

因此,source可以是Google网址或包含您的事件的数组。

答案 1 :(得分:1)

events: [ googleCalendarId:'en.philippines#holiday@group.v.calendar.google.com' ... JS数组不能包含命名项...不确定它甚至可以在浏览器中编译。您是否遇到控制台错误?即使这是有效的JS,您也无法将Google日历指定为事件数组的一项,fullCalendar希望“事件”为 URL或对象数组,而不是组合。如果您想将数据库中的数据与外部数据相结合,例如Google日历,那么您可能正在寻找的是“事件源”(请参见https://fullcalendar.io/docs/eventSources

这样,您可以为fullCalendar提供获取事件的不同方法的列表。第一个条目可以是您的PHP代码生成的数据,第二个条目可以是您的Google日历详细信息,它可以告诉您消失并从Google日历下载事件:

从代码中删除您的events:选项,而是指定:

eventSources: [
  //first event source:
  [ 
    <?php foreach($events as $event): 

    $start = explode(" ", $event['start']);
    $end = explode(" ", $event['end']);
    if($start[1] == '00:00:00'){
      $start = $start[0];
    }else{
      $start = $event['start'];
    }
    if($end[1] == '00:00:00'){
      $end = $end[0];
    }else{
      $end = $event['end'];
    }
  ?>
    {
      id: '<?php echo $event['id']; ?>',
      title: '<?php echo $event['title']; ?>',
      start: '<?php echo $start; ?>',
      end: '<?php echo $end; ?>',
      color: '<?php echo $event['color']; ?>',
    },
    <?php endforeach; ?>
  ],
  //second event source:
  {
    googleCalendarId:'en.philippines#holiday@group.v.calendar.google.com'
  }
]

如果您要合并Google日历活动,请确保您也遵循https://fullcalendar.io/docs/google-calendar

中列出的所有步骤

答案 2 :(得分:0)

使用:

eventSources: [{googleCalendarId: 'xxxxxxxxx@gmail.com', className: 'gcal-event'},{url:'events.php',}],