Пример #1
0
 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;
 }
Пример #2
0
 /**
  * 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";
     }
 }