public function actionAdd()
 {
     /**
      * получим дисциплину, по которой делаем рабочую программу
      * @var CCorriculumDiscipline $discipline
      * @var CCorriculum $corriculum
      */
     $discipline = CCorriculumsManager::getDiscipline(CRequest::getInt("id"));
     $corriculum = $discipline->cycle->corriculum;
     //
     $plan = new CWorkPlan();
     $plan->title = "Наименование не указано";
     $plan->title_display = $plan->title;
     // дисциплина из учебного плана
     $plan->corriculum_discipline_id = $discipline->getId();
     // дисциплина из справочника
     if (!is_null($discipline->discipline)) {
         $plan->discipline_id = $discipline->discipline->getId();
     }
     // копируем информацию из учебного плана
     if (!is_null($corriculum)) {
         $plan->direction_id = $corriculum->speciality_direction_id;
         $plan->qualification_id = $corriculum->qualification_id;
         $plan->education_form_id = $corriculum->form_id;
     }
     $plan->date_of_formation = date("Y-m-d");
     $plan->year = date("Y");
     $plan->authors = new CArrayList();
     $plan->authors->add(CSession::getCurrentPerson()->getId(), CSession::getCurrentPerson()->getId());
     // место дисциплины в структуре плана
     if (!is_null($discipline->cycle)) {
         $plan->position = "Дисциплина относится к базовой части учебного цикла " . $discipline->cycle->title;
     }
     $plan->save();
     /**
      * Скопируем компетенции из плана
      * @var CCorriculumDisciplineCompetention $competention
      */
     foreach ($discipline->competentions->getItems() as $competention) {
         $planCompetention = new CWorkPlanCompetention();
         $planCompetention->plan_id = $plan->getId();
         $planCompetention->allow_delete = 0;
         $planCompetention->competention_id = $competention->competention_id;
         if ($competention->knowledge_id != 0) {
             $planCompetention->knowledges->add($competention->knowledge_id, $competention->knowledge_id);
         }
         if ($competention->skill_id != 0) {
             $planCompetention->skills->add($competention->skill_id, $competention->skill_id);
         }
         if ($competention->experience_id != 0) {
             $planCompetention->experiences->add($competention->experience_id, $competention->experience_id);
         }
         $planCompetention->save();
     }
     $category = new CWorkPlanContentCategory();
     $category->plan_id = $plan->getId();
     $category->order = 1;
     $category->title = "Пустая категория";
     $category->save();
     $this->redirect("?action=edit&id=" . $plan->getId());
 }
 public function actionSave()
 {
     $object = new CWorkPlanContentCategory();
     $object->setAttributes(CRequest::getArray($object::getClassName()));
     if ($object->validate()) {
         $object->save();
         if ($this->continueEdit()) {
             $this->redirect("workplancontentcategories.php?action=edit&id=" . $object->getId());
         } else {
             $this->redirect("workplans.php?action=edit&id=" . $object->plan_id);
         }
         return true;
     }
     $this->setData("object", $object);
     $this->renderView("_corriculum/_workplan/contentCategories/edit.tpl");
 }