Оглавление

Создание метода, сохраняющего объекты события в виде массива

Теперь, когда у нас имеется возможность хранить каждое событие в виде объекта, можно создать метод, который перебирает все имеющиеся события и сохраняет их в виде массива в соответствии с датами событий. Прежде всего загрузим дату события из базы данных с помощью метода  _loadEventData(). Затем извлечем день месяца из начальной даты каждого события и добавим новое событие в элемент массива, индекс которого определяется этим днем. Для этого создадим в классе Calendar новый закрытый метод, который назовем _createEventObj (). Загрузка события из базы данных и создание нового массива осуществляются с помощью кода, выделенного ниже полужирным шрифтом.


<?php 
 
class Calendar extends DB_Connect 
{ 
 
    private $_useDate; 
 
    private $_m; 
 
    private $_y; 
 
    private $_daysInMonth; 
 
    private $_startDay; 
 
    public function __construct($dbo=NULL, $useDate=NULL) {...} 
 
    private function _loadEventData($id=NULL) {...} 
 
    /** 
     * Загружает все события, относящиеся к данному месяцу, в массив
     * 
     * @return array:  информация о событиях
     */ 
    private function _createEventObj() 
    { 
        /* 
         * Load the events array 
         */ 
        $arr = $this->_loadEventData(); 
 
        /* 
         * Создать новый массив, а затем организовать события в
         * зависимости от дня месяца, в который они происходят 
         */ 
        $events = array(); 
        foreach ( $arr as $event ) 
        { 
            $day = date('j', strtotime($event['event_start'])); 
 
            try 
            { 
                $events[$day][] = new Event($event); 
            } 
            catch ( Exception $e ) 
            { 
                die ( $e->getMessage() ); 
            } 
        } 
        return $events; 
    } 
 
} 
 
?> 

 

Теперь, когда события Moiyr быть загружены и организованы так, чтобы метод отображал календарь в привычном виде, можно без труда разместить даты в нужных ячейках с помощью HTML.

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити