Полные данные о событиях календаря

Я думаю об использовании FullCalendar в качестве календаря событий на веб-сайте.

Мой вопрос: есть ли какая-либо документация или примеры использования PHP/MySQL для хранения данных о событиях доступа?

Спасибо!


person Tac    schedule 15.07.2011    source источник


Ответы (2)


Я тоже этим занимаюсь, и мне хотелось, чтобы был более полный пример стороны PHP/MySQL, поскольку я обычно работаю с ASP.NET/MS-SQL, поэтому мне пришлось потратить больше времени, чем я бы понравились некоторые основные вещи. Вот схема того, что я сделал. Это довольно просто.

Сначала я создал таблицу в MySQL, которая выглядит так:

CREATE TABLE `events` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
  `start_date` datetime NOT NULL,
  `end_date` datetime NOT NULL,
  `event_url` varchar(200) DEFAULT NULL,
  `all_day` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Затем я написал PHP-программу с именем json-events.php, которую использовал в качестве источника событий для календаря. В этой программе вам сначала нужно получить даты начала и окончания отображаемого в данный момент календаря:

$start_date = $_GET['start'];
$end_date = $_GET['end'];

Затем вам нужно запустить SQL-запрос, чтобы получить события в этом окне:

$sqlcommand = "select * from events 
where start_date between from_unixtime($start_date) and from_unixtime($end_date)
or end_date between from_unixtime($start_date) and from_unixtime($end_date)
order by start_date";

Затем соберите массив с результатами:

$event_array = array();
while ($record = mysql_fetch_array($result)) {
    $event_array[] = array(
        'id' => $record['id'],
        'title' => $record['title'],
        'start' => $record['start_date'],
        'end' => $record['end_date'],
        'url' => $record['event_url'],
        'allDay' => $record['all_day']
    );
}

Наконец, JSON кодирует его и повторяет:

echo json_encode($event_array);

Кажется, это работает. Я не очень хорошо знаком с тем, как поля даты/времени обрабатываются в MySQL и PHP, поэтому я не уверен, что делаю это наиболее эффективным образом.

person Andrew Huey    schedule 04.08.2011

Вам нужно будет реализовать страницу PHP, которая извлекает данные о событиях из базы данных MySQL и возвращает их в формате JSON. Затем вы можете использовать этот URL как источник канала JSON для календаря.

Пример кода есть в репозитории FullCalendar GitHub.

И есть демонстрация, показывающая как слушать события, если что-то меняется в календаре .

person Justin ᚅᚔᚈᚄᚒᚔ    schedule 15.07.2011