public function updateAction() { $id = $this->_getParam('id'); $this->_form->image->setRequired(false); $this->_form->draft->setLabel('Save as draft'); $this->_form->submit->setLabel('Save and publish'); if (!$this->_userInfo->canApprove) { $this->_form->submit->setLabel('Save and submit for review'); } if (null != $id) { $article = $this->_article->fetchWithDescription($id, self::LANGUAGE_ID); if (null != $article) { $this->_form->populate($article->toArray()); } else { $this->_helper->redirector('index'); } } else { $this->_helper->redirector('index'); } if ($this->getRequest()->isPost()) { $post = $this->getRequest()->getPost(); $data = $post['article']; if ($this->_form->isValid($data)) { $status = self::STATUS_ARCHIVED; if (isset($data['draft'])) { $status = self::STATUS_DRAFT; } else { if (isset($data['submit'])) { if ($this->_userInfo->canApprove) { $status = self::STATUS_PUBLISHED; } else { $status = self::STATUS_PENDING; } } } $data = array('name' => $this->_form->getValue('name'), 'updated_by' => $this->_userInfo->id, 'updated_at' => Date('Y-m-d H:i:s'), 'status' => $status); if ($this->_form->image->isUploaded()) { if ($this->_form->image->receive()) { $data['image'] = $this->_form->getValue('image'); } } $this->_article->update($data, array('id = ?' => $id)); $data = array('description' => $this->_form->getValue('description')); $this->_description->update($data, array('article_id = ?' => $id, 'language_id = ?' => self::LANGUAGE_ID)); $this->_flashMessenger->addMessage('Article updated successfully.'); $this->_helper->redirector('index'); } } if (null != $article->image) { if (file_exists(UPLOAD_FOLDER . 'article/' . $article->image)) { $this->view->image = 'upload/article/' . $article->image; } } $this->view->form = $this->_form; }
/** * IS: Parameter id terdeklarasi * FS: Mengirimkan ke viewer: form, rel_poi, poi_id * Desc: Mengatur aksi yang dilakukan untuk halaman edit */ public function editAction() { $langId = $this->_getParam('lang'); //print_r($langId); $form = new Admin_Form_ArticleForm(array('languageId' => 1)); $form->draft->setLabel('Draft'); if ($this->_userInfo->canApprove) { $form->submit->setLabel('Update'); } else { $form->submit->setLabel('Update for review'); } $table_article = new Model_DbTable_Article(); $table_article_description = new Model_DbTable_ArticleDescription(); $article_id = $this->_getParam('id'); $table_related_article_attraction = new Model_DbTable_RelatedArticleAttraction(); /* set form element value */ if ($this->getRequest()->isPost()) { if ($form->isValid($_POST)) { $title = preg_replace("/'/", "'", $_POST['ArticleTitle']); $content = preg_replace("/'/", "'", $_POST['ArticleContent']); if ($langId != 1) { $indo = $table_article_description->checkForIndo($article_id); if ($indo == null) { $data = array('article_id' => $article_id, 'language_id' => $langId, 'title' => $title, 'content' => $content); $table_article_description->insertArticleDescription($data); } else { $data = array('article_id' => $article_id, 'language_id' => 2, 'title' => $title, 'content' => $content); $table_article_description->updateArticleDescription($data, $article_id, $langId); } } else { if ($_POST['ArticleMainImage'] == '') { $this->_flash->addMessage('3\\Warning: Data is saved without image!'); } else { $main_image = preg_replace("/'/", "'", $_POST['ArticleMainImage']); } $status = Model_DbTable_Article::DRAFT; if ($this->getRequest()->getPost('action') == 'Update' || $this->getRequest()->getPost('action') == 'Update for review') { if ($this->_userInfo->canApprove) { $status = Model_DbTable_Article::PUBLISH; } else { $status = Model_DbTable_Article::PENDING; } } $data = array('status' => $status, 'main_image' => $main_image, 'sort_order' => $_POST['articleSortOrder'], 'category' => $_POST['category'], 'updated_by' => $this->_userInfo->id, 'updated_at' => date('Y-m-d H:i:s')); $table_article->updateArticle($data, $article_id); $data = array('article_id' => $article_id, 'language_id' => 1, 'title' => $title, 'content' => $content); $table_article_description->updateArticleDescription($data, $article_id, $langId); } //$this->_helper->layout()->disableLayout(); //$this->_helper->viewRenderer->setNoRender(true); /* update related article */ //param // this part add related if ($_POST['counterRelated'] > 0) { $counter = $_POST['counterRelated']; for ($i = 1; $i <= $counter; $i++) { //echo $_POST['link'.$i]; //cek existing label and link in database // if $cek having value = false, then data will be saved if (isset($_POST['label' . $i])) { $cek = $table_related_article_attraction->cek_existing($_POST['label' . $i], $_POST['link' . $i]); if (!$cek or $cek == false) { $data = array('article_id' => $article_id, 'label' => $_POST['label' . $i], 'link' => $_POST['link' . $i], 'language_id' => $language_id); $table_related_article_attraction->insertRelated($data); } } } } //here part delete related, (if there are request) 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_attraction->cek_existing_forDel($_POST['labeldel' . $i], $_POST['linkdel' . $i]); } } } $this->loggingaction('attraction', 'edit', $article_id); $this->_flash->addMessage('1\\Article Update Success!'); $this->_redirect($this->view->rootUrl('/admin/article/')); } } $new_translate = false; if ($langId != 1) { $indo = $table_article_description->checkForIndo($article_id); if ($indo) { $data = $table_article->getAllWithDescByLanguageId($article_id, $langId); $form->article_poi_id->setValue($data['poi_id']); $form->article_status->setValue($data['status']); $form->articleSortOrder->setValue($data['sort_order']); $form->article_main_image->setValue($data['main_image']); $form->article_title->setValue(html_entity_decode($data['title'])); $form->article_content->setValue(html_entity_decode($data['content'])); $form->category_select->setValue($data['category']); $this->view->rel_poi = $data['poi_id']; $this->view->poi_id = $data['poi_id']; } } else { $data = $table_article->getAllWithDescByLanguageId($article_id, $langId); $form->article_poi_id->setValue($data['poi_id']); $form->article_status->setValue($data['status']); $form->articleSortOrder->setValue($data['sort_order']); $form->article_main_image->setValue($data['main_image']); $form->article_title->setValue(html_entity_decode($data['title'])); $form->article_content->setValue($data['content']); $form->category_select->setValue($data['category']); $this->view->rel_poi = $data['poi_id']; $this->view->poi_id = $data['poi_id']; } //get realated article data // @param = article_id $ralated_article = $table_related_article_attraction->getByArticleId($article_id, $langId); $this->view->edit = 1; $this->view->ralated_article = $ralated_article; $this->view->article_id = $article_id; $this->view->languageID = 2; $this->view->form = $form; $this->view->langid_id = $langId; }
public function editArticleAction() { $articleID = $this->_getParam('articleID', 0); $this->view->articleID = $articleID; $form = new Admin_Form_ArticleForm(); $article = $this->_articles->getArticleByID($articleID); if ($this->_request->isPost()) { $formData = $this->_request->getPost(); if ($form->isValid($formData)) { // copy file if ($form->Image->isUploaded()) { $form->Image->receive(); $fileName = $form->Image->getFileName(); $path = "img/articles/" . $articleID . ".jpg"; Admin_View_Helper_ImageControls::resizeImage($fileName, $path, 300, 200); unlink($form->Image->getFileName()); $formData['ImageUpdateTime'] = Site_View_Helper_Date::formatDate(); $article->ImageUpdateTime = Site_View_Helper_Date::formatDate(); } // update $this->_articles->updateArticle($formData, $articleID); $this->_redirect('/enlighten/panel/articles'); } else { $form->populate($formData); } } else { $data = $article->toArray(); $form->populate($data); } $this->view->article = $article; $this->view->form = $form; }