コード例 #1
0
 public function fast_subscribe_dialog_action()
 {
     require_once _lms_ . '/lib/lib.course.php';
     $man_course = new Man_Course();
     $acl_man = Docebo::user()->getAclManager();
     $id_user = Get::req('id_user', DOTY_INT, 0);
     $id_course = Get::Req('id_course', DOTY_INT, 0);
     $level = Get::Req('level', DOTY_INT, 3);
     //default: student level
     $userid = Get::req('userid', DOTY_STRING, "");
     $course = Get::req('course', DOTY_STRING, "");
     if ($course != "") {
         $course = trim(preg_replace('|^\\[([^\\]]*)\\][\\s]*|i', '', $course));
     }
     //eliminates che code from the course name
     $id_user = $acl_man->getUserST($userid);
     $id_course = $man_course->getCourseIdByName($course);
     //check if input is correct
     if ($id_user <= 0 || $id_course <= 0) {
         $output['success'] = false;
         $output['message'] = UiFeedback::perror(Lang::t('_INVALID_DATA', 'standard'));
         //'Invalid input. COURSE: '.$id_course.'; USER: '******'edition', DOTY_INT, 0);
     $classroom = Get::Req('classroom', DOTY_INT, 0);
     $cinfo = $man_course->getCourseInfo($id_course);
     if ($cinfo['course_edition'] > 0) {
         $classroom = 0;
     } else {
         $edition = 0;
     }
     if ($cinfo['course_type'] == 'classroom') {
         $edition = 0;
     }
     if ($cinfo['course_type'] == 'classroom' && $classroom <= 0) {
         $output['success'] = false;
         $output['message'] = UIFeedback::pnotice(Lang::t('_CLASSROOM', 'standard') . ': ' . Lang::t('_EMPTY_SELECTION', 'standard'));
         echo $this->json->encode($output);
         return;
     }
     $_model = new SubscriptionAlms($id_course, $edition > 0 ? $edition : false, $classroom > 0 ? $classroom : false);
     //check if user is already subscribed
     if ($_model->isUserSubscribed($id_user)) {
         $output['success'] = false;
         $output['message'] = UIFeedback::pnotice(Lang::t('_USER_ALREADY_SUBSCRIBED', 'course') . ': ' . $userid);
         echo $this->json->encode($output);
         return;
     }
     //subscribe user
     $res = $_model->subscribeUser($id_user, $level, false);
     if ($res) {
         $docebo_course = new DoceboCourse($id_course);
         $level_idst =& $docebo_course->getCourseLevel($id_course);
         if (count($level_idst) == 0 || $level_idst[1] == '') {
             $level_idst =& $docebo_course->createCourseLevel($id_course);
         }
         //$this->acl_man->addToGroup($level_idst[$level], $id_user);
         $this->_addToCourseGroup($level_idst[$level], $id_user);
     }
     $output['success'] = $res ? true : false;
     if (!$res) {
         $output['message'] = UIFeedback::perror(Lang::t('_ERROR_WHILE_SAVING', 'standard'));
     } else {
         $output['message'] = UIFeedback::pinfo(Lang::t('_GOTO_COURSE_T', 'course'));
     }
     echo $this->json->encode($output);
 }
コード例 #2
0
 public function findcertificateTask()
 {
     $json = new Services_JSON();
     $c_course = Get::req('certificate_course', DOTY_MIXED, '');
     $id_course = Get::req('id_course', DOTY_INT, 0);
     $c_userid = Get::req('certificate_userid', DOTY_MIXED, '');
     $id_user = Get::req('id_user', DOTY_INT, 0);
     require_once _lms_ . '/lib/lib.course.php';
     $man_course = new Man_Course();
     $acl_man = Docebo::user()->getAclManager();
     if ($id_user <= 0) {
         $id_user = $acl_man->getUserST($c_userid);
     }
     if ($id_course <= 0) {
         ////eliminates che code from the course name
         if ($c_course != "") {
             $c_course = trim(preg_replace('|^\\[([^\\]]*)\\][\\s]*|i', '', $c_course));
         }
         $id_course = $man_course->getCourseIdByName($c_course);
     }
     //check if input is correct
     if ($id_user <= 0 || $id_course <= 0) {
         $output['success'] = false;
         $output['message'] = 'Invalid input.';
         echo $this->json->encode($output);
         return;
     }
     require_once _lms_ . '/lib/lib.certificate.php';
     $cert = new Certificate();
     $released = $cert->certificateStatus($id_user, $id_course);
     $print = array();
     foreach ($released as $id_cert => $name) {
         $print[] = '<a class="ico-wt-sprite subs_pdf" href="index.php?modname=certificate&certificate_id=' . $id_cert . '&course_id=' . $id_course . '&user_id=' . $id_user . '&op=send_certificate&of_platform=lms">' . '<span>' . $name . '</span>' . '</a>';
     }
     $query = "SELECT cc.id_certificate, ce.name, available_for_status, cu.status " . " FROM (" . $GLOBALS['prefix_lms'] . "_certificate AS ce " . " JOIN " . $GLOBALS['prefix_lms'] . "_certificate_course AS cc " . "\t\tON (ce.id_certificate = cc.id_certificate) )" . " JOIN " . $GLOBALS['prefix_lms'] . "_courseuser AS cu " . "\t\tON (cu.idCourse = cc.id_course)" . " WHERE cu.idCourse = " . (int) $id_course . " " . "\tAND idUser = "******" ";
     $res = sql_query($query);
     $relesable = array();
     while (list($id_certificate, $name, $available_for_status, $user_status) = sql_fetch_row($res)) {
         if ($cert->canRelease($available_for_status, $user_status) && !isset($released[$id_certificate])) {
             $relesable[] = '<a class="ico-wt-sprite subs_pdf" href="index.php?modname=certificate&certificate_id=' . $id_certificate . '&course_id=' . $id_course . '&user_id=' . $id_user . '&op=print_certificate&of_platform=lms">' . '<span>' . $name . '</span>' . '</a>';
         }
     }
     $output['success'] = true;
     $output['message'] = '';
     $output['message'] .= '<b>' . Lang::t('_CERTIFICATE_VIEW_CAPTION', 'certificate') . ':</b> ' . (count($print) > 0 ? implode(', ', $print) : Lang::t('_NONE', 'standard')) . '<br /><br />';
     $output['message'] .= '<b>' . Lang::t('_NEW_CERTIFICATE', 'certificate') . ':</b> ' . (count($relesable) > 0 ? implode(', ', $relesable) : Lang::t('_NONE', 'standard')) . '<br /><br />';
     echo $this->json->encode($output);
 }