/** * 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; } }