public static function AddSubjectRecursive($id, $user_id) { //Ha ez a tárgy már teljesítve van, nem csinálunk semmit $Check = self::model()->findByAttributes(array('user_id' => $user_id, 'subject_id' => $id)); if ($Check != null) { return true; } //Elmentjük ezt a tantárgyat teljesítettként $Subject = Subject::model()->findByPk($id); $CompletedSubject = new CompletedSubjects(); $CompletedSubject->user_id = $user_id; $CompletedSubject->subject_id = $Subject->subject_id; $CompletedSubject->save(); //Majd a tantárgy összes előfeltételét foreach ($Subject->dependencies as $CurrentDependency) { if (!self::AddSubjectRecursive($CurrentDependency->dependent_subject_id, $user_id)) { return false; } } return true; }
/** * Az éppen bejelentkezett felhasználó teljesített tárgyai közül törli a megadott tantárgyat. * @param int $id A tantárgy azonosítója */ public function actionRemoveSubject($id) { if (!Yii::app()->user->getId()) { throw new CHttpException(403, "Ennek a funkciónak a használatához be kell jelentkeznie"); } if (CompletedSubjects::RemoveSubjectRecursive($id, Yii::app()->user->getId())) { $model = User::model()->with('CompletedCredits')->findByPk(Yii::app()->user->getId()); Yii::app()->user->setState('CompletedCredits', $model->CompletedCredits); print "ok"; } else { print "fail"; } }