public function presenceTask()
 {
     require_once _base_ . '/lib/lib.form.php';
     YuiLib::load();
     $user_date = $this->model->getUserDateForCourse(getLogUserId(), $_SESSION['idCourse']);
     $date_info = $this->model->getDateInfoForPublicPresence($user_date);
     if ($this->id_date == 0) {
         $this->id_date = isset($date_info[0]['id_date']) ? $date_info[0]['id_date'] : 0;
     }
     $this->model->setIdDate($this->id_date);
     if (isset($_POST['save'])) {
         $this->model->savePresence();
     }
     foreach ($date_info as $info_date) {
         $date_for_dropdown[$info_date['id_date']] = $info_date['code'] . ' - ' . $info_date['name'] . ' (' . Format::date($info_date['date_begin'], 'date') . ')';
     }
     if ($this->id_date == 0) {
         $this->render('presence_empty', array());
     } else {
         $params = array();
         $params['model'] = $this->model;
         $params['dropdown'] = $date_for_dropdown;
         $params['tb'] = $this->model->getPresenceTable();
         $params['test_type'] = $this->model->getTestType();
         $params['date_for_dropdown'] = $date_for_dropdown;
         $this->render('presence', $params);
     }
 }
示例#2
0
 public function deleteMessage($id)
 {
     require_once _adm_ . '/lib/lib.message.php';
     $del_query = "UPDATE %adm_message_user SET deleted = '" . _OPERATION_SUCCESSFUL . "' WHERE idUser='******' AND idMessage = '" . (int) $id . "'";
     if (!$this->db->query($del_query)) {
         return false;
     }
     $query = "SELECT idMessage FROM %adm_message_user WHERE idMessage = '" . (int) $id . "'";
     $res = $this->db->query($query);
     if ($res && $this->db->num_rows($res) > 0) {
         $query = "SELECT attach FROM %adm_message WHERE idMessage = '" . (int) $id . "'";
         $res = $this->db->query($query);
         list($attach) = $this->db->fetch_row($res);
         if ($attach != '') {
             if (!$this->deleteAttachment($attach)) {
                 return false;
             }
         }
         if (!$this->db->query("DELETE FROM %adm_message_user WHERE idMessage = '" . (int) $id . "'")) {
             return false;
         }
         if (!$this->db->query("DELETE FROM %adm_message WHERE idMessage = '" . (int) $id . "'")) {
             return false;
         }
     }
     return true;
 }
function lmsLoginOperation()
{
    require_once $GLOBALS['where_lms'] . '/lib/lib.subscribe.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.preassessment.php';
    $pa_man = new AssessmentList();
    $user_course_as_assessment = $pa_man->getUserAssessmentSubsription(Docebo::user()->getArrSt());
    if (is_array($user_course_as_assessment)) {
        $subs_man = new CourseSubscribe_Management();
        $subs_man->multipleUserSubscribe(getLogUserId(), $user_course_as_assessment['course_list'], $user_course_as_assessment['level_number']);
    }
}
示例#4
0
 function insfaqcat()
 {
     checkPerm('view', false, 'storage');
     $back_url = urldecode($_POST['back_url']);
     $query_ins = "\r\n\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_faq_cat\r\n\tSET title = '" . (trim($_POST['title']) == '' ? Lang::t('_NOTITLE', 'faq', 'lms') : $_POST['title']) . "',\r\n\t\tdescription = '" . $_POST['description'] . "',\r\n\t\tauthor = '" . (int) getLogUserId() . "'";
     if (!sql_query($query_ins)) {
         $_SESSION['last_error'] = Lang::t('_OPERATION_FAILURECAT', 'faq', 'lms');
         Util::jump_to($back_url . '&create_result=0');
     }
     list($idFaq) = sql_fetch_row(sql_query("SELECT LAST_INSERT_ID()"));
     Util::jump_to($back_url . '&id_lo=' . $idFaq . '&create_result=1');
 }
示例#5
0
 function inslinkcat()
 {
     checkPerm('view', false, 'storage');
     $lang =& DoceboLanguage::createInstance('link');
     $back_url = urldecode($_POST['back_url']);
     $query_ins = "\r\n\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_link_cat\r\n\tSET title = '" . (trim($_POST['title']) == '' ? $lang->def('_NOTITLE') : $_POST['title']) . "',\r\n\t\tdescription = '" . $_POST['description'] . "',\r\n\t\tauthor = '" . (int) getLogUserId() . "'";
     if (!sql_query($query_ins)) {
         $_SESSION['last_error'] = $lang->def('_OPERATION_FAILURE');
         Util::jump_to('' . $back_url . '&create_result=0');
     }
     list($idLink) = sql_fetch_row(sql_query("SELECT LAST_INSERT_ID()"));
     Util::jump_to('' . $back_url . '&id_lo=' . $idLink . '&create_result=1');
 }
