public function editAction() { /** * Check permission */ if (false == $this->checkPermission('edit_scontent', null, '?')) { $this->_forwardToNoPermissionPage(); return; } $id = $this->_getParam('id', false); $lid = $this->_getParam('lid', false); if (false == $id) { $this->_redirect('scontent/admin/manager'); } /** * Check permission */ if (false == $lid && false == $this->checkPermission('edit_scontent', null, '*') || false != $lid && false == $this->checkPermission('edit_scontent', null, $lid)) { $this->_forwardToNoPermissionPage(); return; } $data = $this->_getParam('data', false); // echo '<pre>';print_r($data);die; $objScontent = new Models_Scontent(); $objScontentLang = new Models_ScontentLang(); /** * Get all categories */ $objCat = new Models_ScontentCategory(); $allCats = $objCat->getAll(array('sorting ASC'))->toArray(); /** * Get all display languages */ $objLang = new Models_Lang(); $allLangs = $objLang->getAll(array('sorting ASC'))->toArray(); /** * Check permisison for each language */ foreach ($allLangs as $index => $lang) { if (false == $this->checkPermission('edit_scontent', null, $lang['lang_id'])) { /** * Disappaer this language */ unset($allLangs[$index]); } } // echo '<pre>';print_r($allLangs);die; $errors = array(); if (false !== $data) { /** * Insert new content */ $newScontent = array('scontent_category_id' => $data['scontent_category_id'], 'enabled' => $data['enabled'], 'publish_up_date' => $data['publish_up_date'], 'publish_down_date' => $data['publish_down_date'], 'sorting' => $data['sorting']); /** * Change format date */ if (null == $newScontent['publish_up_date']) { unset($newScontent['publish_up_date']); } else { $tmp = explode('/', $newScontent['publish_up_date']); $newScontent['publish_up_date'] = mktime(0, 0, 0, $tmp[0], $tmp[1], $tmp[2]); } if (null == $newScontent['publish_down_date']) { unset($newScontent['publish_down_date']); } else { $tmp = explode('/', $newScontent['publish_down_date']); $newScontent['publish_down_date'] = mktime(0, 0, 0, $tmp[0], $tmp[1], $tmp[2]); } /** * Sorting */ if (null == $newScontent['sorting']) { unset($newScontent['sorting']); } /** * Check URL for all language contents */ $errors = true; $isDefaultLang = true; foreach ($allLangs as $lang) { if (true == $isDefaultLang) { $isDefaultLang = false; if (null == @$data[$lang['lang_id']]['title']) { $errors[] = "You don't enter any content"; } } /** * Check to ensure no same URL exists */ $existUrl = $objScontentLang->getByColumnName(array('lang_id' => $lang['lang_id'], 'category_alias' => @$data[$lang['lang_id']]['category_alias'], 'alias' => @$data[$lang['lang_id']]['alias'], 'scontent_id !=?' => $id)); if (count($existUrl) > 0) { /** * Alias exist */ $errors[] = "URL you enter exist"; } } if (true === $errors) { try { /** * Full permisison? */ if (true == $this->checkPermission('edit_scontent', null, '*')) { $objScontent->update($newScontent, array('scontent_id=?' => $id)); } foreach ($allLangs as $lang) { if (null == @$data[$lang['lang_id']]['title']) { continue; } /** * Check to update or insert */ $existScontentLang = $objScontentLang->getByColumnName(array('scontent_id=?' => $id, 'lang_id=?' => $lang['lang_id'])); $existScontentLang = $existScontentLang->current(); if (false == $existScontentLang) { /** * Insert */ $newScontentLang = array('scontent_id' => $id, 'lang_id' => $lang['lang_id'], 'enabled' => @$data[$lang['lang_id']]['enabled'], 'title' => @$data[$lang['lang_id']]['title'], 'category_alias' => @$data[$lang['lang_id']]['category_alias'], 'alias' => @$data[$lang['lang_id']]['alias'], 'url' => trim(@$data[$lang['lang_id']]['category_alias'] . '/' . @$data[$lang['lang_id']]['alias'], '/'), 'intro_text' => @$data[$lang['lang_id']]['intro_text'], 'full_text' => @$data[$lang['lang_id']]['full_text'], 'param' => @$data[$lang['lang_id']]['param'], 'meta_data' => @$data[$lang['lang_id']]['meta_data']); $objScontentLang->insert($newScontentLang); } else { /** * Update */ $newScontentLang = array('enabled' => @$data[$lang['lang_id']]['enabled'], 'title' => @$data[$lang['lang_id']]['title'], 'category_alias' => @$data[$lang['lang_id']]['category_alias'], 'alias' => @$data[$lang['lang_id']]['alias'], 'url' => trim(@$data[$lang['lang_id']]['category_alias'] . '/' . @$data[$lang['lang_id']]['alias'], '/'), 'intro_text' => @$data[$lang['lang_id']]['intro_text'], 'full_text' => @$data[$lang['lang_id']]['full_text'], 'param' => @$data[$lang['lang_id']]['param'], 'meta_data' => @$data[$lang['lang_id']]['meta_data']); $objScontentLang->update($newScontentLang, array('scontent_id=?' => $id, 'lang_id=?' => $lang['lang_id'])); } } /** * Redirect with message */ $this->session->scontentMessage = array('success' => true, 'message' => Vi_Language::translate("Edit content successfully")); $this->_redirect('scontent/admin/manager'); } catch (Exception $e) { $errors = array('main' => Vi_Language::translate('Can not insert into database now')); } } } else { /** * Get old data */ $data = $objScontent->find($id)->toArray(); $data = current($data); if (false == $data) { $this->session->scontentMessage = array('success' => false, 'message' => Vi_Language::translate("Content doesn't exist.")); $this->_redirect('scontent/admin/manager'); } /** * Change date */ if (0 != $data['publish_up_date']) { $data['publish_up_date'] = date('m/d/Y', $data['publish_up_date']); } else { $data['publish_up_date'] = ''; } if (0 != $data['publish_down_date']) { $data['publish_down_date'] = date('m/d/Y', $data['publish_down_date']); } else { $data['publish_down_date'] = ''; } /** * Get all lang contents */ $allLangContents = $objScontentLang->getByColumnName(array('scontent_id=?' => $id))->toArray(); foreach ($allLangs as $lang) { $data[$lang['lang_id']] = array(); foreach ($allLangContents as $lcontent) { if ($lcontent['lang_id'] == $lang['lang_id']) { $data[$lang['lang_id']] = $lcontent; break; } } } } // echo '<pre>';print_r($data);die; /** * Prepare for template */ $this->view->allCats = $allCats; $this->view->allLangs = $allLangs; $this->view->lid = $lid; $this->view->errors = $errors; $this->view->data = $data; $this->view->headTitle(Vi_Language::translate('Edit Article')); $this->view->menu = array('scontent', ''); $this->view->fullPermisison = $this->checkPermission('edit_scontent', null, '*'); }
public function editSystemMailAction() { /** * Check permission */ if (false == $this->checkPermission('edit_system_mail')) { $this->_forwardToNoPermissionPage(); return; } $id = $this->_getParam('id', false); $lid = $this->_getParam('lid', false); if (false == $id) { $this->_redirect('mail/admin/system-mail-manager'); } $data = $this->_getParam('data', false); // echo '<pre>';print_r($data);die; $objMail = new Models_Mail(); $objMailLang = new Models_MailLang(); /** * Get all display languages */ $objLang = new Models_Lang(); $allLangs = $objLang->getAll(array('sorting ASC'))->toArray(); // echo '<pre>';print_r($allLangs);die; $errors = array(); if (false !== $data) { /** * Update mail */ $newMail = array('enabled' => $data['enabled']); try { $objMail->update($newMail, array('mail_id=?' => $id)); foreach ($allLangs as $lang) { if (null == @$data[$lang['lang_id']]['subject']) { continue; } /** * Check to update or insert */ $existMailLang = $objMailLang->getByColumnName(array('mail_id=?' => $id, 'lang_id=?' => $lang['lang_id'])); $existMailLang = $existMailLang->current(); if (false == $existMailLang) { /** * Insert */ $newMailLang = array('mail_id' => $id, 'lang_id' => $lang['lang_id'], 'enabled' => @$data[$lang['lang_id']]['enabled'], 'subject' => @$data[$lang['lang_id']]['subject'], 'content' => @$data[$lang['lang_id']]['content']); $objMailLang->insert($newMailLang); } else { /** * Update */ $newMailLang = array('enabled' => @$data[$lang['lang_id']]['enabled'], 'subject' => @$data[$lang['lang_id']]['subject'], 'content' => @$data[$lang['lang_id']]['content']); $objMailLang->update($newMailLang, array('mail_id=?' => $id, 'lang_id=?' => $lang['lang_id'])); } } /** * Redirect with message */ $this->session->mailMessage = array('success' => true, 'message' => Vi_Language::translate("Edit mail successfully")); $this->_redirect('mail/admin/system-mail-manager'); } catch (Exception $e) { $errors = array('main' => Vi_Language::translate('Can not insert into database now')); } } else { /** * Get old data */ $data = $objMail->find($id)->toArray(); $data = current($data); if (false == $data) { $this->session->mailMessage = array('success' => false, 'message' => Vi_Language::translate("Mail doesn't exist.")); $this->_redirect('mail/admin/system-mail-manager'); } /** * Change format data */ $data['data'] = str_replace(array("\r\n", "\n", "\r"), '<br/>', $data['data']); /** * Get all lang mails */ $allLangMails = $objMailLang->getByColumnName(array('mail_id=?' => $id))->toArray(); foreach ($allLangs as $lang) { $data[$lang['lang_id']] = array(); foreach ($allLangMails as $lmail) { if ($lmail['lang_id'] == $lang['lang_id']) { $data[$lang['lang_id']] = $lmail; break; } } } } // echo '<pre>';print_r($data);die; /** * Prepare for template */ $this->view->allLangs = $allLangs; $this->view->lid = $lid; $this->view->errors = $errors; $this->view->data = $data; $this->view->headTitle(Vi_Language::translate('Edit Mail System')); $this->view->menu = array('mail', ''); }