Beispiel #1
0
 /**
  * Fungsi untuk mencari event-event berdasarkan tanggal.
  * Contoh mencari event tanggal 7 oktober maka
  * dibawah ini event yang muncul yaitu:
  *  - event dari tgl 5 okt - 8 okt
  *  - event tgl 7 okt dan berakhir tgl 7 okt (one day event)
  * 
  * @param string $dateStart tanggal mulai event
  * @param string $dateEnd tanggal berakhir event
  * @return array daftar event
  */
 public function getAllSearchEvent($dateStart, $dateEnd, $sortingOptions = null, $langId)
 {
     // mendapatkan tanggal-tanggal yang ada di rentang waktu tersebut
     $dates = $this->_getDateRangeArray($dateStart, $dateEnd);
     //print_r($dates);
     // Data
     $eventDescDb = new Model_DbTable_EventDesc();
     $allevents = $eventDescDb->getEventByStartDate($dateStart, $langId, $sortingOptions = null);
     //echo "<pre>";
     //print_r($allevents);
     // untuk menyimpan dengan array key, menjamin tidak ada event yg dimasukkin lebih dari satu
     $arrTmpEvent = array();
     // untuk menyimpan array final
     $arrEvent = array();
     // cek per hari apakah di hari tersebut ada event yg terjadi
     for ($i = 0; $i < count($dates); $i++) {
         $current = strtotime($dates[$i]);
         foreach ($allevents as $allevent) {
             // dari format date time mysql, kita ambil date-nya saja
             $onlyStartDate = explode(" ", $allevent['date_start']);
             $onlyEndDate = explode(" ", $allevent['date_end']);
             // ubah ke strtotime untuk bisa dibandingkan
             $start = strtotime($onlyStartDate[0]);
             $end = strtotime($onlyEndDate[0]);
             $event_id = $allevent['event_id'];
             // cek apakah tanggal sekarang ada event-nya
             if ($current >= $start && $current <= $end) {
                 // arrTmpEvent untuk cek apakah event tersebut sudah exist apa blum
                 if (!in_array($event_id, $arrTmpEvent)) {
                     // cek array key dgn menggunakan event id
                     $arrTmpEvent[] = $event_id;
                     $arrEvent[] = $allevent;
                 }
             }
         }
     }
     unset($arrTmpEvent);
     // destroy tmp event
     return $arrEvent;
 }