Exemplo n.º 1
0
 public static function langRestore($id)
 {
     $deleteLang = self::model()->findByPk($id);
     if ($deleteLang == NULL) {
         Yii::app()->user->setFlash('error', 'Удаленный язык не найден');
         return FALSE;
     }
     if ((bool) $deleteLang->is_restored) {
         Yii::app()->user->setFlash('error', 'Удаленный язык уже восстановлен');
         return FALSE;
     }
     $langExist = Langs::model()->findByPk($deleteLang->lang__id);
     if ($langExist != NULL) {
         Yii::app()->user->setFlash('error', 'Удаленный язык уже восстановлен');
         return FALSE;
     }
     $langExist = Langs::model()->find('alias=:alias', array(':alias' => $deleteLang->alias));
     if ($langExist != NULL) {
         Yii::app()->user->setFlash('error', 'Язык с псевдонимом удаленного языка уже создан');
         return FALSE;
     }
     $restoreLang = new Langs();
     $restoreLang->id = $deleteLang->lang__id;
     $restoreLang->alias = $deleteLang->alias;
     $restoreLang->is_default = $deleteLang->is_default;
     $restoreLang->is_enabled = $deleteLang->is_enabled;
     $restoreLang->attachment__id_active = $deleteLang->attachment__id_active;
     $restoreLang->attachment__id_nonactive = $deleteLang->attachment__id_nonactive;
     $restoreLangLang = new LangsLang();
     $restoreLangLang->lang = Yii::app()->language;
     $restoreLangLang->langs__id = $deleteLang->lang__id;
     $restoreLangLang->title = $deleteLang->title;
     $deleteLang->is_restored = (int) TRUE;
     if (!$restoreLang->save()) {
         Yii::trace('RESTORING LANG FATAL ERROR. CODE#1: ' . var_export($restoreLang->getErrors(), TRUE));
         throw new CException('Ошибка восстановления языка', E_USER_ERROR);
     }
     if (!$restoreLangLang->save()) {
         Yii::trace('RESTORING LANG FATAL ERROR. CODE#2: ' . var_export($restoreLangLang->getErrors(), TRUE));
         throw new CException('Ошибка восстановления языка', E_USER_ERROR);
     }
     if (!$deleteLang->save()) {
         Yii::trace('RESTORING LANG FATAL ERROR. CODE#2: ' . var_export($deleteLang->getErrors(), TRUE));
         throw new CException('Ошибка восстановления языка', E_USER_ERROR);
     }
     Yii::app()->user->setFlash('success', 'Язык успешно восстановлен');
     return TRUE;
 }