/**
  * @return CArrayList
  */
 public static function getAllExportableModels()
 {
     $result = new CArrayList();
     foreach (CActiveRecordProvider::getAllFromTable(TABLE_CORE_MODELS)->getItems() as $ar) {
         $model = new CCoreModel($ar);
         if ($model->isExportable()) {
             $result->add($model->getId(), $model);
         }
     }
     return $result;
 }
 public function actionImport()
 {
     /**
      * Берем папку моделей и ищем все подпапки
      */
     $models = array();
     $modelsDir = opendir(CORE_CWD . CORE_DS . "_core" . CORE_DS . "_models");
     while (false !== ($dir = readdir($modelsDir))) {
         if ($dir != "." && $dir != "..") {
             if (is_dir(CORE_CWD . CORE_DS . '_core' . CORE_DS . '_models' . CORE_DS . $dir)) {
                 /**
                  * Ищем файлы
                  */
                 $modelDir = opendir(CORE_CWD . CORE_DS . '_core' . CORE_DS . '_models' . CORE_DS . $dir);
                 while (($file = readdir($modelDir)) !== false) {
                     if ($file != "." && $file != "..") {
                         $models[] = $file;
                     }
                 }
             }
         }
     }
     /**
      * Последовательно создаем классы и смотрим, являются ли они наследниками
      * CModel или CActiveModel
      */
     foreach ($models as $model) {
         $model = substr($model, 0, strpos($model, "."));
         $obj = new $model();
         if (is_a($obj, "CModel")) {
             /**
              * Это модельный класс, отсюда берем названия полей
              */
             $persistedObj = CCoreObjectsManager::getCoreModel(get_class($obj));
             if (is_null($persistedObj)) {
                 /**
                  * Создаем сам класс
                  */
                 $persistedObj = new CCoreModel();
                 $persistedObj->title = get_class($obj);
                 $persistedObj->class_name = get_class($obj);
                 $persistedObj->save();
                 $fields = $obj->attributeLabels();
                 foreach ($fields as $key => $value) {
                     $field = new CCoreModelField();
                     $field->model_id = $persistedObj->getId();
                     $field->field_name = $key;
                     $field->save();
                     $t = new CCoreModelFieldTranslation();
                     $t->field_id = $field->getId();
                     $t->language_id = CSettingsManager::getSettingValue("system_language_default");
                     $t->value = $value;
                     $t->save();
                 }
             }
         }
     }
 }