public function actionSave()
 {
     $index = new CRatingIndex();
     $index->setAttributes(CRequest::getArray(CRatingIndex::getClassName()));
     if ($index->validate()) {
         if (array_key_exists(CRatingValueForm::getClassName(), $_POST)) {
             $values = $_POST[CRatingValueForm::getClassName()];
             foreach ($values as $key => $value) {
                 if (strpos($key, "unsaved_") !== false) {
                     // здесь несохраненное значение из словаря
                     $key = substr($key, 8);
                     $itemValue = new CRatingIndexValue();
                     $itemValue->index_id = $index->id;
                     $itemValue->fromTaxonomy = 1;
                     $itemValue->title = $key;
                     $itemValue->value = $value['value'];
                     $itemValue->evaluate_method = $value['evaluate_method'];
                     $itemValue->evaluate_code = $value['evaluate_code'];
                     $itemValue->save();
                 } elseif (is_numeric($key)) {
                     // это уже ранее сохраненное значение
                     $itemValue = CRatingManager::getRatingIndexValue($key);
                     if (is_null($itemValue)) {
                         $itemValue = new CRatingIndexValue();
                     }
                     $itemValue->value = $value['value'];
                     if (array_key_exists("edit_title", $value)) {
                         if ($value['edit_title'] == "1") {
                             if ($value['title'] !== "") {
                                 $itemValue->title = $value['title'];
                             }
                         }
                     }
                     $itemValue->evaluate_method = $value['evaluate_method'];
                     $itemValue->evaluate_code = $value['evaluate_code'];
                     $itemValue->save();
                 } elseif (strpos($key, "new_") !== false) {
                     // это добавленное вручную значение
                     $itemValue = new CRatingIndexValue();
                     $itemValue->index_id = $index->id;
                     $itemValue->fromTaxonomy = 0;
                     $itemValue->title = $value['title'];
                     $itemValue->value = $value['value'];
                     $itemValue->evaluate_method = $value['evaluate_method'];
                     $itemValue->evaluate_code = $value['evaluate_code'];
                     $itemValue->save();
                 } else {
                     // это какая-то ошибка
                 }
             }
         }
         $index->save();
         if ($this->continueEdit()) {
             $this->redirect("?action=edit&id=" . $index->getId());
         } else {
             $this->redirect("?action=index");
         }
     }
     $this->setData("form", new CRatingValueForm());
     $this->setData("index", $index);
     $this->renderView("_rating/index/add.tpl");
 }