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