예제 #1
0
 function import()
 {
     checkPerm('mod');
     require_once $GLOBALS['where_lms'] . '/lib/lib.course_managment.php';
     $lang =& DoceboLanguage::createInstance('catalogue', 'lms');
     $id_cat = importVar('id_cat', true, 0);
     $out =& $GLOBALS['page'];
     $out->setWorkingZone('content');
     $sel = new Course_Manager();
     $sel->show_catalogue_selector = false;
     $sel->setLink('index.php?modname=catalogue&op=import');
     if (isset($_POST['undo'])) {
         Util::jump_to('index.php?modname=catalogue&op=entrylist&id=' . $id_cat);
     }
     if (isset($_GET['load']) || isset($_POST['save_selection'])) {
         $course_initial_sel = array();
         $coursepath_initial_sel = array();
         $query = "\r\n\t\tSELECT idEntry, type_of_entry\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_catalogue_entry\r\n\t\tWHERE idCatalogue = '" . $id_cat . "'";
         $re_entry = sql_query($query);
         while (list($id, $type) = sql_fetch_row($re_entry)) {
             switch ($type) {
                 case "course":
                     $course_initial_sel[$id] = $id;
                     break;
                 case "coursepath":
                     $coursepath_initial_sel[$id] = $id;
                     break;
             }
         }
         if (isset($_GET['load'])) {
             $sel->resetCourseSelection($course_initial_sel);
             $sel->resetCoursePathSelection($coursepath_initial_sel);
         }
     }
     if (isset($_POST['save_selection'])) {
         $re = true;
         $course = $sel->getCourseSelection($_POST);
         $re &= updateCatalogueEntry($course, $course_initial_sel, 'course', $id_cat);
         $coursepath = $sel->getCoursePathSelection($_POST);
         $re &= updateCatalogueEntry($coursepath, $coursepath_initial_sel, 'coursepath', $id_cat);
         Util::jump_to('index.php?modname=catalogue&op=entrylist&id=' . $id_cat . '&result=' . ($re ? 'ok' : 'err'));
     }
     $title_area = array('index.php?modname=catalogue&op=catlist' => $lang->def('_CATALOGUE'), 'index.php?modname=catalogue&op=entrylist&id=' . $id_cat => getCatalogueName($id_cat), $lang->def('_IMPORT_NEW_ENTRY') . ' ' . $lang->def('_COURSE'));
     $out->add(getTitleArea($title_area, 'catalogue') . '<div class="std_block">' . Form::openForm('mancoursepath', 'index.php?modname=catalogue&amp;op=import') . Form::getHidden('id_cat', 'id_cat', $id_cat) . $sel->loadSelector(true, true) . Form::openButtonSpace() . Form::getButton('save_selection', 'save_selection', $lang->def('_SAVE')) . Form::getButton('undo', 'undo', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm() . '</div>', 'content');
 }
예제 #2
0
function adminManager_edit_course()
{
    checkPerm('view');
    require_once $GLOBALS['where_lms'] . '/lib/lib.course_managment.php';
    $lang =& DoceboLanguage::createInstance('adminrules', 'framework');
    $adminidst = importVar('adminidst', true, 0);
    $out =& $GLOBALS['page'];
    $out->setWorkingZone('content');
    $sel = new Course_Manager();
    $sel->setLink('index.php?modname=admin_manager&amp;op=edit_course');
    if (isset($_GET['load']) || isset($_POST['save_selection'])) {
        $course_initial_sel = array();
        $coursepath_initial_sel = array();
        $catalogue_initial_sel = array();
        $query = "\r\n\t\tSELECT id_entry, type_of_entry\r\n\t\tFROM " . $GLOBALS['prefix_fw'] . "_admin_course\r\n\t\tWHERE idst_user = '******'";
        $re_entry = sql_query($query);
        while (list($id, $type) = sql_fetch_row($re_entry)) {
            switch ($type) {
                case "course":
                    $course_initial_sel[$id] = $id;
                    break;
                case "coursepath":
                    $coursepath_initial_sel[$id] = $id;
                    break;
                case "catalogue":
                    $catalogue_initial_sel[$id] = $id;
                    break;
            }
        }
        if (isset($_GET['load'])) {
            $sel->resetCourseSelection($course_initial_sel);
            $sel->resetCoursePathSelection($coursepath_initial_sel);
            $sel->resetCatalogueSelection($catalogue_initial_sel);
        }
    }
    if (isset($_POST['save_selection'])) {
        $re = true;
        $course = $sel->getCourseSelection($_POST);
        $re &= updateEntry($course, $course_initial_sel, 'course', $adminidst);
        $coursepath = $sel->getCoursePathSelection($_POST);
        $re &= updateEntry($coursepath, $coursepath_initial_sel, 'coursepath', $adminidst);
        $catalogue = $sel->getCatalogueSelection($_POST);
        $re &= updateEntry($catalogue, $catalogue_initial_sel, 'catalogue', $adminidst);
        Util::jump_to('index.php?modname=admin_manager&amp;op=view&amp;result=' . ($re ? 'ok' : 'err'));
    }
    if (isset($_POST['undo_pref'])) {
        Util::jump_to('index.php?modname=admin_manager&amp;op=view');
    }
    $out->addStart(getTitleArea($lang->def('_ADMIN_MANAGMENT'), 'admin_managmer', $lang->def('_ADMIN_MANAGMENT')) . '<div class="std_block">' . Form::openForm('admin_menu_editing', 'index.php?modname=admin_manager&amp;op=edit_course') . Form::getHidden('adminidst', 'adminidst', $adminidst), 'content');
    $out->addEnd(Form::openButtonSpace() . Form::getButton('save_selection', 'save_selection', $lang->def('_SAVE')) . Form::getButton('undo_pref', 'undo_pref', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm() . '</div>', 'content');
    $sel->loadSelector();
}
예제 #3
0
function modAssignmentAssignMetaCertificate()
{
    checkPerm('mod');
    require_once _base_ . '/lib/lib.form.php';
    require_once $GLOBALS['where_framework'] . '/lib/lib.directory.php';
    require_once _base_ . '/lib/lib.userselector.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.course.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.course_managment.php';
    $lang =& DoceboLanguage::createInstance('certificate', 'lms');
    $id_certificate = importVar('id_certificate', true, 0);
    $id_meta = Get::req('idmeta', DOTY_INT, 0);
    $step = Get::req('step', DOTY_INT, 0);
    $out =& $GLOBALS['page'];
    $out->setWorkingZone('content');
    $acl_man =& Docebo::user()->getAclManager();
    $aclManager = new DoceboACLManager();
    $user_select = new UserSelector();
    $form = new Form();
    $sel = new Course_Manager();
    $course_man = new Man_Course();
    if (isset($_POST['okselector'])) {
        $user_selected = $user_select->getSelection($_POST);
        $_SESSION['meta_certificate']['users'] = $user_selected;
        $step++;
    }
    if (isset($_POST['import_filter'])) {
        $_SESSION['meta_certificate']['course'] = $sel->getCourseSelection($_POST);
        $step++;
    }
    if (isset($_POST['insert'])) {
        $step++;
    }
    if ($step == 3) {
        $array_user =& $aclManager->getAllUsersFromIdst($_SESSION['meta_certificate']['users']);
        $array_user = array_unique($array_user);
        $res = true;
        $user_reset = array();
        $course_reset = array();
        $reasign = array();
        //array reasign
        $query = "SELECT idUser, idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'";
        $result = sql_query($query);
        while (list($id_user, $id_course) = sql_fetch_row($result)) {
            $reasign[$id_user][$id_course] = 1;
        }
        //array user_reset
        $query = "SELECT DISTINCT idUser" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'";
        $result = sql_query($query);
        while (list($id_user) = sql_fetch_row($result)) {
            $user_reset[$id_user] = $id_user;
        }
        //array course_reset
        $query = "SELECT DISTINCT idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'";
        $result = sql_query($query);
        while (list($id_course) = sql_fetch_row($result)) {
            $course_reset[$id_course] = $id_course;
        }
        //finish array initialization
        $query_course = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_certificate_meta_course (idMetaCertificate, idUser, idCourse)" . " VALUES ";
        $first = true;
        $array_user_flipped = array_flip($array_user);
        foreach ($user_reset as $id_user) {
            if (!isset($array_user_flipped[$id_user])) {
                $query = "DELETE FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idUser = '******'" . " AND idMetaCertificate = '" . $id_meta . "'";
                if (!sql_query($query)) {
                    $res = false;
                }
            }
        }
        if (!$res) {
            Util::jump_to('index.php?modname=meta_certificate&op=assign&id_certificate=' . $id_certificate . '&res=error_mod_assign');
        }
        foreach ($course_reset as $id_course) {
            if (!isset($_SESSION['meta_certificate']['course'][$id_course])) {
                $query = "DELETE FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idCourse = '" . $id_course . "'" . " AND idMetaCertificate = '" . $id_meta . "'";
                if (!sql_query($query)) {
                    $res = false;
                }
            }
        }
        if (!$res) {
            Util::jump_to('index.php?modname=meta_certificate&op=assign&id_certificate=' . $id_certificate . '&res=error_mod_assign');
        }
        reset($_SESSION['meta_certificate']['course']);
        foreach ($array_user as $id_user) {
            foreach ($_SESSION['meta_certificate']['course'] as $id_course) {
                if (isset($_POST['_' . $id_user . '_' . $id_course . '_'])) {
                    if (!isset($reasign[$id_user][$id_course])) {
                        if ($first) {
                            $query_course .= "('" . $id_meta . "', '" . $id_user . "', '" . $id_course . "')";
                            $first = false;
                        } else {
                            $query_course .= ", ('" . $id_meta . "', '" . $id_user . "', '" . $id_course . "')";
                        }
                    }
                } else {
                    if (isset($reasign[$id_user][$id_course])) {
                        $query = "DELETE FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idUser = '******'" . " AND idCourse = '" . $id_course . "'" . " AND idMetaCertificate = '" . $id_meta . "'";
                        if (!sql_query($query)) {
                            $res = false;
                        }
                    }
                }
            }
        }
        if (!$res) {
            Util::jump_to('index.php?modname=meta_certificate&op=assign&id_certificate=' . $id_certificate . '&res=error_mod_assign');
        }
        $res = sql_query($query_course);
        if ($res) {
            Util::jump_to('index.php?modname=meta_certificate&op=assign&id_certificate=' . $id_certificate . '&res=ok');
        } else {
            Util::jump_to('index.php?modname=meta_certificate&op=assign&id_certificate=' . $id_certificate . '&res=error_mod_assign');
        }
    } elseif ($step == 2) {
        YuiLib::load();
        Util::get_js(Get::rel_path('base') . '/lib/js_utils.js', true, true);
        $tb = new Table(0, $lang->def('_META_CERTIFICATE_NEW_ASSIGN_CAPTION'), $lang->def('_META_CERTIFICATE_NEW_ASSIGN_SUMMARY'));
        $tb->setLink('index.php?modname=meta_certificate&amp;op=modassignment');
        $out->add(getTitleArea($lang->def('_TITLE_META_CERTIFICATE_ASSIGN'), 'certificate') . '<div class="std_block">' . $form->openForm('new_assign_step_2', 'index.php?modname=meta_certificate&amp;op=modassignment') . $form->getHidden('id_certificate', 'id_certificate', $id_certificate) . $form->getHidden('idmeta', 'idmeta', $id_meta) . $form->getHidden('step', 'step', 2) . $form->getHidden('reasign', 'reasign', 1));
        $reasign = array();
        if (!isset($_POST['reasign'])) {
            $query = "SELECT idUser, idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'";
            $result = sql_query($query);
            while (list($id_user, $id_course) = sql_fetch_row($result)) {
                $reasign[$id_user][$id_course] = 1;
            }
        }
        $form_name = 'new_assign_step_2';
        $type_h = array('', '');
        $cont_h = array($lang->def('_FULLNAME'), $lang->def('_USERNAME'));
        foreach ($_SESSION['meta_certificate']['course'] as $id_course) {
            $type_h[] = 'align_center';
            $course_info = $course_man->getCourseInfo($id_course);
            $cont_h[] = $course_info['code'] . ' - ' . $course_info['name'];
        }
        $type_h[] = 'image';
        $cont_h[] = $lang->def('_CHECKALL');
        $type_h[] = 'image';
        $cont_h[] = $lang->def('_UNCHECKALL');
        $tb->setColsStyle($type_h);
        $tb->addHead($cont_h);
        reset($_SESSION['meta_certificate']['course']);
        $array_user =& $aclManager->getAllUsersFromIdst($_SESSION['meta_certificate']['users']);
        $array_user = array_unique($array_user);
        $query = "SELECT idst" . " FROM " . $GLOBALS['prefix_fw'] . "_user" . " WHERE idst IN (" . implode(',', $array_user) . ")" . " ORDER BY userid";
        $result = sql_query($query);
        $array_user = array();
        while (list($id_user) = sql_fetch_row($result)) {
            $array_user[] = $id_user;
        }
        foreach ($array_user as $id_user) {
            $cont = array();
            $user_info = $acl_man->getUser($id_user, false);
            $cont[] = $user_info[ACL_INFO_LASTNAME] . ' ' . $user_info[ACL_INFO_FIRSTNAME];
            $cont[] = $acl_man->relativeId($user_info[ACL_INFO_USERID]);
            foreach ($_SESSION['meta_certificate']['course'] as $id_course) {
                if (isset($_POST['_' . $id_user . '_' . $id_course . '_']) || isset($_POST['select_all']) || isset($reasign[$id_user][$id_course])) {
                    $checked = true;
                } else {
                    $checked = false;
                }
                $cont[] = $form->getCheckbox('', '_' . $id_user . '_' . $id_course . '_', '_' . $id_user . '_' . $id_course . '_', 1, $checked);
            }
            $cont[] = '<a href="javascript:;" onclick="checkall_fromback_meta(\'' . $form_name . '\', \'' . $id_user . '\', true); return false;">' . $lang->def('_CHECKALL') . '</a>';
            $cont[] = '<a href="javascript:;" onclick="checkall_fromback_meta(\'' . $form_name . '\', \'' . $id_user . '\', false); return false;">' . $lang->def('_UNCHECKALL') . '</a>';
            $tb->addBody($cont);
        }
        reset($_SESSION['meta_certificate']['course']);
        $cont = array();
        $cont[] = '';
        $cont[] = '';
        foreach ($_SESSION['meta_certificate']['course'] as $id_course) {
            $cont[] = '<a href="javascript:;" onclick="checkall_meta(\'' . $form_name . '\', \'' . $id_course . '\', true); return false;">' . $lang->def('_CHECKALL') . '</a><br/>' . '<a href="javascript:;" onclick="checkall_meta(\'' . $form_name . '\', \'' . $id_course . '\', false); return false;">' . $lang->def('_UNCHECKALL') . '</a>';
        }
        $cont[] = '';
        $cont[] = '';
        $tb->addBody($cont);
        $out->add($form->openElementSpace() . $tb->getTable() . $form->closeElementSpace() . $form->openButtonSpace() . $form->getButton('select_all', 'select_all', $lang->def('_SELECT_ALL')) . $form->getButton('insert', 'insert', $lang->def('_INSERT')) . $form->getButton('undo_assign', 'undo_assign', $lang->def('_UNDO')) . $form->closeButtonSpace() . $form->closeForm());
    } elseif ($step == 1) {
        $sel->setLink('index.php?modname=meta_certificate&amp;op=modassignment');
        $out->add(getTitleArea($lang->def('_TITLE_META_CERTIFICATE_ASSIGN'), 'certificate') . '<div class="std_block">' . $form->openForm('new_assign_step_1', 'index.php?modname=meta_certificate&amp;op=modassignment') . $form->getHidden('id_certificate', 'id_certificate', $id_certificate) . $form->getHidden('idmeta', 'idmeta', $id_meta) . $form->getHidden('step', 'step', 1) . $form->getHidden('course_reload', 'course_reload', 1));
        if (!isset($_POST['course_reload'])) {
            $query = "SELECT DISTINCT idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'";
            $result = sql_query($query);
            $course_reset = array();
            while (list($id_course) = sql_fetch_row($result)) {
                $course_reset[$id_course] = $id_course;
            }
            $sel->resetCourseSelection($course_reset);
        }
        $sel->loadSelector();
        $out->add(Form::getHidden('update_tempdata', 'update_tempdata', 1) . Form::openButtonSpace() . Form::getBreakRow() . Form::getButton('ok_filter', 'import_filter', $lang->def('_NEXT')) . Form::getButton('undo_filter', 'undo_filter', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm() . '</div>');
    } else {
        $user_select->show_orgchart_simple_selector = FALSE;
        $user_select->multi_choice = TRUE;
        $user_select->addFormInfo($form->getHidden('step', 'step', 0) . $form->getHidden('id_certificate', 'id_certificate', $id_certificate) . $form->getHidden('idmeta', 'idmeta', $id_meta) . $form->getHidden('user_reload', 'user_reload', 1));
        $user_select->setPageTitle(getTitleArea($lang->def('_TITLE_META_CERTIFICATE_ASSIGN'), 'certificate') . '<div class="std_block">');
        if (!isset($_POST['user_reload'])) {
            $query = "SELECT DISTINCT idUser" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_course" . " WHERE idMetaCertificate = '" . $id_meta . "'";
            $result = sql_query($query);
            $user_reset = array();
            while (list($id_user) = sql_fetch_row($result)) {
                $user_reset[$id_user] = $id_user;
            }
            $user_select->resetSelection($user_reset);
        }
        $user_select->loadSelector('index.php?modname=meta_certificate&amp;op=modassignment', false, $lang->def('_USER_FOR_META_CERTIFICATE_ASSIGN'), true);
    }
}
 public function courses()
 {
     $id_user = Get::req('id_user', DOTY_INT, 0);
     require_once _base_ . '/lib/lib.form.php';
     require_once _lms_ . '/lib/lib.course.php';
     require_once _lms_ . '/lib/lib.course_managment.php';
     $course_selector = new Course_Manager();
     $course_selector->setLink('index.php?r=adm/adminmanager/courses&id_user='******'undo'])) {
         Util::jump_to('index.php?r=adm/adminmanager/show');
     }
     if (isset($_POST['save'])) {
         $course_selected = $course_selector->getCourseSelection($_POST);
         $coursepath_selected = $course_selector->getCoursePathSelection($_POST);
         $catalogue_selected = $course_selector->getCatalogueSelection($_POST);
         if (isset($_POST['all_courses']) && $_POST['all_courses'] == 1) {
             $course_selected = array(0);
         }
         if (isset($_POST['all_courses']) && $_POST['all_courses'] == -1) {
             $course_selected = array(-1);
         }
         if ($this->model->saveCoursesAssociation($id_user, $course_selected, $coursepath_selected, $catalogue_selected)) {
             Util::jump_to('index.php?r=adm/adminmanager/show&res=ok_ins');
         }
         Util::jump_to('index.php?r=adm/adminmanager/show&res=err_ins');
     } else {
         $all_courses = 0;
         if (isset($_GET['load'])) {
             $old_association = $this->model->loadCourseSelectorSelection($id_user);
             if (isset($old_association['course'][0])) {
                 $all_courses = 1;
             } elseif (isset($old_association['course'][-1])) {
                 $all_courses = -1;
             } else {
                 $course_selector->resetCourseSelection($old_association['course']);
                 $course_selector->resetCoursePathSelection($old_association['coursepath']);
                 $course_selector->resetCatalogueSelection($old_association['catalogue']);
             }
         }
         $this->render('courses', array('id_user' => $id_user, 'all_courses' => $all_courses, 'course_selector' => $course_selector, 'model' => $this->model));
     }
 }
예제 #5
0
function subscribeFromCourse()
{
    require_once _base_ . '/lib/lib.form.php';
    require_once $GLOBALS['where_framework'] . '/lib/lib.directory.php';
    require_once _base_ . '/lib/lib.userselector.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.course.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.course_managment.php';
    $lang =& DoceboLanguage::CreateInstance('subscribe', 'lms');
    $back_url = 'index.php?modname=course&op=course_list';
    $acl_man =& Docebo::user()->getAclManager();
    $out =& $GLOBALS['page'];
    $out->setWorkingZone('content');
    $id_course = Get::req('id_course', DOTY_INT, 0);
    $edition_id = Get::req('edition_id', DOTY_INT, 0);
    $alert = Get::req('alert', DOTY_INT, 0);
    $delete_prev = Get::req('delete_from_prev', DOTY_INT, 0);
    $sel = new Course_Manager();
    if (isset($_POST['subscribe_import'])) {
        $course_info = Man_Course::getCourseInfo($id_course);
        $level_idst =& getCourseLevel($id_course);
        if (count($level_idst) == 0) {
            $level_idst =& DoceboCourse::createCourseLevel($id_course);
        }
        $course_selected = $sel->getCourseSelection($_POST);
        if (empty($course_selected)) {
            Util::jump_to('index.php?modname=course&op=course_list&result=err');
        }
        $id_course = Get::req('id_course', DOTY_INT, 0);
        $level = Get::req('level', DOTY_INT, 0);
        $status = Get::req('status', DOTY_INT, 0);
        $gsel = array();
        foreach ($course_selected as $trash => $id) {
            $gsel[$id] = getCourseLevel($id);
        }
        $query = "SELECT idUser, idCourse, level" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE idCourse IN (" . implode(',', $course_selected) . ")";
        if ($level) {
            $query .= " AND level = '" . $level . "'";
        }
        if ($status != '-2') {
            $query .= " AND status = '" . $status . "'";
        }
        $result = sql_query($query);
        $array_user = array();
        $user_subscribed = array();
        while (list($id_user, $id_prev_course, $lv_sel) = sql_fetch_row($result)) {
            if ($delete_prev) {
                removeSubscription($id_prev_course, $id_user, $gsel[$id_prev_course][$lv_sel]);
            }
            // Add in group for permission
            $acl_man->addToGroup($level_idst[$lv_sel], $id_user);
            // Add in table
            $re = sql_query("\r\n\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_courseuser\r\n\t\t\t( idUser, idCourse, edition_id, level, waiting, subscribed_by, date_inscr )\r\n\t\t\tVALUES\r\n\t\t\t( '" . $id_user . "', '" . $id_course . "', '" . $edition_id . "', '" . $lv_sel . "', '0', '" . getLogUserId() . "', '" . date("Y-m-d H:i:s") . "' )\t");
            if ($re) {
                $user_subscribed[] = $id_user;
                addUserToTimeTable($id_user, $id_course, $edition_id);
            }
        }
        Docebo::user()->loadUserSectionST('/lms/course/private/');
        Docebo::user()->SaveInSession();
        require_once _base_ . '/lib/lib.eventmanager.php';
        $array_subst = array('[url]' => Get::sett('url'), '[course]' => $course_info['name'], '[medium_time]' => $course_info['mediumTime'], '[course_name]' => $course_info['name'], '[course_code]' => $course['code']);
        if (!empty($user_subscribed) && $alert) {
            // message to user that is subscribed
            $msg_composer = new EventMessageComposer();
            $msg_composer->setSubjectLangText('email', '_NEW_USER_SUBSCRIBED_SUBJECT', false);
            $msg_composer->setBodyLangText('email', '_NEW_USER_SUBSCRIBED_TEXT', $array_subst);
            $msg_composer->setBodyLangText('sms', '_NEW_USER_SUBSCRIBED_TEXT_SMS', $array_subst);
            // send message to the user subscribed
            createNewAlert('UserCourseInserted', 'subscribe', 'insert', '1', 'User subscribed', $user_subscribed, $msg_composer);
        }
        Util::jump_to('index.php?modname=course&op=course_list&result=ok');
    }
    $sel->setLink('index.php?modname=meta_certificate&amp;op=new_assign');
    $sel->show_coursepath_selector = false;
    $sel->show_catalogue_selector = false;
    $array_level = CourseLevel::getLevels();
    $array_level['0'] = $lang->def('_ALL');
    $arr_status = array('-2' => $lang->def('_ALL'), _CUS_CONFIRMED => $lang->def('_USER_STATUS_CONFIRMED'), _CUS_SUBSCRIBED => $lang->def('_USER_STATUS_SUBS'), _CUS_BEGIN => $lang->def('_USER_STATUS_BEGIN'), _CUS_END => $lang->def('_USER_STATUS_END'), _CUS_SUSPEND => $lang->def('_SUSPENDED'), _CUS_CANCELLED => $lang->def('_USER_STATUS_CANCELLED'));
    $out->add(getTitleArea($lang->def('_IMPORT_FROM_COURSE')) . '<div class="std_block">' . Form::openForm('course_selection', 'index.php?modname=subscribe&amp;op=subscribe_from_course') . Form::openElementSpace() . Form::getDropdown($lang->def('_LEVEL_TO_IMPORT'), 'level', 'level', $array_level, isset($_POST['level']) ? $_POST['level'] : '0') . Form::getDropdown($lang->def('_STATUS_TO_IMPORT'), 'status', 'status', $arr_status, isset($_POST['status']) ? $_POST['status'] : '-2') . Form::getCheckbox($lang->def('_SEND_ALERT'), 'alert', 'alert', '1', $delete_prev) . Form::getCheckbox($lang->def('_DELETE'), 'delete_from_prev', 'delete_from_prev', '1', $delete_prev) . Form::closeElementSpace());
    $sel->loadSelector(false);
    $out->add(Form::getHidden('id_course', 'id_course', $id_course) . Form::getHidden('edition_id', 'edition_id', $edition_id) . Form::openButtonSpace() . Form::getBreakRow() . Form::getButton('subscribe_import', 'subscribe_import', $lang->def('_SUBSCRIBE')) . Form::getButton('undo_course', 'undo_course', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm() . '</div>');
}
 protected function addcourses()
 {
     checkPerm('view', true, 'enrollrules', 'lms');
     require_once _lms_ . '/lib/lib.course_managment.php';
     $course_selector = new Course_Manager();
     $course_selector->show_coursepath_selector = false;
     $course_selector->show_catalogue_selector = false;
     $id_rule = Get::req('id_rule', DOTY_INT, 0);
     $rule = $this->model->getRule($id_rule);
     if (isset($_POST['undo'])) {
         Util::jump_to('index.php?r=alms/enrollrules/modelem&amp;id_rule=' . $id_rule);
     }
     if (isset($_POST['save'])) {
         // Save the new course in the list
         $course_list = $course_selector->getCourseSelection($_POST);
         $course_selection = array_keys($course_list);
         $re = $this->model->updateRuleCourseSelection($id_rule, $course_selection);
         Util::jump_to('index.php?r=alms/enrollrules/' . ($rule->rule_type == 'base' ? 'modbaseelem' : 'modelem') . '&amp;id_rule=' . $id_rule . '&amp;result=' . ($re ? 'true' : 'false'));
     }
     if (isset($_GET['load'])) {
         // Load old data
         $course_selection = $this->json->decode($rule->course_list);
         if (isset($course_selection) && is_array($course_selection)) {
             $course_selector->resetCourseSelection(array_flip($course_selection));
         }
     }
     $this->render('addcourses', array('rule' => $rule, 'course_selector' => $course_selector));
 }
예제 #7
0
function assignrule(&$url)
{
    checkPerm('mod');
    require_once $GLOBALS['where_lms'] . '/lib/lib.course_managment.php';
    $id_rule = importVar('id_rule', true, 0);
    require_once $GLOBALS['where_lms'] . '/lib/lib.preassessment.php';
    $assess_man = new AssessmentList();
    $rule_man = new AssessmentRule();
    $lang =& DoceboLanguage::createInstance('preassessment');
    // recover assessment
    $rule = $rule_man->getRule($id_rule);
    $id_assessment = $rule[RULE_ID_ASSESS];
    $assess = $assess_man->getAssessment($id_assessment);
    $sel = new Course_Manager();
    $sel->show_catalogue_selector = false;
    $sel->setLink($url->getUrl('op=assignrule'));
    if (isset($_POST['cancel_assign'])) {
        Util::jump_to($url->getUrl('&op=modrule&id_assess=' . $id_assessment));
    }
    if (isset($_GET['load'])) {
        $effects = $rule_man->parseEffects($rule[RULE_EFFECT]);
        if (isset($_GET['load'])) {
            $sel->resetCourseSelection($effects['course']);
            $sel->resetCoursePathSelection($effects['coursepath']);
        }
    }
    if (isset($_POST['save_selection'])) {
        $re = true;
        $course = $sel->getCourseSelection($_POST);
        $coursepath = $sel->getCoursePathSelection($_POST);
        $re = $rule_man->setEffects($id_rule, $course, $coursepath);
        Util::jump_to($url->getUrl('&op=modrule&id_assess=' . $id_assessment . '&result=' . ($re ? 'ok_rule' : 'err_rule')));
    }
    $rule_name = $rule_man->resolveRuleTypePhrase($lang, $rule);
    $GLOBALS['page']->addStart(getTitleArea(array($url->getUrl() => $lang->def('_ASSESSMENT'), $url->getUrl('&op=modrule&id_assess=' . $id_assessment) => $lang->def('_RULES') . ': ' . $assess['name'], '"' . $rule_name . '"'), 'preassessment') . '<div class="std_block">' . Form::openForm('man_assign_rule', $url->getUrl('op=assignrule')) . Form::getHidden('id_rule', 'id_rule', $id_rule), 'content');
    $GLOBALS['page']->addEnd(Form::openButtonSpace() . Form::getButton('save_selection', 'save_selection', $lang->def('_SAVE')) . Form::getButton('cancel_assign', 'cancel_assign', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm() . '</div>', 'content');
    $sel->loadSelector();
}