/** * IS: - * FS: Mengirimkan ke viewer: imageGallery, areaDb * Desc: Fungsi inisialisasi */ public function init() { parent::init(); if ($this->_hasParam('destId')) { $imageDb = new Model_DbTable_Image(); $imageGallery = $imageDb->getAllImageGalleryByPoiId($this->_destId); $this->view->imageGallery = $imageGallery; $fileAttachmentDb = new Model_DbTable_FileAttachments(); $fileAttachments = $fileAttachmentDb->getByPoiId($this->_destId); $this->view->fileAttachments = $fileAttachments; } // Model Area untuk generate lokasi destinasi // View switch ($this->_languageId) { case 1: $langLocale = 'id'; break; case 2: $langLocale = 'en'; break; } $this->view->languageID = $langLocale; $this->view->areaDb = new Model_DbTable_Area(); if (isset($this->_destId)) { // untuk mengenerate koordinate google map $destinationDb = new Model_DbTable_Destination(); $destination = $destinationDb->getAllByIdLang($this->_destId, $this->_languageId); $this->view->pointX = $destination['pointX']; $this->view->pointY = $destination['pointY']; //realated link $linkModel = new Model_DbTable_RelatedArticlePoi(); $this->view->related_link = $linkModel->getByPoiId($this->_destId, $this->_languageId); } $this->view->destId = $this->_destId; // parse google map key api to viewer $this->view->map_api = Zend_Registry::get('gmap_key2'); $this->view->bigPageTitle = $this->view->translate('Culture'); $this->view->bgClass = "yellow"; }
$contact->updateContact($data, $contactId); $this->loggingaction('contact', 'edit', $contactId); $this->_flash->addMessage("1\\Contact Change Flag Success!"); } /** * IS: Status highlight shown atau not shown * FS: Status highlight berubah dari shown menjadi not shown atau sebaliknya * Desc: Fungsi untuk mengganti status highlight (shown/not shown) */ public function hideshowhighlightAction() { $language_id = 1; $highlight_id = $this->_getParam('highlightid');
/** * IS: Parameter id terdeklarasi * FS: Mengirimkan ke viewer: poi_id, form, gkey, header_image * Desc: Mengatur aksi yang dilakukan untuk halaman edit */ public function editAction() { $culture_id = $this->_getParam('id'); $language_id = $this->_getParam('lang'); $table_destination = new Model_DbTable_Destination(); $table_destination_description = new Model_DbTable_DestinationDescription(); $table_category = new Model_DbTable_Category(); $table_categorytopoi = new Model_DbTable_CategoryToPoi(); $table_areatopoi = new Model_DbTable_AreaToPoi(); $table_relatedpoi = new Model_DbTable_RelatedPoi(); $this->table_cultureVideo = new Model_DbTable_CultureVideo(); $form = new Admin_Form_PoiForm(); $culture = null; $table_file = new Model_DbTable_FileAttachments(); $table_gallery = new Model_DbTable_Image(); $table_related_article_poi = new Model_DbTable_RelatedArticlePoi(); // get realated article data // untuk menampilkan related link pada destinasi yang bersangkutan $ralated_poi = $table_related_article_poi->getByPoiId($culture_id, $language_id); $cultureVideos = $this->table_cultureVideo->findByCultureId($culture_id); $this->view->ralated_poi = $ralated_poi; $this->view->poi_id = $culture_id; $this->view->ralated_news = $ralated_poi; $this->view->cultureVideos = $cultureVideos; $this->view->files = $table_file->getByPoiId($culture_id); $this->view->images = $table_gallery->getByPoiId($culture_id); /* Update Process */ if ($this->getRequest()->isPost()) { if ($form->isValid($_POST)) { $status = Model_DbTable_Destination::DRAFT; if (isset($_POST['Submit'])) { if ($this->_userInfo->canApprove) { $status = Model_DbTable_Destination::PUBLISH; } else { $status = Model_DbTable_Destination::PENDING; } } $culture = array('pointX' => $_POST['pointx'], 'pointY' => $_POST['pointy'], 'main_category' => $_POST['MainCategory'], 'featured' => $_POST['Featured'], 'status' => $status); if ($form->header_image->isUploaded()) { $file = pathinfo($form->header_image->getFileName()); $form->header_image->addFilter('Rename', UPLOAD_FOLDER . 'culture/' . $file['filename'] . '_' . time() . '.' . $file['extension']); if ($form->header_image->receive()) { $culture['image'] = $form->header_image->getValue(); } } $table_destination->updatePoi($culture, $culture_id); $culture_description = array('poi_id' => $culture_id, 'name' => $_POST['Name'], 'description' => $_POST['Description'], 'updated_by' => $this->_userInfo->id, 'updated_at' => Date('Y-m-d H:i:s')); $table_destination_description->UpdatePoiDescription($culture_description, $culture_id, 1); /* preparing data for categorytopoi table * Get category count and data */ $category_count = $this->_getParam('MaxCategory'); $category_stack = array(); for ($i = 0; $i <= $category_count; $i++) { if (!empty($_POST['catValue' . $i])) { array_push($category_stack, $_POST['catValue' . $i]); } } /* inserting data for categorytopoi table */ $category_list = $table_categorytopoi->getCategoryIdByPoiId($culture_id); /* convert to non associative array */ $saved_category = array(); foreach ($category_list as $temp_cat) { array_push($saved_category, $temp_cat['category_id']); } /* processing the data if the posted data not found on saved category id list then insert the data */ foreach ($category_stack as $category_new) { if (!in_array($category_new, $saved_category)) { $category_poi = array('category_id' => $category_new, 'poi_id' => $culture_id); $table_categorytopoi->insertCategoryToPoi($category_poi); } } /* complement check, if the data on saved category list not found on posted category then delete that data on the database */ foreach ($saved_category as $old_category) { if (!in_array($old_category, $category_stack)) { $table_categorytopoi->deleteCategoryToPoi($old_category, $culture_id); } } /* We do it the same way for processing the area data * First, we obtain the data from the database and then convert it * to a non assoc. array */ $areatopoi_list = $table_areatopoi->getPoiAreaId($culture_id); $saved_area = array(); foreach ($areatopoi_list as $temp_area) { array_push($saved_area, $temp_area['area_id']); } /* Obtain the list of the new area data posted from the form */ $area_count = $this->_getParam('MaxArea'); $area_stack = array(); for ($i = 0; $i <= $area_count; $i++) { if (!empty($_POST['areaValue' . $i])) { array_push($area_stack, $_POST['areaValue' . $i]); } } /* Compare the new area list with the old area list * if its not in the old area list then insert to the database */ foreach ($area_stack as $new_area) { if (!in_array($new_area, $saved_area)) { $area_poi = array('area_id' => $new_area, 'poi_id' => $culture_id); $table_areatopoi->insertAreaToPoi($area_poi); } } /* Now we do the complement action * compare the old list with the new list, * delete if not found on the new list */ foreach ($saved_area as $old_area) { if (!in_array($old_area, $area_stack)) { $table_areatopoi->deleteAreaToPoi($old_area, $culture_id); } } /* related poi data processing */ $relpoi_stack = array(); $relCtr = $_POST['relPoi_counter']; for ($i = 0; $i <= $relCtr; $i++) { if (!empty($_POST['relpoi' . $i])) { array_push($relpoi_stack, $_POST['relpoi' . $i]); } } $saved_relpoi = $table_relatedpoi->getAllRelatedByPoiIdLangId($culture_id, $language_id); $old_relpoi = array(); if (sizeof($saved_relpoi) > 0) { foreach ($saved_relpoi as $value) { array_push($old_relpoi, $value['related_poi']); } } foreach ($relpoi_stack as $value) { if (!in_array($value, $old_relpoi)) { $data = array('poi_id' => $culture_id, 'related_poi' => $value); $table_relatedpoi->insertRelatedPoi($data); } } foreach ($old_relpoi as $value) { if (!in_array($value, $relpoi_stack)) { $table_relatedpoi->deleteSpecificRelatedPoi($culture_id, $value); } } ////$this->_helper->layout()->disableLayout(); ////$this->_helper->viewRenderer->setNoRender(true); /* update related article */ // this part add related if ($_POST['counterRelated'] > 0) { $counter = $_POST['counterRelated']; for ($i = 1; $i <= $counter; $i++) { //cek existing data ke database // if jika data link dan label yang dikirim dari viwer // blm ada di database, maka akan di simpan if (isset($_POST['label' . $i])) { $cek = $table_related_article_poi->cek_existing($_POST['label' . $i], $_POST['link' . $i]); if (!$cek or $cek == false) { $data = array('poi_id' => $culture_id, 'label' => $_POST['label' . $i], 'link' => $_POST['link' . $i], 'language_id' => $language_id); $table_related_article_poi->insertRelated($data); } } } } $this->handleInsertVideoLink($culture_id); $upload_dir = UPLOAD_FOLDER . 'documents/'; $upload_image_dir = UPLOAD_FOLDER . 'culture/'; $upload = new Zend_File_Transfer_Adapter_Http(); $files = $upload->getFileInfo(); $i = 0; $j = 0; echo "<pre>" . print_r($files, true) . "</pre>"; foreach ($files as $file => $info) { $info['destination'] = $upload_image_dir; if (strstr($file, 'files')) { $file = array('poi_id' => $culture_id, 'title' => $_POST['titles'][$i], 'name' => $info['name'], 'size' => $info['size']); $table_file->insert($file); $upload->setDestination($upload_dir); $i++; } else { if (strstr($file, 'images')) { $image = array('poi_id' => $culture_id, 'source' => $info['name'], 'name' => $_POST['imageTitles'][$j]); $table_gallery->insert($image); $upload->setDestination($upload_image_dir); $j++; } } $upload->receive($info['name']); } if (isset($_POST['existingFiles'])) { $existingFiles = $_POST['existingFiles']; foreach ($existingFiles as $id => $file) { $data = array('title' => $file['title']); $table_file->update($data, "id = {$id}"); } } if (isset($_POST['existingImages'])) { $existingImages = $_POST['existingImages']; foreach ($existingImages as $id => $image) { $data = array('name' => $image['name']); $table_gallery->update($data, "gallery_id = {$id}"); } } // part untuk menghapus data dari database // bagian ini akan dijalankan apabila ada triger hapus // delete dari viewer if ($_POST['counterDel'] > 0) { $counterDel = $_POST['counterDel']; for ($i = 1; $i <= $counterDel; $i++) { //cek existing label and link in database // if found, data will be removed if (isset($_POST['labeldel' . $i])) { $cek = $table_related_article_poi->cek_existing_forDel($_POST['labeldel' . $i], $_POST['linkdel' . $i]); } } } //Send a success message via flashmessenger $this->loggingaction('destination', 'edit', $culture_id, $language_id); $this->_flash->addMessage('Sunting Kebudayaan Berhasil!'); //redirect to the destination list page $this->_redirect($this->view->rootUrl('/admin/culture/')); } } /* load data from the database preparing for view process */ if (!$this->_userInfo->canApprove) { $form->submit->setLabel('Sunting Untuk Pratinjau'); $form->draft->setLabel('Jadikan Sebagai Draft'); } else { $form->submit->setLabel('Sunting'); } if ($language_id == 1) { $culture = $table_destination->getAllByIdLang($culture_id, $language_id, false); $parent_category = $table_category->getparentCategoryId($culture['main_category']); $parent_area = $table_areatopoi->getPoiAreaId($culture_id); $related_poi = $table_relatedpoi->getAllRelatedByPoiIdLangId($culture_id, $language_id); } else { $indo = $table_destination_description->checkForIndo($culture_id); if ($indo) { $culture = $table_destination->getAllByIdLang($culture_id, $language_id); } } $checkSpecial = $table_destination->checkDestSpecialById($culture_id); $this->view->destSpecial = $checkSpecial; // $tesheader = $table_destination_description->getheaderimagebyid2($culture_id, $language_id); if ($culture != null) { $form->name->setValue($this->view->HtmlDecode($culture['name'])); $form->description->setValue($this->view->HtmlDecode($culture['description'])); $form->Poi_x->setValue($culture['pointX']); $form->Poi_y->setValue($culture['pointY']); $form->featured->setChecked($culture['featured']); $this->view->header_image = $table_destination->find($culture_id)->current()->image; } /* check if this is a special destination, if it is, then checkbox value to true */ // if ($table_destination->checkSpecialDestination($poi_id)) { // $form->SpecialDestination->setChecked(true); // $this->view->state_special = TRUE; // } else { // $form->SpecialDestination->setChecked(false); // $this->view->state_special = FALSE; // } /* send data image filename to the view */ // /* set another value to the form element */ $area_amount = $table_areatopoi->countAreaByPoiId($culture_id); $category_amount = $table_categorytopoi->countCategoryByPoiId($culture_id); $main_category = $table_destination->getMainCategoryById($culture_id); $form->Category_counter->setValue($category_amount); $form->Count_category->setValue($category_amount); $form->Main_category->setValue($main_category['main_category']); $form->Area_counter->setValue($area_amount); $form->Count_area->setValue($area_amount); /* send form to view class */ $this->view->userCanApprove = $this->_userInfo->canApprove; $this->view->poi_id = $culture_id; $this->view->form = $form; $this->view->language_id = $language_id; }