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; }