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;
 }
 public function deletetranslationAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $id = $this->_getParam('id');
     if (null != $id) {
         $translation = $this->event_description->fetchRow(array('event_id = ?' => $id, 'language_id = ?' => self::LANGUAGE_EN));
         if (null != $translation) {
             $translation->delete();
             $this->_helper->flashMessenger->addMessage('Translasi berhasil dihapus');
             $this->loggingaction('Event', 'Delete', $id, self::LANGUAGE_EN);
         }
     }
     $this->_helper->redirector('index');
 }
 /**
  * IS: Parameter id terdeklarasi
  * FS: Mengirimkan ke viewer: form, date_view, show_clock, event_time,
  *     event_id
  * Desc: Mengatur aksi yang dilakukan untuk halaman edit
  */
 public function editAction()
 {
     //set parameter
     $language_id = $this->_getParam('lang');
     $event_id = $this->_getParam('id');
     //creating instance
     $form = new Admin_Form_EventForm();
     $form->setCategorySelectData();
     $table_event = new Model_DbTable_Event();
     $table_event_description = new Model_DbTable_EventDesc();
     $table_poitoevent = new Model_DbTable_PoiToEvent();
     //if this is a post request
     if ($this->getRequest()->isPost()) {
         //preparing data and update for event description
         $event_name = htmlspecialchars($_POST['eventName'], ENT_QUOTES);
         $event_description = htmlspecialchars($_POST['eventDescription'], ENT_QUOTES);
         if ($language_id == 1) {
             $indo = $table_event_description->checkForIndo($event_id, 1);
             if ($indo) {
                 $data = array('event_id' => $event_id, 'language_id' => $language_id, 'name' => $event_name, 'description' => $event_description);
                 $table_event_description->updateEvent($data, $event_id, $language_id);
             } else {
                 $data2 = array('event_id' => $event_id, 'language_id' => $language_id, 'name' => $event_name, 'description' => $event_description);
                 $table_event_description->insertEvent($data2);
             }
         } else {
             if ($_POST['dateStart'] == $_POST['dateEnd']) {
                 $startdate = $_POST['dateStart'] . ' ' . $_POST['timeStart'] . ':00';
                 $enddate = $_POST['dateStart'] . ' ' . $_POST['timeEnd'] . ':00';
             } else {
                 $startdate = $_POST['dateStart'] . ' ' . $_POST['timeStart'] . ':00';
                 $enddate = $_POST['dateEnd'] . ' ' . $_POST['timeEnd'] . ':00';
             }
             //preparing data and update for event table
             $data = array('main_pics' => $_POST['eventImage'], 'date_start' => $startdate, 'date_end' => $enddate, 'category' => $_POST['mainCategory']);
             $table_event->updateEvent($data, $event_id);
             $data = array('event_id' => $event_id, 'language_id' => $language_id, 'name' => $event_name, 'description' => $event_description);
             $table_event_description->updateEvent($data, $event_id, $language_id);
             $poi_count = $_POST['poiMax'];
             $poiarr = array();
             for ($i = 0; $i <= $poi_count; $i++) {
                 if ($_POST['poiValue' . $i] != '') {
                     array_push($poiarr, $_POST['poiValue' . $i]);
                 }
             }
             //create poi related to event list
             $saved_poitoevent = array();
             $saved_list = $table_poitoevent->getAllPoiNameByEventId($event_id);
             //convert to a non ASSOC array
             foreach ($saved_list as $list) {
                 array_push($saved_poitoevent, $list['poi_id']);
             }
             //compare the new list with the new one, if the new one doesnt exist then insert then new one
             foreach ($poiarr as $poi_new) {
                 if (!in_array($poi_new, $saved_poitoevent)) {
                     $data = array('event_id' => $event_id, 'poi_id' => $poi_new);
                     $table_poitoevent->insertEvent($data);
                 }
             }
             //do the complementary process, if the old one doesnot exist in the new list then delete the old ones
             foreach ($saved_poitoevent as $poi_old) {
                 if (!in_array($poi_old, $poiarr)) {
                     if ($poi_old != '') {
                         $table_poitoevent->deleteEvent($event_id, $poi_old);
                     }
                 }
             }
         }
         //preparing data for updating the poi to event data
         $this->loggingaction('event', 'edit', $event_id, $language_id);
         $this->_flash->addMessage("1\\Event Update Success!");
         $this->_redirect($this->view->rootUrl('/admin/eventindo/'));
     }
     if ($language_id == 1) {
         $indo = $table_event_description->checkForIndo($event_id, $language_id);
         if ($indo) {
             $saved_list = $table_poitoevent->getAllPoiNameByEventId($event_id, $language_id);
         }
     } else {
         $saved_list = $table_poitoevent->getAllPoiNameByEventId($event_id, $language_id);
     }
     //data processing
     $event_data = $table_event->getAllWithDescById($event_id, $language_id);
     $event_name = $this->view->HtmlDecode($event_data[0]['name']);
     $event_description = $this->view->HtmlDecode($event_data[0]['description']);
     $poiCount = $table_poitoevent->countRelatedPoiByEventId($event_id);
     $datetime_start = explode(' ', $event_data[0]['date_start']);
     $datetime_end = explode(' ', $event_data[0]['date_end']);
     //set form element value
     $form->eventName->setValue($event_name);
     $form->eventDescription->setValue($event_description);
     $form->eventImage->setValue($event_data[0]['main_pics']);
     $form->dateEnd->setValue($datetime_end[0]);
     $form->dateStart->setValue($datetime_start[0]);
     $form->timeStart->setValue(substr($datetime_start[1], 0, 5));
     $form->timeEnd->setValue(substr($datetime_end[1], 0, 5));
     $form->mainCategory->setValue($event_data[0]['category']);
     $form->poiMax->setValue($poiCount);
     if ($datetime_start[0] == $datetime_end[0]) {
         $this->view->date_view = $datetime_start[0] . ' one day event';
         $this->view->show_clock = TRUE;
     } else {
         $this->view->date_view = $datetime_start[0] . ' until ' . $datetime_end[0];
         $this->view->show_clock = FALSE;
     }
     $this->view->event_time = array($datetime_start[1], $datetime_end[1]);
     $this->view->event_id = $event_id;
     $this->view->form = $form;
     $this->view->langId = $language_id;
 }
 /**
  * IS: Parameter id, dateStart, dateEnd terdeklarasi
  * FS: Mengirimkan ke viewer: pageTitle
  * Desc: Fungsi untuk generate breadcrumb
  */
 protected function _generateBreadcrumb()
 {
     $listTitle = $this->view->translate('id_menu_calendarevents');
     $searchTitle = $this->view->translate('event_search');
     $texthomelink = $this->view->translate('id_menu_home');
     if ($this->_hasParam('id')) {
         // Param
         $eventId = $this->_getParam('id');
         // Model
         $eventDescDb = new Model_DbTable_EventDesc();
         // Data
         $eventTitle = $eventDescDb->getNameById($eventId, $this->_languageId);
     }
     $links = null;
     switch ($this->_request->getActionName()) {
         case 'detail':
             if ($this->_hasParam('dateStart')) {
                 $title = $searchTitle;
                 $url = $this->view->baseUrl('event/search/date-start/' . $this->_getParam('dateStart') . '/date-end/' . $this->_getParam('dateEnd'));
             } else {
                 $title = $listTitle;
                 $url = $this->view->baseUrl('event');
             }
             $links = array($texthomelink => $this->view->baseUrl('/'), $title => $url, $eventTitle => '');
             $this->view->pageTitle = $eventTitle;
             break;
         case 'search':
             $links = array($texthomelink => $this->view->baseUrl('/'), $searchTitle => '');
             $this->view->pageTitle = $searchTitle;
             break;
         case 'index':
         default:
             $links = array($texthomelink => $this->view->baseUrl('/'), $listTitle => '');
             $this->view->pageTitle = $listTitle;
     }
     Zend_Registry::set('breadcrumb', $links);
 }
         $paginator->setCurrentPageNumber($pageNumber);
         $paginator->setPageRange(5);
         $this->view->paginator = $paginator;
         $this->view->folder = $folder;
     }
 }
 /**
  * IS:
  * FS:
  * Desc:
 public function tagLinkUsercontributorDetail($userStoryId, $lang_id, $url)
 {
     $userStoryTag = new Model_DbTable_UserStoryTag();
     $detailTags = $userStoryTag->getTag($userStoryId, $lang_id);
     $event = new Model_DbTable_EventDesc();
     $destination = new Model_DbTable_DestinationDescription();
     $article = new Model_DbTable_ArticleDescription();
     $related = '<ul>';
     //
     if (count($detailTags) > 0) {
         //$related = count($detailTags);
         foreach ($detailTags as $tags) {
             if ($tags->object_type == 'event') {
                 $getEvent = $event->getEvenName($tags->object_id, $lang_id);
                 $related .= '<li><a target="_blank" href="' . $url . '/event/detail/' . $tags->object_id . '/' . $getEvent['name'] . '">' . $getEvent['name'] . '</a></li>';
             } else {
                 if ($tags->object_type == 'destination') {
                     $getDest = $destination->getDestName($tags->object_id, $lang_id);
                     $related .= '<li><a target="_blank" href="' . $url . '/destination/' . $tags->object_id . '/' . $getDest['name'] . '">' . $getDest['name'] . '</a></li>';
                 } else {
                     $getArticle = $article->getArticleName($tags->object_id, $lang_id);
                     if (!empty($getArticle['poi_id'])) {
                         $Dest = $destination->getDestName($getArticle['poi_id'], $lang_id);
                         $related .= '<li><a target="_blank" href="' . $url . '/destination/' . $getArticle['poi_id'] . '/' . $Dest['name'] . '/article/' . $tags->object_id . '/' . $getArticle['title'] . '">' . $getArticle['title'] . '</a></li>';
                     }
                 }
             }
         }
         $related .= '</ul>';
         return $related;
     } else {
         //            $related .= '<li> - </li>';
         //            $related .= '</ul>';
         return false;
     }
 }