示例#6
0
    function play($object_link, $id_param)
    {
        //-kb-play-// if(!checkPerm('view', true, 'organization') && !checkPerm('view', true, 'storage')) die("You can't access");
        $lang =& DoceboLanguage::createInstance('link');
        $idCategory = $object_link->getId();
        $mode = importVar('mode', false, 'link');
        $back_coded = htmlentities(urlencode($object_link->back_url));
        require_once $GLOBALS['where_lms'] . '/lib/lib.param.php';
        $idReference = getLOParam($id_param, 'idReference');
        // NOTE: Track only if $idReference is present
        if ($idReference !== FALSE) {
            require_once $GLOBALS['where_lms'] . '/class.module/track.link.php';
            list($exist, $idTrack) = Track_Link::getIdTrack($idReference, getLogUserId(), $idCategory, TRUE);
            if ($exist) {
                $ti = new Track_Link($idTrack);
                $ti->setDate(date('Y-m-d H:i:s'));
                $ti->status = 'completed';
                $ti->update();
            } else {
                $ti = new Track_Link(false);
                $ti->createTrack($idReference, $idTrack, getLogUserId(), date('Y-m-d H:i:s'), 'completed', 'link');
            }
        }
        list($title) = sql_fetch_row(sql_query("\r\n\tSELECT title \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_link_cat \r\n\tWHERE idCategory = '" . (int) $idCategory . "'"));
        $link = 'index.php?modname=link&op=play&idCategory=' . $idCategory . '&id_param=' . $id_param . '&back_url=' . $back_coded;
        /*$GLOBALS['page']->add('<div id="top" class="std_block">'
        		.'<div class="colum_container">' */
        cout('<div id="top" class="yui-navset yui-navset-top tab_block">
		<ul class="yui-nav">
			<li class="first' . ($mode != 'keyw' ? ' selected' : '') . '">
				<a href="' . $link . '&amp;mode=list">
					<em>' . Lang::t('_SWITCH_TO_LIST', 'link') . '</em>
				</a>
			</li>
			<li' . ($mode == 'keyw' ? ' class="selected"' : '') . '>
				<a href="' . $link . '&amp;mode=keyw">
					<em>' . Lang::t('_SWITCH_TO_KEYWORD', 'link') . '</em>
				</a>
			</li>
		</ul>
		<div class="yui-content">', 'content');
        cout(getBackUi(Util::str_replace_once('&', '&amp;', $object_link->back_url), $lang->def('_BACK')), 'content');
        $GLOBALS['page']->add('<b>' . $lang->def('_TITLE') . ' : ' . $title . '</b><br /><br />' . $lang->def('_LINKIUNNEWWINDOW') . '<br /><br />', 'content');
        if ($mode == 'keyw') {
            displayAsKey($idCategory, $link . '&amp;mode=keyw');
        } else {
            displayAsList($idCategory);
        }
        $GLOBALS['page']->add('<div class="align_center">' . '<a href="#top"><img src="' . getPathImage() . 'standard/up.png" title="' . $lang->def('_BACKTOTOP') . '" />' . $lang->def('_BACKTOTOP') . '</a>' . getBackUi(Util::str_replace_once('&', '&amp;', $object_link->back_url), $lang->def('_BACK')) . '</div>', 'content');
        cout('</div></div>', 'content');
    }
示例#7
0
 function insglossary()
 {
     checkPerm('view', false, 'storage');
     if ($_POST['title'] == "") {
         $_POST['title'] = Lang::t('_NOTITLE', 'glossary');
     }
     $queryIns = "\r\n\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_glossary \r\n\tSET title = '" . $_POST['title'] . "',\r\n\t\tdescription = '" . $_POST['description'] . "',\r\n\t\tauthor = '" . (int) getLogUserId() . "'";
     if (!sql_query($queryIns)) {
         $_SESSION['last_error'] = Lang::t('_OPERATION_FAILURE', 'glossary');
         Util::jump_to(urldecode($_POST['back_url']) . '&create_result=0');
     }
     list($id) = sql_fetch_row(sql_query("SELECT LAST_INSERT_ID()"));
     Util::jump_to(urldecode($_POST['back_url']) . '&id_lo=' . $id . '&create_result=1');
 }
示例#8
0
function profile()
{
    checkPerm('view');
    require_once $GLOBALS['where_lms'] . '/lib/lib.lms_user_profile.php';
    $lang =& DoceboLanguage::createInstance('profile', 'framework');
    $profile = new LmsUserProfile(getLogUserId());
    $profile->init('profile', 'framework', 'modname=profile&op=profile&id_user='******'ap');
    if (checkPerm('mod', true)) {
        $profile->enableEditMode();
    }
    if (Get::sett('profile_only_pwd') == 'on') {
        $GLOBALS['page']->add($profile->getTitleArea() . $profile->getHead() . $profile->performAction(false, 'mod_password') . profileBackUrl() . $profile->getFooter(), 'content');
    } else {
        $GLOBALS['page']->add($profile->getTitleArea() . $profile->getHead() . $profile->performAction() . profileBackUrl() . $profile->getFooter(), 'content');
    }
}
示例#9
0
function instest()
{
    checkPerm('view', false, 'storage');
    $lang =& DoceboLanguage::createInstance('test');
    if (trim($_POST['title']) == '') {
        $_POST['title'] = $lang->def('_NOTITLE');
    }
    $ins_query = "\r\n\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_test \r\n\t( author, title, description )\r\n\t\tVALUES \r\n\t( '" . (int) getLogUserId() . "', '" . $_POST['title'] . "', '" . $_POST['textof'] . "' )";
    if (!sql_query($ins_query)) {
        $_SESSION['last_error'] = $lang->def('_OPERATION_FAILURE');
        Util::jump_to('' . urldecode($_POST['back_url']) . '&create_result=0');
    }
    list($id_test) = sql_fetch_row(sql_query("SELECT LAST_INSERT_ID()"));
    if ($id_test > 0) {
        Util::jump_to('' . urldecode($_POST['back_url']) . '&id_lo=' . $id_test . '&create_result=1');
    } else {
        Util::jump_to('' . urldecode($_POST['back_url']) . '&create_result=0');
    }
}
示例#10
0
function play($idResource, $idParams, $back_url)
{
    //if(!checkPerm('view', true, 'organization') && !checkPerm('view', true, 'storage')) die("You can't access");
    //echo ("idResource = ".$idResource."; idParams = ".$idParams."; back_url = ".$back_url);
    list($file) = sql_fetch_row(sql_query("SELECT path" . " FROM " . $GLOBALS['prefix_lms'] . "_materials_lesson" . " WHERE idLesson = '" . $idResource . "'"));
    //recognize mime type
    $expFileName = explode('.', $file);
    $totPart = count($expFileName) - 1;
    require_once $GLOBALS['where_lms'] . '/lib/lib.param.php';
    $idReference = getLOParam($idParams, 'idReference');
    // NOTE: Track only if $idReference is present
    if ($idReference !== FALSE) {
        require_once $GLOBALS['where_lms'] . '/class.module/track.item.php';
        list($exist, $idTrack) = Track_Item::getIdTrack($idReference, getLogUserId(), $idResource, TRUE);
        if ($exist) {
            $ti = new Track_Item($idTrack);
            $ti->setDate(date('Y-m-d H:i:s'));
            $ti->status = 'completed';
            $ti->update();
        } else {
            $ti = new Track_Item(false);
            $ti->createTrack($idReference, $idTrack, getLogUserId(), date('Y-m-d H:i:s'), 'completed', 'item');
        }
    }
    if ($_SESSION['direct_play'] == 1) {
        if (isset($_SESSION['idCourse'])) {
            TrackUser::closeSessionCourseTrack();
            unset($_SESSION['idCourse']);
            unset($_SESSION['idEdition']);
        }
        if (isset($_SESSION['test_assessment'])) {
            unset($_SESSION['test_assessment']);
        }
        if (isset($_SESSION['cp_assessment_effect'])) {
            unset($_SESSION['cp_assessment_effect']);
        }
        $_SESSION['current_main_menu'] = '1';
        $_SESSION['sel_module_id'] = '1';
        $_SESSION['is_ghost'] = false;
    }
    //send file
    sendFile('/appLms/' . Get::sett('pathlesson'), $file, $expFileName[$totPart]);
}
示例#11
0
function mycompetences(&$url)
{
    checkPerm('view');
    $html = "";
    $html .= getTitleArea(Lang::t('_COMPETENCES'), 'competences');
    $html .= '<div class="std_block">';
    $cmodel = new CompetencesAdm();
    $fmodel = new FunctionalrolesAdm();
    $id_user = getLogUserId();
    $ucomps = $cmodel->getUserCompetences($id_user);
    $rcomps = $fmodel->getUserRequiredCompetences($id_user);
    $ucomps_info = $cmodel->getCompetencesInfo(array_keys($ucomps));
    $language = getLanguage();
    $_typologies = $cmodel->getCompetenceTypologies();
    $_types = $cmodel->getCompetenceTypes();
    $icon_actv = '<span class="ico-sprite subs_actv"><span>' . Lang::t('_COMPETENCE_OBTAINED', 'competences') . '</span></span>';
    $icon_req = '<span class="ico-sprite subs_actv"><span>' . Lang::t('_MANDATORY', 'competences') . '</span></span>';
    //*******************
    require_once _base_ . '/lib/lib.table.php';
    $table = new Table(Get::sett('visuItem'), Lang::t('_COMPETENCES'), Lang::t('_COMPETENCES'));
    $style_h = array('', '', 'image', 'image', 'image', 'image', 'image');
    $label_h = array(Lang::t('_NAME', 'competences'), Lang::t('_TYPOLOGY', 'competences'), Lang::t('_TYPE', 'standard'), Lang::t('_SCORE', 'competences'), Lang::t('_DATE_LAST_COMPLETE', 'subscribe'), Lang::t('_COMPETENCES_REQUIRED', 'competences'));
    $table->addHead($label_h, $style_h);
    foreach ($ucomps_info as $id_competence => $cinfo) {
        $line = array();
        $line[] = $cinfo->langs[$language]['name'];
        $line[] = $_typologies[$cinfo->typology];
        $line[] = $_types[$cinfo->type];
        $line[] = $cinfo->type == 'score' ? '<b>' . $ucomps[$id_competence]->score_got . '</b>' : $icon_actv;
        $line[] = Format::date($ucomps[$id_competence]->last_assign_date, 'datetime');
        $line[] = array_key_exists($id_competence, $rcomps) ? $icon_req : '';
        $table->addBody($line);
    }
    $html .= $table->getTable();
    $html .= '</div>';
    $html .= Form::openForm('beck_url', 'index.php');
    $html .= Form::openButtonSpace();
    $html .= Form::getButton('close', 'close', Lang::t('_CLOSE', 'standard'));
    $html .= Form::closeButtonSpace();
    $html .= Form::closeform();
    cout($html, 'content');
}
示例#12
0
 function inspage()
 {
     checkPerm('view', false, 'storage');
     $back_url = urldecode($_POST['back_url']);
     $insert_query = "\r\n\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_htmlpage\r\n\tSET title = '" . (trim($_POST['title']) == '' ? Lang::t('_NOTITLE', 'htmlpage', 'lms') : $_POST['title']) . "',\r\n\t\ttextof = '" . $_POST['textof'] . "',\r\n\t\tauthor = '" . (int) getLogUserId() . "'";
     if (!sql_query($insert_query)) {
         $_SESSION['last_error'] = Lang::t('_OPERATION_FAILURE', 'htmlpage', 'lms');
         Util::jump_to($back_url . '&create_result=0');
     }
     list($idPage) = sql_fetch_row(sql_query("SELECT LAST_INSERT_ID()"));
     if ($_FILES) {
         $n = 0;
         foreach ($_FILES as $_FILE) {
             $n++;
             $file = save_file($_FILE);
             if ($file) {
                 $insert_query = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_htmlpage_attachment SET file = '" . $file . "', title = '" . trim($_FILE['name']) . "', idpage = " . $idPage;
                 sql_query($insert_query);
             }
         }
     }
     Util::jump_to($back_url . '&id_lo=' . $idPage . '&create_result=1');
 }
 public function setRulesFromScore($score_arr)
 {
     require_once _base_ . '/lib/lib.json.php';
     require_once _lms_ . '/lib/lib.subscribe.php';
     $res = true;
     $where_score_arr = array();
     foreach ($score_arr as $val) {
         $where_score_arr[] = "(category_id = '" . (int) $val['category_id'] . "' " . "AND from_score <= '" . (int) $val['score'] . "' AND to_score >= '" . (int) $val['score'] . "')";
     }
     if (empty($where_score_arr)) {
         return '';
     }
     $fields = "*";
     $qtxt = "SELECT " . $fields . " FROM %lms_assessment_rule\r\n\t\t\tWHERE test_id='" . $this->test_id . "'\r\n\t\t\tAND (" . implode(' OR ', $where_score_arr) . ")\r\n\t\t\tORDER BY from_score ASC";
     $q = $this->db->query($qtxt);
     $json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
     $csm = new CourseSubscribe_Management();
     $cmpman = new CompetencesAdm();
     $feedback_txt = array();
     while ($row = $this->db->fetch_assoc($q)) {
         $course_arr = $json->decode($row['courses_list']);
         $competence_arr = $json->decode($row['competences_list']);
         $feedback_txt[] = $row['feedback_txt'];
         //courses subscriptions - only students are affected
         if (!empty($course_arr) && $_SESSION['levelCourse'] <= 3) {
             $arr_courses = array_keys($course_arr);
             $csm->multipleUserSubscribe(getLogUserId(), $arr_courses, 3);
         }
         //competences assignment - only students are affected
         if (!empty($competence_arr) && $_SESSION['levelCourse'] <= 3) {
             foreach ($competence_arr as $c_id => $data) {
                 if ($data['type'] == 'score') {
                     $score = isset($data['score']) ? $data['score'] : 0;
                     if ($score > 0) {
                         if (!$cmpman->userHasCompetence($c_id, Docebo::user()->getIdst())) {
                             $cmpman->assignCompetenceUsers($c_id, array(Docebo::user()->getIdst() => $score));
                         } else {
                             $cmpman->addScoreToUsers($c_id, array(Docebo::user()->getIdst()), $score);
                         }
                     }
                 } else {
                     if (!$cmpman->userHasCompetence($c_id, Docebo::user()->getIdst())) {
                         $cmpman->assignCompetenceUsers($c_id, array(Docebo::user()->getIdst() => 1));
                     }
                 }
             }
         }
     }
     $output = "";
     if (!empty($feedback_txt)) {
         $output = implode('<br/><br />', $feedback_txt);
     }
     return $output;
 }
示例#14
0
 public function standingsTask()
 {
     $id_game = Get::req('id_game', DOTY_INT, 0);
     $model = new GamesAlms();
     $game = $model->findByPk($id_game, Docebo::user()->getArrSt());
     YuiLib::load('base,charts');
     $this->render('standings', array('game' => $game, 'track' => $model->getUserStandings($game['id_game'], getLogUserId()), 'standings' => $model->getStandings($game['id_game'], 0, 30), 'chart_data' => $this->json->encode($model->getStandingsChartData($game['id_game']))));
 }
示例#15
0
 function delnotes()
 {
     checkPerm('view');
     $lang =& DoceboLanguage::createInstance('notes', 'lms');
     if (isset($_GET['confirm'])) {
         $query = "\r\n\t\tDELETE FROM " . $GLOBALS['prefix_lms'] . "_notes\r\n\t\tWHERE idNotes='" . $_GET['idNotes'] . "' AND owner='" . getLogUserId() . "' AND idCourse='" . $_SESSION['idCourse'] . "'";
         if (!sql_query($query)) {
             Util::jump_to('index.php?modname=notes&op=notes&amp;result=err');
         }
         Util::jump_to('index.php?modname=notes&op=notes&amp;result=ok');
     } else {
         list($title) = sql_fetch_row(sql_query("\r\n\t\tSELECT title\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_notes \r\n\t\tWHERE owner = '" . getLogUserId() . "' AND idNotes = '" . (int) $_GET['idNotes'] . "'"));
         $title_page = array('index.php?modname=notes&amp;op=notes' => $lang->def('_NOTES'), $lang->def('_DEL'));
         $GLOBALS['page']->add(getTitleArea($title_page, 'notes') . '<div class="std_block">' . getDeleteUi($lang->def('_AREYOUSURE'), '<span>' . $lang->def('_TITLE') . ' : </span>' . $title, true, 'index.php?modname=notes&amp;op=delnotes&amp;idNotes=' . $_GET['idNotes'] . '&amp;confirm=1', 'index.php?modname=notes&amp;op=notes') . '</div>', 'content');
     }
 }
示例#16
0
 /**
  * @param	int	$id_user 	the idst of a user
  *
  * @return	array 	the id of all the course associated to the group, not include the course in the associated coursepath
  */
 function getAllCourseOfUser($id_user)
 {
     $courses = array();
     if ($id_user == getLogUserId()) {
         $user_groups = Docebo::user()->getArrSt();
     } else {
         $user_groups = $this->acl->getSTGroupsST($id_user);
     }
     $query = "\r\n\t\tSELECT DISTINCT ce.idEntry\r\n\t\tFROM " . $this->_getCataEntryTable() . " AS ce\r\n\t\t\tJOIN " . $this->_getCataMemberTable() . " AS cm\r\n\t\tWHERE ce.type_of_entry = 'course' AND\r\n\t\t\tce.idCatalogue = cm.idCatalogue AND\r\n\t\t\tcm.idst_member IN (" . implode(',', $user_groups) . ") ";
     $re_courses = $this->_executeQuery($query);
     while (list($id_course) = sql_fetch_row($re_courses)) {
         $courses[$id_course] = $id_course;
     }
     return $courses;
 }
示例#17
0
 public function getCoursesVisibleToUser($user_id = false)
 {
     require_once _lms_ . '/lib/lib.subscribe.php';
     $res = array();
     $user_id = $user_id > 0 ? $user_id : getLogUserId();
     $allowed_status = array(_CUS_SUBSCRIBED, _CUS_BEGIN, _CUS_END);
     $qtxt = "SELECT t1.idCourse, t2.name, t1.idUser, t1.status FROM  %lms_courseuser as t1,\n\t\t\t%lms_course as t2\n\t\t\tWHERE t1.idCourse = t2.idCourse AND\n\t\t\tt1.idUser = "******" AND t1.status IN (" . implode(',', $allowed_status) . ")\n\t\t\tORDER BY t2.name ASC";
     $q = $this->db->query($qtxt);
     while ($row = $this->db->fetch_assoc($q)) {
         $id = $row['idCourse'];
         $res[$id] = $row['name'];
     }
     return $res;
 }
示例#18
0
function showprofile()
{
    require_once $GLOBALS['where_lms'] . '/lib/lib.course.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.lms_user_profile.php';
    $lang =& DoceboLanguage::createInstance('catalogue');
    $lang =& DoceboLanguage::createInstance('course');
    $id_user = importVar('id_user');
    $id_course = importVar('id_course');
    $man_course = new Man_Course();
    $course = $man_course->getCourseInfo($id_course);
    $profile = new LmsUserProfile($id_user);
    $profile->init('profile', 'framework', 'modname=login&op=showprofile&id_course' . $id_course . '&id_user='******'ap');
    $GLOBALS['page']->add(getTitleArea($lang->def('_NAME', 'catalogue'), 'catalogue') . '<div class="std_block">' . getBackUi('index.php?modname=login&amp;op=courselist&amp;id_parent=' . $course['idCategory'], $lang->def('_BACK')), 'content');
    $GLOBALS['page']->add('<p class="category_path">' . '<b>' . $lang->def('_CATEGORY_PATH') . ' :</b> ' . $man_course->getCategoryPath($course['idCategory'], $lang->def('_MAIN_CATEGORY'), $lang->def('_TITLE_CATEGORY_JUMP'), 'index.php?modname=login&amp;op=courselist', 'id_parent') . ' &gt; ' . $course['name'] . '</p>' . $profile->getProfile(getLogUserId()) . '</div>', 'content');
}
示例#19
0
 public function getUserName()
 {
     $user_info = $this->aclManager->getUser(getLogUserId(), false);
     return $user_info[ACL_INFO_LASTNAME] . $user_info[ACL_INFO_FIRSTNAME] ? $user_info[ACL_INFO_LASTNAME] . ' ' . $user_info[ACL_INFO_FIRSTNAME] : $this->aclManager->relativeId($user_info[ACL_INFO_USERID]);
 }
示例#20
0
 function modTeacherPublicationsGui()
 {
     require_once _base_ . '/lib/lib.form.php';
     $html = '<div class="up_user_info">' . '<div class="up_name">' . $this->resolveUsername(false, getLogUserId()) . '</div>';
     // user standard info -----------------------------------------------------------------
     $html .= Form::openForm('mod_publications', $this->_url_man->getUrl($this->_varname_action . '=save_teach_publ'));
     $html .= Form::getTextarea($this->_lang->def('_TEACHER_PUBLICATIONS'), 'tp_publications', 'tp_publications', Get::req('tp_publications', DOTY_MIXED, $this->_up_data_man->getTeacherPublications($this->_user_profile->getIdUser())));
     $html .= Form::openButtonSpace() . Form::getButton('save', 'save', $this->_lang->def('_SAVE')) . Form::getButton('undo', 'undo', $this->_lang->def('_UNDO')) . Form::closeButtonSpace();
     $html .= Form::closeForm() . '</div>';
     return $html;
 }
示例#21
0
function booking()
{
    require_once $GLOBALS['where_scs'] . '/lib/lib.booking.php';
    $lang =& DoceboLanguage::createInstance('conference', 'lms');
    $room_id = Get::req('id', DOTY_INT, 0);
    $booking = new RoomBooking();
    $result = $booking->bookRoom(getLogUserId(), $room_id);
    Util::jump_to('index.php?modname=conference&op=list&result=' . ($result ? 'ok' : 'err'));
}
示例#22
0
function delfriend(&$url)
{
    checkPerm('view');
    require_once $GLOBALS['where_framework'] . '/lib/lib.myfriends.php';
    $lang =& DoceboLanguage::createInstance('myfriends', 'lms');
    $my_fr = new MyFriends(getLogUserId());
    $id_friend = importVar('id_friend', true, 0);
    $GLOBALS['page']->add(getTitleArea(array($url->getUrl() => $lang->def('_MY_FRIENDS'), $lang->def('_REMOVE_FRIEND')), 'myfriends') . '<div class="std_block">', 'content');
    if (isset($_GET['confirm'])) {
        if ($my_fr->delFriend($id_friend)) {
            Util::jump_to($url->getUrl('result=ok_del'));
        }
        $GLOBALS['page']->add(getErrorUi($lang->def('_ERR_REMOVE_FRIEND')));
    }
    $ui = $my_fr->getFriendsInfo(array($id_friend));
    if ($ui == false) {
        $GLOBALS['page']->add(getErrorUi($lang->def('_INVALID_FRIEND')));
    } else {
        $acl_man =& Docebo::user()->getAclManager();
        $ui = current($ui);
        $GLOBALS['page']->add(getDeleteUi($lang->def('_AREYOUSURE'), '<span>' . $lang->def('_USERNAME') . ' : </span>' . $acl_man->relativeId($ui[ACL_INFO_USERID]) . '<br />' . '<span>' . $lang->def('_USERCOMPLETENAME') . ' : </span>' . $ui[ACL_INFO_LASTNAME] . ($ui[ACL_INFO_LASTNAME] != '' ? ' ' : '') . $ui[ACL_INFO_FIRSTNAME], true, $url->getUrl('op=delfriend&id_friend=' . $id_friend . '&confirm=1'), $url->getUrl()), 'content');
    }
    $GLOBALS['page']->add('</div>', 'content');
}
示例#23
0
                     if (!$ma->currentCanAccessObj('tb_elearning')) {
                         Util::jump_to('index.php?r=lms/classroom/show');
                     }
                     Util::jump_to('index.php?r=' . _after_login_);
                 }
                 // end login
             }
         } else {
             Util::jump_to('../index.php');
         }
     }
     break;
 case "logout":
     require_once $GLOBALS['where_lms'] . '/lib/lib.track_user.php';
     if (!Docebo::user()->isAnonymous() && isset($_SESSION['idCourse'])) {
         TrackUser::setActionTrack(getLogUserId(), $_SESSION['idCourse'], '', '');
     }
     //i need to save the language of the user in order to use it again after logout
     $language = Lang::get();
     if (!Docebo::user()->isAnonymous()) {
         TrackUser::logoutSessionCourseTrack();
         $_SESSION = array();
         session_destroy();
         // load standard language module and put it global
         $glang =& DoceboLanguage::createInstance('standard', 'framework');
         // Recreate Anonymous user
         $GLOBALS['current_user'] =& DoceboUser::createDoceboUserFromSession('public_area');
         $GLOBALS['logout'] = true;
         require_once _base_ . '/lib/lib.platform.php';
         $pm =& PlatformManager::createInstance();
         $pm->doCommonOperations("logout");
示例#24
0
function mycertificate(&$url)
{
    checkPerm('view');
    require_once _lms_ . '/lib/lib.course.php';
    require_once _base_ . '/lib/lib.table.php';
    $lang =& DoceboLanguage::createInstance('profile', 'framework');
    $lang =& DoceboLanguage::createInstance('course', 'lms');
    $lang =& DoceboLanguage::createInstance('certificate', 'lms');
    $admin_level = Docebo::user()->getUserLevelId();
    $show_preview = true;
    //($admin_level == ADMIN_GROUP_ADMIN || $admin_level == ADMIN_GROUP_GODADMIN);
    $title = $lang->def('_MY_CERTIFICATE', 'certificate');
    $html = getTitleArea($title, 'mycertificate') . '<div class="std_block">';
    //--- draw time periods dropdown ---------------------------------------------
    $period_start = '';
    $period_end = '';
    //extract checking period
    $p_model = new TimeperiodsAlms();
    $year = date("Y");
    $p_list = array("0" => $lang->def('_ALL'));
    $p_selected = Get::req('selected_period', DOTY_INT, 0);
    $p_data = $p_model->getTimePeriods('', true);
    if (count($p_data) > 0) {
        foreach ($p_data as $obj) {
            $p_list[$obj->id_period] = Format::date($obj->start_date, 'date') . ' - ' . Format::date($obj->end_date, 'date');
            if ($p_selected == $obj->id_period) {
                $period_start = $obj->start_date;
                $period_end = $obj->end_date;
            }
        }
    }
    if (!array_key_exists($p_selected, $p_list)) {
        $p_selected = 0;
        $period_start = '';
        $period_end = '';
    }
    //date dropdown
    $onchange = ' onchange="javascript:this.form.submit();"';
    $html_filter_cert = '' . Form::openForm('selected_period_form_cert', $url->getUrl()) . Form::openElementSpace() . Form::getDropdown(Lang::t('_TIME_PERIODS', 'menu'), 'selected_period_cert', 'selected_period', $p_list, $p_selected, '', '', $onchange) . Form::closeElementSpace() . Form::getHidden('current_tab_cert', 'current_tab', Get::req('current_tab', DOTY_STRING, 'cert')) . Form::getHidden('is_filtering_cert', 'is_filtering_cert', 1) . Form::closeForm();
    $html_filter_meta = '' . Form::openForm('selected_period_form_meta', $url->getUrl()) . Form::openElementSpace() . Form::getDropdown(Lang::t('_TIME_PERIODS', 'menu'), 'selected_period_meta', 'selected_period', $p_list, $p_selected, '', '', $onchange) . Form::closeElementSpace() . Form::getHidden('current_tab_meta', 'current_tab', Get::req('current_tab', DOTY_STRING, 'meta')) . Form::getHidden('is_filtering_meta', 'is_filtering_meta', 1) . Form::closeForm();
    //----------------------------------------------------------------------------
    $cert = new Certificate();
    /*
     * Print certificates tables, subdivided by year and course type
     */
    $html_cert = '';
    $tb_cert = new Table(0);
    $cont_h = array($lang->def('_YEAR', 'standard'), $lang->def('_COURSE_CODE', 'course'), $lang->def('_COURSE', 'course'), $lang->def('_CERTIFICATE_NAME', 'course'), $lang->def('_DATE_END', 'course'));
    //if ($show_preview) $cont_h[] = '<img src="'.getPathImage('lms').'certificate/preview.gif" alt="'.$lang->def('_PREVIEW').'" />';
    //$cont_h[] = '<img src="'.getPathImage('lms').'certificate/certificate.gif" alt="'.$lang->def('_ALT_TAKE_A_COPY').'" />';
    if ($show_preview) {
        $cont_h[] = '<span class="ico-sprite subs_view"><span>' . $lang->def('_PREVIEW') . '"</span></span>';
    }
    $cont_h[] = '<span class="ico-sprite subs_pdf"><span>' . $lang->def('_ALT_TAKE_A_COPY') . '</span></span>';
    $type_h = array('img-cell', '', '', 'align-center', 'align-center', 'img-cell', 'img-cell');
    if ($show_preview) {
        $type_h[] = 'nowarp';
    }
    $type_h[] = 'nowarp';
    $tb_cert->setColsStyle($type_h);
    $tb_cert->addHead($cont_h);
    $available_cert = $cert->certificateForCourses(false, false);
    $released = $cert->certificateReleased(Docebo::user()->getIdST());
    $query_courses = "" . " SELECT c.idCourse, c.code, c.name, u.status AS user_status, c.course_type, c.permCloseLO " . " FROM %lms_course AS c JOIN %lms_courseuser AS u ON (c.idCourse = u.idCourse) " . " WHERE u.idUser = '******' " . ($period_start != '' ? " AND u.date_complete >= '" . $period_start . "' " : "") . ($period_end != '' ? " AND u.date_complete <= '" . $period_end . "' " : "") . " ORDER BY u.date_complete DESC, u.status DESC ";
    $course_list = sql_query($query_courses);
    $arr_courses = array();
    $arr_courses_ids = array();
    while ($obj = sql_fetch_object($course_list)) {
        $arr_courses[$obj->course_type][] = array($obj->idCourse, $obj->code, $obj->name, $obj->user_status, $obj->permCloseLO);
        $arr_courses_ids[] = $obj->idCourse;
    }
    $arr_course_types = getCourseTypes();
    $table_displayed = false;
    //extract certificates details and availability by courses ids
    $arr_courses_ids = array_unique($arr_courses_ids);
    $arr_certificates_availability = array();
    $arr_certificates_details = array();
    if (count($arr_courses_ids) > 0) {
        $query = "SELECT id_certificate, id_course, available_for_status " . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_course" . " WHERE id_course IN (" . implode(",", $arr_courses_ids) . ")";
        //." WHERE id_certificate = '".$id_cert."'"
        //." AND id_course IN (".implode(",", $arr_courses_ids).")";
        $res = sql_query($query);
        while (list($id_certificate, $id_course, $available_for_status) = sql_fetch_row($res)) {
            $arr_certificates_availability[$id_course][$id_certificate] = $available_for_status;
        }
        $cont = array();
        $query = "SELECT idCourse, date_inscr, date_first_access, date_complete, status" . " FROM %lms_courseuser WHERE idUser = '******'" . " AND idCourse IN (" . implode(",", $arr_courses_ids) . ") " . ($period_start != '' ? " AND date_complete >= '" . $period_start . "' " : "") . ($period_end != '' ? " AND date_complete <= '" . $period_end . "' " : "");
        $res = sql_query($query);
        while (list($id_course, $date_inscr, $date_begin, $date_end, $status) = sql_fetch_row($res)) {
            $arr_certificate_details[$id_course] = array($date_inscr, $date_begin, $date_end, $status);
        }
    }
    //order arr_courses by key
    ksort($arr_courses);
    $years = array();
    foreach ($arr_courses as $course_type => $course_data) {
        if (in_array($course_type, array_keys($arr_course_types))) {
            //$html .= '';
            $tb = new Table(0);
            $tb->setColsStyle($type_h);
            $tb->addHead($cont_h);
            //filter and organize data to display
            $display_data = array();
            foreach ($course_data as $k => $value) {
                list($id_course, $code, $name, $user_status, $perm_close_lo) = $value;
                if (isset($available_cert[$id_course])) {
                    $can_rel_exceptional = false;
                    while (list($id_cert, $certificate) = each($available_cert[$id_course])) {
                        if ($cert->certificateAvailableForUser($id_cert, $id_course, getLogUserId())) {
                            if ($certificate[CERT_AV_POINT_REQUIRED] > 0) {
                                $course_score_final = false;
                                if ($perm_close_lo == 0) {
                                    require_once $GLOBALS['where_lms'] . '/lib/lib.orgchart.php';
                                    $org_man = new OrganizationManagement(false);
                                    $score_final = $org_man->getFinalObjectScore(array(getLogUserId()), array($id_course));
                                    if (isset($score_final[$id_course][getLogUserId()]) && $score_final[$id_course][getLogUserId()]['max_score']) {
                                        $course_score_final = $score_final[$id_course][getLogUserId()]['score'];
                                        $course_score_final_max = $score_final[$id_course][getLogUserId()]['max_score'];
                                    }
                                } else {
                                    require_once $GLOBALS['where_lms'] . '/lib/lib.coursereport.php';
                                    $rep_man = new CourseReportManager();
                                    $score_course = $rep_man->getUserFinalScore(array(getLogUserId()), array($id_course));
                                    if (!empty($score_course)) {
                                        $course_score_final = isset($score_course[getLogUserId()][$id_course]) ? $score_course[getLogUserId()][$id_course]['score'] : false;
                                        $course_score_final_max = isset($score_course[getLogUserId()][$id_course]) ? $score_course[getLogUserId()][$id_course]['max_score'] : false;
                                    }
                                }
                                if ($course_score_final >= $certificate[CERT_AV_POINT_REQUIRED]) {
                                    $can_rel_exceptional = true;
                                }
                            }
                        }
                    }
                    reset($available_cert[$id_course]);
                    //count years for rowspans
                    while (list($id_cert, $certificate) = each($available_cert[$id_course])) {
                        //(aggiunto if prima dell'or)
                        if ($cert->certificateAvailableForUser($id_cert, $id_course, getLogUserId())) {
                            //$value[4] = $id_cert;
                            list($available_for_status) = $arr_certificates_availability[$id_course][$id_cert];
                            list($date_inscr, $date_begin, $date_end, $status) = $arr_certificate_details[$id_course];
                            if ($available_for_status == 3 && $status == 2 || $available_for_status == 2 && $status == 1 || $available_for_status == 1) {
                                //$year = substr($date_end, 0, 4);
                                switch ($available_for_status) {
                                    case 3:
                                        $cur_year = substr($date_end, 0, 4);
                                        break;
                                    case 2:
                                        $cur_year = substr($date_begin, 0, 4);
                                        break;
                                    case 1:
                                        $cur_year = substr($date_inscr, 0, 4);
                                        break;
                                    default:
                                        $cur_year = '-';
                                }
                                // (mi ricreo l'array value perchè manca di date_* BUG FIX)
                                $value = array($id_course, $code, $name, $date_begin, $date_end, $user_status, $perm_close_lo);
                                $value[6] = $id_cert;
                                $query = "SELECT name " . " FROM " . $GLOBALS['prefix_lms'] . "_certificate" . " WHERE id_certificate = " . $id_cert;
                                $res = sql_query($query);
                                list($cname) = sql_fetch_row($res);
                                $value[7] = $cname;
                                if ($can_rel_exceptional && $certificate[CERT_AV_POINT_REQUIRED] > 0) {
                                    if (isset($years[$course_type][$cur_year])) {
                                        $years[$course_type][$cur_year]++;
                                    } else {
                                        $years[$course_type][$cur_year] = 1;
                                    }
                                    $display_data[$cur_year][] = $value;
                                } elseif (!$can_rel_exceptional && $certificate[CERT_AV_POINT_REQUIRED] == 0) {
                                    if (isset($years[$course_type][$cur_year])) {
                                        $years[$course_type][$cur_year]++;
                                    } else {
                                        $years[$course_type][$cur_year] = 1;
                                    }
                                    $display_data[$cur_year][] = $value;
                                }
                            }
                        }
                    }
                }
            }
            if (count($display_data) > 0) {
                krsort($display_data);
            }
            $av_cert = 0;
            $prev_year = false;
            $rowspan_counter = 0;
            require_once $GLOBALS['where_lms'] . '/lib/lib.orgchart.php';
            $org_man = new OrganizationManagement(false);
            foreach ($display_data as $year => $rows) {
                $first = true;
                foreach ($rows as $row) {
                    // list($id_course, $code, $name, $user_status, $id_cert) = $row;
                    list($id_course, $code, $name, $date_begin, $date_end, $user_status, $id_cert, $cname) = $row;
                    $cont = array();
                    if ($first) {
                        $cont[] = array('rowspan' => isset($years[$course_type][$year]) ? $years[$course_type][$year] : 1, 'value' => $year, 'style' => $type_h[0] . ' mycertificate_rowspan' . ($rowspan_counter % 2 > 0 ? '_odd' : ''));
                        $rowspan_counter++;
                        $first = false;
                    }
                    // 2 - the code of the course
                    $cont[] = array('value' => $code, 'style' => $type_h[1]);
                    // 3 - the name of the course
                    $cont[] = array('value' => $name, 'style' => $type_h[2]);
                    // sostituito date_begin con certificate name
                    // 4 - starting date
                    //					$cont[] = array(
                    //						'value' => Format::date($date_begin, 'datetime'),
                    //						'style' => $type_h[3]
                    //					);
                    $cont[] = array('value' => $cname, 'style' => $type_h[3]);
                    // 5 - complete date
                    $cont[] = array('value' => Format::date($date_end, 'datetime'), 'style' => $type_h[4]);
                    //-- scores --
                    $score_start = $org_man->getStartObjectScore(array(Docebo::user()->getIdST()), array($id_course));
                    $score_final = $org_man->getFinalObjectScore(array(Docebo::user()->getIdST()), array($id_course));
                    $_value1 = isset($score_start[$id_course][Docebo::user()->getIdST()]) && $score_start[$id_course][Docebo::user()->getIdST()]['max_score'] ? $score_start[$id_course][Docebo::user()->getIdST()]['score'] . ' / ' . $score_start[$id_course][Docebo::user()->getIdST()]['max_score'] : '';
                    $_value2 = isset($score_final[$id_course][Docebo::user()->getIdST()]) && $score_final[$id_course][Docebo::user()->getIdST()]['max_score'] ? $score_final[$id_course][Docebo::user()->getIdST()]['score'] . ' / ' . $score_final[$id_course][Docebo::user()->getIdST()]['max_score'] : '';
                    /* hide course scores - remove comment to show
                    					// 6 - init score
                    					$cont[] = array(
                    						'value' => $_value1,
                    						'style' => $type_h[5]
                    					);
                    
                    					// 7 - end score
                    					$cont[] = array(
                    						'value' => $_value2,
                    						'style' => $type_h[6]
                    					);
                    					*/
                    if (isset($released[$id_course][$id_cert])) {
                        $av_cert++;
                        if ($show_preview) {
                            $cont[] = array('value' => '', 'style' => $type_h[7]);
                        }
                        $_value = '<a class="ico-wt-sprite subs_pdf" href="' . $url->getUrl('op=release_cert&id_certificate=' . $id_cert . '&id_course=' . $id_course) . '" ' . ' title="' . $lang->def('_TAKE_A_COPY') . '"><span>' . $lang->def('_TAKE_A_COPY') . '</span></a>';
                        $cont[] = array('value' => $_value, 'style' => $type_h[$show_preview ? 8 : 7]);
                    } else {
                        $av_cert++;
                        if ($show_preview) {
                            $_value = '<a class="ico-wt-sprite subs_view" href="' . $url->getUrl('op=preview_cert&id_certificate=' . $id_cert . '&id_course=' . $id_course) . '" ' . ' title="' . $lang->def('_PREVIEW') . '"><span>' . $lang->def('_PREVIEW') . '</span></a>';
                            $cont[] = array('value' => $_value, 'style' => $type_h[7]);
                        }
                        $_value = '<a class="ico-wt-sprite subs_pdf" href="' . $url->getUrl('op=release_cert&id_certificate=' . $id_cert . '&id_course=' . $id_course) . '" ' . ' title="' . $lang->def('_NEW_CERTIFICATE') . '"><span>' . $lang->def('_NEW_CERTIFICATE') . '</span></a>';
                        $cont[] = array('value' => $_value, 'style' => $type_h[$show_preview ? 8 : 7]);
                    }
                    $tb->addBody($cont);
                }
            }
            if ($av_cert > 0) {
                $table_displayed = true;
                $html_cert .= '<h2 class="mycertificate_title">' . $arr_course_types[$course_type] . '</h2>';
                $html_cert .= $tb->getTable();
            }
        }
    }
    //end course_type foreach
    if (!$table_displayed) {
        $is_filtering = Get::req('is_filtering_cert', DOTY_INT, 0);
        $html_cert .= '<p>' . ($is_filtering ? $html_filter_cert : '') . $lang->def('_NO_CONTENT') . '</p>';
    } else {
        $html_cert = $html_filter_cert . $html_cert;
    }
    //-------------------------------------------------------------------------------------------
    /*
     * Print meta-certificates table
     */
    $html_meta = '';
    $tb_meta_cert = new Table(0);
    $cont_h = array();
    $cont_h[] = $lang->def('_CODE');
    $cont_h[] = $lang->def('_NAME');
    $cont_h[] = $lang->def('_COURSE_LIST');
    //if ($show_preview) $cont_h[] = '<img src="'.getPathImage('lms').'certificate/preview.gif" alt="'.$lang->def('_PREVIEW').'" />';
    //$cont_h[] = '<img src="'.getPathImage('lms').'certificate/certificate.gif" alt="'.$lang->def('_ALT_TAKE_A_COPY').'" />';
    if ($show_preview) {
        $cont_h[] = '<span class="ico-sprite subs_view"><span>' . $lang->def('_PREVIEW') . '"</span></span>';
    }
    $cont_h[] = '<span class="ico-sprite subs_pdf"><span>' . $lang->def('_ALT_TAKE_A_COPY') . '</span></span>';
    $type_h = array();
    $type_h[] = '';
    $type_h[] = '';
    $type_h[] = '';
    if ($show_preview) {
        $type_h[] = 'img-cell';
    }
    //'nowrap';
    $type_h[] = 'img-cell';
    //'nowrap';
    $tb_meta_cert->setColsStyle($type_h);
    $tb_meta_cert->addHead($cont_h);
    $query = "SELECT c.idMetaCertificate, m.title, m.description, m.idCertificate" . " FROM %lms_certificate_meta_course as c" . " JOIN %lms_certificate_meta as m ON c.idMetaCertificate = m.idMetaCertificate" . " WHERE c.idUser = '******'" . " GROUP BY c.idMetaCertificate" . " ORDER BY m.title, m.description";
    $result = sql_query($query);
    $av_meta_cert = sql_num_rows($result);
    $cert_meta_html = '';
    while (list($id_meta, $name, $description, $id_certificate) = sql_fetch_row($result)) {
        $cont = array();
        $query = "SELECT code, name" . " FROM %lms_certificate" . " WHERE id_certificate = " . " (" . " SELECT idCertificate" . " FROM %lms_certificate_meta" . " WHERE idMetaCertificate = '" . $id_meta . "'" . " )";
        list($code, $name) = sql_fetch_row(sql_query($query));
        $cont[] = $code;
        $cont[] = $name;
        $query_released = "SELECT on_date" . " FROM %lms_certificate_meta_assign" . " WHERE idUser = '******'" . " AND idMetaCertificate = '" . $id_meta . "'";
        $result_released = sql_query($query_released);
        $query = "SELECT user_release" . " FROM %lms_certificate" . " WHERE id_certificate = '" . $id_certificate . "'";
        list($user_release) = sql_fetch_row(sql_query($query));
        if (sql_num_rows($result_released)) {
            $course_list = '';
            $first = true;
            $query_course = "SELECT code, name" . " FROM %lms_course" . " WHERE idCourse IN " . "(" . "SELECT idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idUser = '******'" . " AND idMetaCertificate = '" . $id_meta . "'" . ")";
            $result_course = sql_query($query_course);
            while (list($code, $name) = sql_fetch_row($result_course)) {
                if ($first) {
                    $first = false;
                } else {
                    $course_list .= '<br/>';
                }
                $course_list .= '(' . $code . ') - ' . $name;
            }
            $cont[] = $course_list;
            if ($show_preview) {
                $cont[] = '';
            }
            list($date) = sql_fetch_row($result_released);
            $cont[] = '<a class="ico-wt-sprite subs_pdf" href="' . $url->getUrl('op=release_cert&id_certificate=' . $id_certificate . '&idmeta=' . $id_meta) . '" ' . ' title="' . $lang->def('_TAKE_A_COPY') . '"><span>' . $lang->def('_TAKE_A_COPY') . '</span></a>';
            $tb_meta_cert->addBody($cont);
        } elseif ($user_release == 0) {
            $av_meta_cert--;
        } else {
            $query = "SELECT idCourse" . " FROM %lms_certificate_meta_course" . " WHERE idUser = '******'" . " AND idMetaCertificate = '" . $id_meta . "'";
            $result_int = sql_query($query);
            $control = true;
            while (list($id_course) = sql_fetch_row($result_int)) {
                $query = "SELECT COUNT(*)" . " FROM %lms_courseuser" . " WHERE idCourse = '" . $id_course . "'" . " AND idUser = '******'" . " AND status = '" . _CUS_END . "'";
                list($number) = sql_fetch_row(sql_query($query));
                if (!$number) {
                    $control = false;
                }
            }
            if ($control) {
                $course_list = '';
                $first = true;
                $query_course = "SELECT code, name" . " FROM %lms_course" . " WHERE idCourse IN " . "(" . "SELECT idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idUser = '******'" . " AND idMetaCertificate = '" . $id_meta . "'" . ")";
                $result_course = sql_query($query_course);
                while (list($code, $name) = sql_fetch_row($result_course)) {
                    if ($first) {
                        $first = false;
                    } else {
                        $course_list .= '<br/>';
                    }
                    $course_list .= '(' . $code . ') - ' . $name;
                }
                $cont[] = $course_list;
                if ($show_preview) {
                    $cont[] = '<a class="ico-wt-sprite subs_view" href="' . $url->getUrl('op=preview_cert&id_certificate=' . $id_certificate . '&idmeta=' . $id_meta) . '" ' . ' title="' . $lang->def('_PREVIEW') . '"><span>' . $lang->def('_PREVIEW') . '</span></a>';
                }
                $cont[] = '<a class="ico-wt-sprite subs_pdf" href="' . $url->getUrl('op=release_cert&id_certificate=' . $id_certificate . '&idmeta=' . $id_meta) . '" ' . ' title="' . $lang->def('_NEW_CERTIFICATE') . '"><span>' . $lang->def('_NEW_CERTIFICATE') . '</span></a>';
                $tb_meta_cert->addBody($cont);
            } else {
                $av_meta_cert--;
            }
        }
    }
    if ($av_meta_cert) {
        $html_meta .= $tb_meta_cert->getTable() . '<br/><br/>';
    } else {
        //$is_filtering = Get::req('is_filtering_meta', DOTY_INT, 0);
        //$html_meta .= '<p>'.($is_filtering>0 ? $html_filter_meta : '').$lang->def('_NO_CONTENT').'</p>';
        $html_meta .= '<p>' . $lang->def('_NO_CONTENT') . '</p>';
    }
    //-----------------------------------------------------------------------------
    $selected_tab = Get::req('current_tab', DOTY_STRING, 'cert');
    $html .= '<div id="mycertificate_tabs" class="yui-navset">
			<ul class="yui-nav">
					<li' . ($selected_tab == 'cert' ? ' class="selected"' : '') . '><a href="#cert"><em>' . Lang::t('_CERTIFICATE', 'menu') . '</em></a></li>
					<li' . ($selected_tab == 'meta' ? ' class="selected"' : '') . '><a href="#meta"><em>' . Lang::t('_TITLE_META_CERTIFICATE', 'certificate') . '</em></a></li>
			</ul>
			<div class="yui-content">
					<div>' . $html_cert . '</div>
					<div>' . $html_meta . '</div>
			</div>
		</div>';
    $html .= '</div>';
    //close std_block div
    cout($html, 'content');
    YuiLib::load('tabs');
    cout('<script type="text/javascript">var myTabs = new YAHOO.widget.TabView("mycertificate_tabs");</script>', 'scripts');
}
示例#25
0
 public function subscribeUserToEdition($id_user, $id_course, $id_edition, $level, $waiting, $date_begin_validity = false, $date_expire_validity = false)
 {
     require_once _lms_ . '/lib/lib.subscribe.php';
     $subscribe_man = new CourseSubscribe_Manager();
     if (!$subscribe_man->controlSubscription($id_user, $id_course)) {
         $subscribe_man->subscribeUserToCourse($id_user, $id_course, $level, $waiting, $date_begin_validity = false, $date_expire_validity = false);
     } else {
         $subscribe_man->updateForNewDateSubscribe($id_user, $id_course, $waiting);
     }
     return $this->addUserToEdition($id_edition, $id_user, getLogUserId());
 }
示例#26
0
 function HomeDirDb($idUser = NULL)
 {
     $this->table = $GLOBALS['prefix_lms'] . '_homerepo_dir';
     $this->fields = array('id' => 'id', 'idParent' => 'idParent', 'path' => 'path', 'lev' => 'lev');
     if ($idUser === NULL) {
         $this->hd_idUser = getLogUserId();
     } else {
         $this->hd_idUser = $idUser;
     }
 }
示例#27
0
 public function disconnectAccount($network, $user_idst = false)
 {
     $res = false;
     $user_idst = $user_idst > 0 ? $user_idst : getLogUserId();
     switch ($network) {
         case "facebook":
             $field = 'facebook_id';
             break;
         case "twitter":
             $field = 'twitter_id';
             break;
         case "linkedin":
             $field = 'linkedin_id';
             break;
         case "google":
             $field = 'google_id';
             break;
     }
     if (!empty($field)) {
         $db = DbConn::getInstance();
         $qtxt = "UPDATE %adm_user SET " . $field . " = NULL WHERE idst=" . $user_idst . " LIMIT 1";
         $res = $db->query($qtxt);
     }
     return $res;
 }
示例#28
0
 function loadBody()
 {
     global $op, $modname;
     if ($this->treeView === NULL) {
         $this->initialize();
     }
     switch ($this->treeView->op) {
         case "import":
             import($this->treeView);
             break;
         case 'createLO':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('homerepo' . getLogUserId(), true);
             $saveObj->save($saveName, $this->treeView->getState());
             $GLOBALS['page']->add($this->treeView->LOSelector($modname, 'index.php?modname=' . $modname . '&op=display&shr=' . $saveName . '&' . $this->treeView->_getOpCreateLOEnd() . '=1'), 'content');
             break;
         case 'createLOSel':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('homerepo' . getLogUserId(), true);
             $saveObj->save($saveName, $this->treeView->getState());
             // start learning object creation
             $lo = createLO($_POST['radiolo']);
             $lo->create('index.php?modname=' . $modname . '&op=display&shr=' . $saveName . '&' . $this->treeView->_getOpCreateLOEnd() . '=1');
             break;
         case 'editLO':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('homerepo' . getLogUserId(), true);
             $saveObj->save($saveName, $this->treeView->getState());
             $folder = $this->repoDb->getFolderById($this->treeView->getSelectedFolderId());
             $lo = createLO($folder->otherValues[REPOFIELDOBJECTTYPE]);
             $lo->edit($folder->otherValues[REPOFIELDIDRESOURCE], 'index.php?modname=' . $modname . '&op=display&shr=' . $saveName . '&' . $this->treeView->_getOpEditLOEnd() . '=1');
             break;
         case 'playitem':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('homerepo' . getLogUserId(), true);
             $saveObj->save($saveName, $this->treeView->getState());
             $folder = $this->repoDb->getFolderById($this->treeView->getItemToPlay());
             $lo = createLO($folder->otherValues[REPOFIELDOBJECTTYPE]);
             $idItem = $folder->otherValues[REPOFIELDIDRESOURCE];
             $back_url = 'index.php?modname=' . $modname . '&op=homerepo&shr=' . $saveName . '&' . $this->treeView->_getOpPlayEnd() . '=' . $folder->id;
             $lo->play($idItem, NULL, $back_url);
             break;
         case 'copyLOSel':
             $GLOBALS['page']->add($this->treeView->load());
             break;
         case 'copyLOEndOk':
         case 'copyLOEndCancel':
             global $modname;
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $_GET['crepo'];
             if ($saveObj->nameExists($saveName)) {
                 $saveData =& $saveObj->load($saveName);
                 $saveObj->delete($saveName);
                 Util::jump_to(' index.php?modname=' . $modname . '&op=' . $saveData['repo']);
             }
             Util::jump_to(' index.php?modname=' . $modname . '&op=display');
             break;
         case 'copyLO':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('crepo', true);
             $folder = $this->treeView->tdb->getFolderById($this->treeView->selectedFolder);
             $saveData = array('repo' => 'homerepo', 'id' => $this->treeView->getSelectedFolderId(), 'objectType' => $folder->otherValues[REPOFIELDOBJECTTYPE], 'name' => $folder->getFolderName(), 'idResource' => $folder->otherValues[REPOFIELDIDRESOURCE]);
             $saveObj->save($saveName, $saveData);
             Util::jump_to(' index.php?modname=' . $modname . '&op=display&crepo=' . $saveName . '&' . $this->treeView->_getOpCopyLOSel() . '=1');
         case 'createLOEnd':
             // insertion managed by extendParsing
         // insertion managed by extendParsing
         case "display":
         case "homerepo":
         default:
             /*$GLOBALS['page']->addStart(
             			getTitleArea(Lang::t('_HOMEREPO', 'homerepo', 'lms'), 'homerepo')
             			.'<div class="std_block">', 'content');
             		$GLOBALS['page']->addEnd('</div>', 'content');
             		if( isset($_SESSION['last_error']) )
             			if( $_SESSION['last_error'] != "" ) {
             				$GLOBALS['page']->add( $_SESSION['last_error'], 'content' );
             				unset( $_SESSION['last_error'] );
             			}*/
             homerepo($this->treeView);
             break;
     }
 }
示例#29
0
 function getUserCurrentSessionCourseTime($id_course)
 {
     if (isset($_SESSION['is_ghost']) && $_SESSION['is_ghost'] === true) {
         return 0;
     }
     if (isset($_SESSION['id_enter_course'])) {
         $query_time = "\r\n\t\t\tSELECT UNIX_TIMESTAMP(enterTime)\r\n\t\t\tFROM " . $GLOBALS['prefix_lms'] . "_tracksession \r\n\t\t\tWHERE idCourse = '" . $id_course . "' AND idUser = '******' \r\n\t\t\t\tAND idEnter = '" . $_SESSION['id_enter_course'] . "'";
         list($partial_time) = sql_fetch_row(sql_query($query_time));
         return time() - $partial_time;
     } else {
         return false;
     }
 }
 function extendedParsing($arrayState, $arrayExpand, $arrayCompress)
 {
     $this->selection_parseInput($arrayState);
     if (isset($arrayState[$this->_getOpCreateLO()])) {
         $this->op = 'createLO';
     } elseif (isset($arrayState[$this->_getOpCreateLOSel()])) {
         $this->op = 'createLOSel';
         $this->creatingObjectType = $_POST['radiolo'];
     } elseif (isset($_GET[$this->_getOpCreateLOEnd()])) {
         // get result and id resource
         $this->op = 'createLOEnd';
         if (isset($_GET['create_result'])) {
             if ($_GET['create_result'] == '1') {
                 $idResource = (int) $_GET['id_lo'];
                 $lo = createLO($this->creatingObjectType, $idResource);
                 $this->tdb->addItem($this->getSelectedFolderId(), $lo->getTitle(), $this->creatingObjectType, $idResource, 0, 0, getLogUserId(), '1.0', '_DIFFICULT_MEDIUM', '', '', '', '', date("Y-m-d H:i:s"));
                 $this->refresh = TRUE;
             } elseif ($_GET['create_result'] == '2') {
                 $idMultiResource = (int) $_GET['id_lo'];
                 $multiLo = createLO($this->creatingObjectType);
                 $arrIdResources = $multiLo->getMultipleResource($idMultiResource);
                 foreach ($arrIdResources as $idResource) {
                     $lo = createLO($this->creatingObjectType, $idResource);
                     $this->tdb->addItem($this->getSelectedFolderId(), $lo->getTitle(), $this->creatingObjectType, $idResource, 0, 0, getLogUserId(), '1.0', '_DIFFICULT_MEDIUM', '', '', '', '', date("Y-m-d H:i:s"));
                 }
                 $this->refresh = TRUE;
             }
         }
     } elseif (isset($arrayState[$this->_getOpEditLO()])) {
         $this->op = 'editLO';
     } elseif (isset($_GET[$this->_getOpEditLOEnd()])) {
         $this->op = 'editLOEnd';
     } elseif (isset($arrayState[$this->_getOpCopyLO()])) {
         $this->op = 'copyLO';
     } elseif (isset($_GET[$this->_getOpCopyLOSel()])) {
         $this->op = 'copyLOSel';
     } elseif (isset($_GET[$this->_getOpPlayEnd()])) {
         $this->op = 'itemdone';
     }
     if (isset($arrayState[$this->_getOpCopyLOEndOk()])) {
         // op now can be copyLOSel, but we override it
         require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
         $saveObj = new Session_Save();
         $saveName = $_GET['crepo'];
         if ($saveObj->nameExists($saveName)) {
             $saveData =& $saveObj->load($saveName);
             $lo = createLO($saveData['objectType']);
             $idResource = $lo->copy((int) $saveData['idResource']);
             if ($idResource != 0) {
                 $lo = createLO($saveData['objectType']);
                 $this->tdb->addItem($this->getSelectedFolderId(), $saveData['name'], $saveData['objectType'], $idResource, 0, 0, getLogUserId(), '1.0', '_DIFFICULT_MEDIUM', '', '', '', '', date("Y-m-d H:i:s"));
                 $this->refresh = TRUE;
             }
         }
         $this->op = 'copyLOEndOk';
     } elseif (isset($arrayState[$this->_getOpCopyLOEndCancel()])) {
         // op now can be copyLOSel, but we override it
         $this->op = 'copyLOEndCancel';
     }
     if (isset($arrayState[$this->id])) {
         foreach ($arrayState[$this->id] as $key => $action) {
             if ($key == $this->_getOpPropertiesId()) {
                 if (is_array($action)) {
                     $id = key($action);
                     $this->op = 'properties';
                     $this->opContextId = $id;
                 }
             } elseif ($key == $this->_getOpEditLOId()) {
                 if (is_array($action)) {
                     $id = key($action);
                     if ($id > 0) {
                         $this->op = 'editLO';
                         $this->selectedFolder = $id;
                     }
                 }
             } elseif ($key == $this->_getOpCopyLOId()) {
                 if (is_array($action)) {
                     $id = key($action);
                     if ($id > 0) {
                         $this->op = 'copyLO';
                         $this->selectedFolder = $id;
                     }
                 }
             }
         }
     }
     foreach ($arrayState as $nameField => $valueField) {
         if (strstr($nameField, $this->_getOpPropertiesId())) {
             $id = substr($nameField, strlen($this->_getOpPropertiesId()));
             $this->op = 'properties';
             $this->opContextId = $id;
         } else {
             if (strstr($nameField, $this->_getOpEditLOId())) {
                 $id = substr($nameField, strlen($this->_getOpEditLOId()));
                 if (strlen($id) > 0) {
                     $this->op = 'editLO';
                     $this->selectedFolder = $id;
                 }
             } else {
                 if (strstr($nameField, $this->_getOpCopyLOId())) {
                     $id = substr($nameField, strlen($this->_getOpCopyLOId()));
                     if (strlen($id) > 0) {
                         $this->op = 'copyLO';
                         $this->selectedFolder = $id;
                     }
                 }
             }
         }
     }
     if ($this->pathToExpand != NULL) {
         if (is_array($this->expandList)) {
             $this->expandList = $this->expandList + $this->pathToExpand;
         } else {
             $this->expandList = $this->pathToExpand;
         }
     }
 }