public function actionSave()
 {
     $field = new CCoreModelField();
     $field->setAttributes(CRequest::getArray($field::getClassName()));
     if ($field->validate()) {
         $field->save();
         if ($this->continueEdit()) {
             $this->redirect("fields.php?action=edit&id=" . $field->getId());
         } else {
             $this->redirect("models.php?action=edit&id=" . $field->model_id);
         }
         return true;
     }
     $this->setData("field", $field);
     $this->renderView("_core/field/edit.tpl");
 }
 public function save()
 {
     $model = CCoreObjectsManager::getCoreModel($this->id);
     foreach ($this->getItems()->getItems() as $item) {
         $field = new CCoreModelField();
         $field->model_id = $model->getId();
         $field->field_name = $item["name"];
         $field->save();
         if ($item["translation"] !== "") {
             $t = new CCoreModelFieldTranslation();
             $t->field_id = $field->getId();
             $t->value = $item["translation"];
             $t->save();
         }
         if ($item["validator"] !== "0") {
             $v = new CCoreModelFieldValidator();
             $v->field_id = $field->getId();
             $v->validator_id = $item["validator"];
             $v->save();
         }
     }
 }
 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();
                 }
             }
         }
     }
 }