コード例 #1
0
 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, '*');
 }
コード例 #2
0
 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', '');
 }