예제 #1
0
파일: Edit.php 프로젝트: sinfocol/gwf3
 public function onEdit(GWF_Category $cat)
 {
     $keyOld = $cat->getKey();
     $form = $this->getForm($cat);
     if (false !== ($error = $form->validate($this->module))) {
         return $error;
     }
     //		if ('' !== ($error = $form->validateVars(array('key', 'langid')))) {
     //			return $error;
     //		}
     // new translation
     $back = '';
     if (0 !== ($langid = (int) Common::getPost('langid', 0))) {
         $trans = Common::getPost('newtrans');
         if (false === $cat->saveTranslation($langid, $trans)) {
             return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
         }
         $back .= $this->module->message('msg_trans_added', array(GWF_Language::getByID($langid)->display('lang_name'), GWF_HTML::display($keyOld), GWF_HTML::display($trans)));
     }
     // change key!
     $keyNew = $form->getVar('key');
     if ($keyOld !== $keyNew) {
         $cat->saveVar('key', $keyNew);
         $back .= $this->module->message('msg_new_key', array(GWF_HTML::display($keyOld), GWF_HTML::display($keyNew)));
     }
     # Change tree
     $parent = $form->getVar('parent', '0');
     $oldpar = $cat->getParentID();
     if ($oldpar !== $parent) {
         if (!$cat->saveVar('cat_tree_pid', $parent)) {
             $back .= GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
         } else {
             $cat->rebuildFullTree();
             $back .= $this->module->message('msg_new_parent');
         }
     }
     if (!isset($_POST['trans']) || !is_array($_POST['trans'])) {
         $_POST['trans'] = array();
     }
     # update translation
     foreach ($_POST['trans'] as $langid => $textNew) {
         $textOld = $cat->getTranslation($langid);
         if ($textNew !== $textOld) {
             if (false === $cat->saveTranslation($langid, $textNew)) {
                 return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
             }
             $langname = GWF_Language::getByID($langid)->display('lang_name');
             $back .= $this->module->message('msg_trans_changed', array($langname, GWF_HTML::display($textNew)));
         }
     }
     return $back;
 }