function subscribe() { checkPerm('subscribe'); require_once _base_ . '/lib/lib.userselector.php'; $lang =& DoceboLanguage::createInstance('groups', 'lms'); $out =& $GLOBALS['page']; $id_group = importVar('id_group', true, 0); $acl_man = new DoceboACLManager(); $user_select = new UserSelector(); $user_select->show_user_selector = TRUE; $user_select->show_group_selector = FALSE; $user_select->show_orgchart_selector = FALSE; $user_select->show_fncrole_selector = FALSE; $user_select->learning_filter = 'course'; $user_select->nFields = 0; if (isset($_GET['load'])) { $users = $acl_man->getGroupUMembers($id_group); $user_select->resetSelection($users); } $arr_idstGroup = $acl_man->getGroupsIdstFromBasePath('/lms/course/' . (int) $_SESSION['idCourse'] . '/subscribed/'); $user_select->setUserFilter('group', $arr_idstGroup); $user_select->setPageTitle(getTitleArea(array('index.php?modname=groups&op=groups' => $lang->def('_GROUPS'), $lang->def('_SUBSCRIBE_USER')), 'groups')); $user_select->loadSelector('index.php?modname=groups&op=subscribe&id_group=' . $id_group, false, $lang->def('_MANAGE_GROUP_SUBSCRIPTION'), true); }
function modcatalogueassoc() { checkPerm('mod'); $lang =& DoceboLanguage::createInstance('catalogue', 'lms'); $acl_man =& Docebo::user()->getAclManager(); require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.userselector.php'; $id_catalogue = importVar('id_catalogue', true, 0); $out =& $GLOBALS['page']; $user_select = new UserSelector(); $user_select->show_user_selector = FALSE; $user_select->show_group_selector = TRUE; $user_select->show_orgchart_selector = TRUE; $user_select->show_orgchart_simple_selector = TRUE; $user_select->multi_choice = TRUE; if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) { require_once _base_ . '/lib/lib.preference.php'; $adminManager = new AdminPreference(); $admin_tree = $adminManager->getAdminTree(Docebo::user()->getIdST()); $admin_users = $acl_man->getAllUsersFromIdst($admin_tree); $user_select->setUserFilter('user', $admin_users); $user_select->setUserFilter('group', $admin_tree); } if (isset($_POST['okselector'])) { $old_members = array(); $re_members = sql_query("\r\n\t\tSELECT idst_member\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_catalogue_member\r\n\t\tWHERE idCatalogue = '" . $id_catalogue . "'"); while (list($id_members) = sql_fetch_row($re_members)) { $old_members[$id_members] = $id_members; } $new_members = $user_select->getSelection($_POST); $to_add = array_diff($new_members, $old_members); $to_del = array_diff($old_members, $new_members); $re = true; $re &= addToCatologue($to_add, $id_catalogue); $re &= removeFromCatologue($to_del, $id_catalogue); Util::jump_to('index.php?modname=catalogue&op=catlist&result=' . ($re ? 'ok' : 'err')); } if (isset($_GET['load'])) { $members = array(); $re_members = sql_query("\r\n\t\tSELECT idst_member\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_catalogue_member\r\n\t\tWHERE idCatalogue = '" . $id_catalogue . "'"); while (list($id_members) = sql_fetch_row($re_members)) { $members[$id_members] = $id_members; } $user_select->resetSelection($members); } $title_area = getTitleArea(array('index.php?modname=catalogue&op=catlist' => $lang->def('_CATALOGUE'), getCatalogueName($id_catalogue)), 'catalogue'); $user_select->setPageTitle($title_area); $user_select->loadSelector('index.php?modname=catalogue&op=modcatalogueassoc&id_catalogue=' . $id_catalogue, $lang->def('_CATALOGUE'), $lang->def('_ASSIGN_USERS'), true); }
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&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&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&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&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&op=modassignment', false, $lang->def('_USER_FOR_META_CERTIFICATE_ASSIGN'), true); } }
function get_rows_filter() { $back_url = $this->back_url; $jump_url = $this->jump_url; $next_url = $this->next_url; 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('report', 'framework'); //update session $ref =& $_SESSION['report_tempdata']; if (!isset($ref['rows_filter'])) { $ref['rows_filter'] = array('select_all' => false, 'selection_type' => 'users', 'selection' => array()); } else { //already resolved in switch block } $step = Get::req('step', DOTY_ALPHANUM, 'sel_type'); switch ($step) { case 'sel_type': $values = array('users' => $this->lang->def('_USERS'), 'groups' => $this->lang->def('_GROUPS')); $sel_val = isset($ref['rows_filter']['selection_type']) ? $ref['rows_filter']['selection_type'] : 'users'; $out = Form::openForm('selection_type_form', $jump_url); $out .= Form::getRadioSet($this->lang->def('_AGGREGATE_ON'), 'selection_type', 'selection_type', array_flip($values), $sel_val) . '<div class="nofloat"></div>'; $out .= Form::openButtonSpace(); $out .= Form::getButton('ok_selection', 'ok_selection', $this->lang->def('_CONFIRM')); $out .= Form::getButton('undo', 'undo', $this->lang->def('_UNDO')); $out .= Form::closeButtonSpace(); $out .= Form::getHidden('step', 'step', 'sel_data'); $out .= Form::closeForm(); cout($out); break; case 'sel_data': $type = Get::req('selection_type', DOTY_ALPHANUM, 'users'); //$aclManager = new DoceboACLManager(); $user_select = new UserSelector(); if (Get::req('is_updating', DOTY_INT, 0) > 0) { $ref['rows_filter']['select_all'] = Get::req('select_all', DOTY_INT, 0) > 0 ? true : false; $ref['rows_filter']['selection_type'] = $type; //$ref['rows_filter']['selection'] = $user_select->getSelection($_POST); } else { //maybe redoundant if (!isset($ref['rows_filter']['select_all'])) { $ref['rows_filter']['select_all'] = false; } if (!isset($ref['rows_filter']['selection_type'])) { $ref['rows_filter']['selection_type'] = 'groups'; } if (!isset($ref['rows_filter']['selection'])) { $ref['rows_filter']['selection'] = array(); } $user_select->resetSelection($ref['rows_filter']['selection']); //$ref['users'] = array(); it should already have been set to void array, if non existent } if (isset($_POST['cancelselector'])) { Util::jump_to($back_url); } elseif (isset($_POST['okselector'])) { $ref['rows_filter']['selection'] = $user_select->getSelection($_POST); Util::jump_to($next_url); } //set page switch ($type) { case 'groups': $user_select->show_user_selector = FALSE; $user_select->show_group_selector = TRUE; $user_select->show_orgchart_selector = TRUE; break; case 'users': $user_select->show_user_selector = TRUE; $user_select->show_group_selector = TRUE; $user_select->show_orgchart_selector = TRUE; break; } //$user_select->show_orgchart_simple_selector = FALSE; //$user_select->multi_choice = TRUE; $user_select->addFormInfo(($type == 'users' ? Form::getCheckbox($lang->def('_REPORT_FOR_ALL'), 'select_all', 'select_all', 1, $ref['rows_filter']['select_all']) : '') . Form::getBreakRow() . Form::getHidden('selection_type', 'selection_type', $type) . Form::getHidden('step', 'step', 'sel_data') . Form::getHidden('is_updating', 'is_updating', 1) . Form::getHidden('substep', 'substep', 'user_selection') . Form::getHidden('second_step', 'second_step', 1)); $user_select->setPageTitle(''); $user_select->loadSelector(Util::str_replace_once('&', '&', $jump_url), false, $this->lang->def('_CHOOSE_USER_FOR_REPORT'), true); break; } }
function modreader() { checkPerm('mod'); require_once _base_ . '/lib/lib.userselector.php'; $lang =& DoceboLanguage::createInstance('advice', 'lms'); $out =& $GLOBALS['page']; $id_advice = importVar('id_advice', true, 0); $aclManager = new DoceboACLManager(); $user_select = new UserSelector(); $user_select->show_user_selector = TRUE; $user_select->show_group_selector = TRUE; $user_select->show_orgchart_selector = FALSE; $user_select->show_fncrole_selector = FALSE; $user_select->nFields = 0; $user_select->learning_filter = 'course'; if (isset($_GET['load'])) { $query_reader = "\r\n\t\t\tSELECT idUser\r\n\t\t\tFROM " . $GLOBALS['prefix_lms'] . "_adviceuser\r\n\t\t\tWHERE idAdvice = '" . $id_advice . "'"; $re_reader = sql_query($query_reader); $users = array(); $all_reader = false; while (list($id_user) = sql_fetch_row($re_reader)) { if ($id_user == 'all') { $all_reader = true; } $users[] = $id_user; } if ($all_reader == true) { $query_reader = "\r\n\t\t\t\tSELECT idUser\r\n\t\t\t\tFROM " . $GLOBALS['prefix_lms'] . "_courseuser\r\n\t\t\t\tWHERE idCourse = '" . $_SESSION['idCourse'] . "'"; $re_reader = sql_query($query_reader); $users = array(); while (list($id_user) = sql_fetch_row($re_reader)) { $users[] = $id_user; } } $user_select->resetSelection($users); } $arr_idstGroup = $aclManager->getGroupsIdstFromBasePath('/lms/course/' . (int) $_SESSION['idCourse'] . '/subscribed/'); $me = array(getLogUserId()); $user_select->setUserFilter('exclude', $me); $user_select->setUserFilter('group', $arr_idstGroup); $arr_idstUser = $aclManager->getAllUsersFromIdst($arr_idstGroup); $user_select->setUserFilter('user', $arr_idstUser); //$user_select->setGroupFilter('path', '/lms/course/'.$_SESSION['idCourse'].'/group'); $user_select->setPageTitle(getTitleArea(array('index.php?modname=advice&op=advice' => $lang->def('_ADVICE'), $lang->def('_VIEW_PERMISSION')), 'advice')); $user_select->loadSelector('index.php?modname=advice&op=modreader&id_advice=' . $id_advice, $lang->def('_ADVICE'), $lang->def('_CHOOSE_READER'), true); }
function manprjadmin() { checkPerm('mod'); require_once _base_ . '/lib/lib.userselector.php'; require_once _base_ . '/lib/lib.form.php'; $out =& $GLOBALS['page']; $out->setWorkingZone('content'); $lang =& DoceboLanguage::createInstance('project', "lms"); $from = new Form(); if (!isset($_GET["id"]) || $_GET["id"] < 1) { return 0; } $id = $_GET["id"]; $myprj = user_projects(Docebo::user()->getIdSt()); $view_perm = checkPerm('view', true); if ($view_perm && in_array($id, $myprj) && is_owner(Docebo::user()->getIdSt(), $id)) { $aclManager = new DoceboACLManager(); $user_select = new UserSelector(); $user_select->show_user_selector = TRUE; $user_select->show_group_selector = FALSE; $user_select->show_orgchart_selector = FALSE; $user_select->show_fncrole_selector = FALSE; $user_select->learning_filter = 'course'; if (isset($_POST['recipients'])) { $recipients = unserialize(urldecode($_POST['recipients'])); } else { $recipients = getAdminList($id); } $user_select->resetSelection($recipients); $back_url = "index.php?modname=project&op=project"; if (isset($_POST["cancelselector"])) { Util::jump_to(str_replace("&", "&", $back_url)); } else { if (isset($_POST["okselector"])) { $arr_selection = $user_select->getSelection($_POST); //$arr_unselected=$user_select->getUnselected(); foreach ($arr_unselected as $userid) { $qtxt = "DELETE FROM " . $GLOBALS["prefix_lms"] . "_prj_users "; $qtxt .= "WHERE pid='" . $id . "' AND flag='1' AND userid='" . $userid . "'"; $q = sql_query($qtxt); } foreach ($arr_selection as $userid) { $qtxt = "INSERT INTO " . $GLOBALS["prefix_lms"] . "_prj_users "; $qtxt .= "(pid,userid,flag) VALUES('" . $id . "','{$userid}','1')"; $q = sql_query($qtxt); } Util::jump_to(str_replace("&", "&", $back_url)); } else { //$user_select->setGroupFilter('path', '/lms/course/'.$_SESSION['idCourse'].'/group'); $group_all = $aclManager->getGroupST('/lms/course/' . (int) $_SESSION['idCourse'] . '/group/alluser'); $query = "\r\n\t\t\tSELECT pgroup\r\n\t\t\tFROM " . $GLOBALS["prefix_lms"] . "_prj\r\n\t\t\tWHERE cid='" . $_SESSION["idCourse"] . "'\r\n\t\t\t\tAND id = '" . $id . "'"; list($group) = mysql_fetch_array(sql_query($query)); if ($group == $group_all) { $arr_idstGroup = $aclManager->getGroupsIdstFromBasePath('/lms/course/' . (int) $_SESSION['idCourse'] . '/subscribed/'); $user_select->setUserFilter('group', $arr_idstGroup); } else { $user_select->setUserFilter('group', array($group)); } $user_select->setPageTitle(getTitleArea(array($back_url => $lang->def('_PROJECT_MANAGER'), $lang->def('_PADMINS')), 'project', $lang->def('_PROJECT_MANAGER'))); $user_select->loadSelector('index.php?modname=project&op=manprjadmin&id=' . $id, false, "", true); } } } else { die("You can't access"); } }
function modassessadmin(&$url) { checkPerm('subscribe'); $id_assessment = importVar('id_assess', true, 0); require_once $GLOBALS['where_lms'] . '/lib/lib.preassessment.php'; $assess_man = new AssessmentList(); $info = $assess_man->getAssessment($id_assessment); $lang =& DoceboLanguage::createInstance('preassessment'); require_once _base_ . '/lib/lib.userselector.php'; require_once _base_ . '/lib/lib.form.php'; // instance assessment ================================================= $user_select = new UserSelector(); $user_select->show_user_selector = TRUE; $user_select->show_group_selector = TRUE; $user_select->show_orgchart_selector = TRUE; if (isset($_POST['okselector'])) { $selected = $user_select->getSelection($_POST); if (!$assess_man->updateAssessmentUser($id_assessment, USER_ASSES_TYPE_ADMIN, $selected)) { Util::jump_to($url->getUrl('result=error_assign')); } else { Util::jump_to($url->getUrl('result=ok_assign')); } } if (isset($_GET['load'])) { $user_select->requested_tab = PEOPLEVIEW_TAB; $selected = $assess_man->getAssessmentAdministrator($id_assessment); $user_select->resetSelection($selected); } $user_select->addFormInfo(Form::getHidden('id_assess', 'id_assess', $id_assessment)); $user_select->setPageTitle(getTitleArea(array($url->getUrl() => $lang->def('_ASSESSMENT'), $lang->def('_ASSIGN_ADMIN_TITLE') . ': ' . strip_tags($info['name'])), 'preassessment')); $user_select->loadSelector($url->getUrl('op=modassessadmin'), false, false, true); }
function addsubscription() { checkPerm('subscribe'); require_once _base_ . '/lib/lib.form.php'; require_once _adm_ . '/class.module/class.directory.php'; require_once _lms_ . '/lib/lib.subscribe.php'; require_once _lms_ . '/lib/lib.coursepath.php'; $id_path = importVar('id_path', true, 0); $lang =& DoceboLanguage::createInstance('coursepath', 'lms'); $out =& $GLOBALS['page']; $acl_man =& Docebo::user()->getAclManager(); if (isset($_POST['cancelselector'])) { Util::jump_to('index.php?modname=coursepath&op=pathlist'); } $user_select = new UserSelector(); $user_select->show_user_selector = TRUE; $user_select->show_group_selector = TRUE; $user_select->show_orgchart_selector = TRUE; $user_select->show_orgchart_simple_selector = TRUE; if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) { require_once _base_ . '/lib/lib.preference.php'; $adminManager = new AdminPreference(); $admin_tree = $adminManager->getAdminTree(Docebo::user()->getIdST()); $admin_users = $acl_man->getAllUsersFromIdst($admin_tree); $user_select->setUserFilter('user', $admin_users); $user_select->setUserFilter('group', $admin_tree); } $query_pathlist = "\r\n\tSELECT path_name, subscribe_method\r\n\tFROM " . $GLOBALS['prefix_lms'] . "_coursepath\r\n\tWHERE id_path = '" . $id_path . "'\r\n\tORDER BY path_name "; list($path_name, $subscribe_method) = sql_fetch_row(sql_query($query_pathlist)); if (isset($_GET['load'])) { $cp_man = new CoursePath_Manager(); $users = $cp_man->getSubscribed($id_path); $user_select->resetSelection($users); } if (isset($_POST['okselector'])) { $acl_manager = new DoceboACLManager(); $user_selected = $user_select->getSelection($_POST); $user_selected =& $acl_manager->getAllUsersFromIdst($user_selected); $user_selected = array_unique($user_selected); $cp_man = new CoursePath_Manager(); $users = $cp_man->getSubscribed($id_path); $user_selected = array_diff($user_selected, $users); if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) { require_once _base_ . '/lib/lib.preference.php'; $adminManager = new AdminPreference(); $admin_tree = $adminManager->getAdminTree(Docebo::user()->getIdST()); $admin_users = $acl_man->getAllUsersFromIdst($admin_tree); $user_selected = array_intersect($user_selected, $admin_users); } if (empty($user_selected)) { Util::jump_to('index.php?modname=coursepath&op=pathlist'); } $cpath_man = new CoursePath_Manager(); $subs_man = new CourseSubscribe_Management(); $courses = $cpath_man->getAllCourses(array($id_path)); require_once $GLOBALS['where_lms'] . '/lib/lib.coursepath.php'; $course_man = new Man_Course(); $classroom = $course_man->getAllCourses(false, 'classroom', $courses); $edition = $course_man->getAllCourses(false, 'edition', $courses); if (!empty($classroom) || !empty($edition)) { $user_selected_post = urlencode(serialize($user_selected)); cout(getTitleArea(array('index.php?modname=coursepath&op=pathlist' => $lang->def('_COURSEPATH'), $path_name), 'coursepath') . '<div class="std_block">' . Form::openForm('edition_selection_form', 'index.php?modname=coursepath&op=addsubscriptionedition&id_path=' . $id_path) . Form::getHidden('users', 'users', $user_selected_post)); if (!empty($classroom)) { require_once _lms_ . '/lib/lib.date.php'; $date_man = new DateManager(); foreach ($classroom as $id_course => $info) { $editions = $date_man->getCourseDate($id_course, true); $edition_for_dropdown = array(); $edition_for_dropdown[0] = Lang::t('_NONE', 'coursepath'); foreach ($editions as $editions_info) { $edition_for_dropdown[$editions_info['id_date']] = $editions_info['code'] . ' - ' . $editions_info['name'] . ' - ' . Format::date($editions_info['date_begin'], 'date') . ' - ' . Format::date($editions_info['date_end'], 'date'); } cout(Form::getDropdown(Lang::t('_EDITION_SELECTION', 'coursepath') . ' : ' . $info['code'] . ' - ' . $info['name'], 'classroom_' . $id_course, 'classroom_' . $id_course, $edition_for_dropdown)); } } if (!empty($edition)) { require_once _lms_ . '/lib/lib.edition.php'; $edition_man = new EditionManager(); foreach ($edition as $id_course => $info) { $editions = $edition_man->getEditionsInfoByCourses($id_course); $edition_for_dropdown = array(); $edition_for_dropdown[0] = Lang::t('_NONE', 'coursepath'); foreach ($editions[$id_course] as $editions_info) { $edition_for_dropdown[$editions_info['id_edition']] = $editions_info['code'] . ' - ' . $editions_info['name'] . ' - ' . Format::date($editions_info['date_begin'], 'date') . ' - ' . Format::date($editions_info['date_end'], 'date'); } cout(Form::getDropdown(Lang::t('_EDITION_SELECTION', 'coursepath') . ' : ' . $info['code'] . ' - ' . $info['name'], 'edition_' . $id_course, 'edition_' . $id_course, $edition_for_dropdown)); } } cout(Form::openButtonSpace() . Form::getButton('save', 'save', Lang::t('_SAVE', 'coursepath')) . Form::getButton('undo', 'undo', Lang::t('_UNDO', 'coursepath')) . Form::closeButtonSpace() . Form::closeForm() . '</div>'); } else { $re = true; if ($subscribe_method != 1 && !checkPerm('moderate', true)) { $waiting = 1; } else { $waiting = 0; } $users_subsc = array(); require_once $GLOBALS['where_lms'] . '/lib/lib.coursepath.php'; $course_man = new Man_Course(); $assessment = $course_man->getAllCourses(false, 'assessment', $courses); while (list(, $id_user) = each($user_selected)) { $text_query = "\r\n\t\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_coursepath_user\r\n\t\t\t\t( id_path, idUser, waiting, subscribed_by ) VALUES\r\n\t\t\t\t( '" . $id_path . "', '" . $id_user . "', '" . $waiting . "', '" . getLogUserId() . "' )"; $re_s = sql_query($text_query); if ($re_s == true) { $users_subsc[] = $id_user; } $re &= $re_s; foreach ($assessment as $id_assessment => $assessment_info) { sql_query("INSERT INTO %lms_assessment_user (id_assessment, id_user, type_of) VALUES ('" . $id_assessment . "', '" . $id_user . "', 'user')"); } } // now subscribe user to all the course if ($waiting == 0) { $re &= $subs_man->multipleSubscribe($users_subsc, $courses, 3); } Util::jump_to('index.php?modname=coursepath&op=pathlist&result=' . ($re ? 'ok' : 'err')); } } else { $user_select->setPageTitle(getTitleArea(array('index.php?modname=coursepath&op=pathlist' => $lang->def('_COURSEPATH'), $path_name), 'coursepath')); $user_select->loadSelector('index.php?modname=coursepath&op=addsubscription&id_path=' . $id_path, $lang->def('_SUBSCRIBE'), false, true); } }
function addmessage() { $send_all = true; // checkPerm('send_all', true); $send_upper = true; // checkPerm('send_upper', true); if (!$send_all && !$send_upper) { die("You can't access"); } require_once _base_ . '/lib/lib.userselector.php'; require_once _lms_ . '/lib/lib.course.php'; $lang =& DoceboLanguage::createInstance('message', 'lms'); $out = $GLOBALS['page']; $out->setWorkingZone('content'); $from = importVar('out'); $um =& UrlManager::getInstance("message"); $aclManager = new DoceboACLManager(); $user_select = new UserSelector(); $user_select->show_user_selector = TRUE; $user_select->show_group_selector = FALSE; $user_select->show_orgchart_selector = FALSE; $user_select->show_fncrole_selector = FALSE; $user_select->nFields = 0; if (isset($_POST['message']['recipients'])) { $recipients = unserialize(urldecode($_POST['message']['recipients'])); $user_select->resetSelection($recipients); } $me = array(getLogUserId()); $course_man = new Man_Course(); $all_value = array(0 => Lang::t('_ALL_COURSES')); $all_courses = $course_man->getUserCourses(getLogUserId()); $all_value = $all_value + $all_courses; if (count($all_value) > 0) { $drop = Form::getLineDropdown('form_line_right', 'label_padded', Lang::t('_FILTER_MESSAGE_FOR'), 'dropdown_nowh', 'msg_course_filter', 'msg_course_filter', $all_value, isset($_POST['msg_course_filter']) ? $_POST['msg_course_filter'] : (isset($_SESSION['idCourse']) ? $_SESSION['idCourse'] : 0), '', ' ' . Form::getButton('refresh_msg_filter', 'refresh_msg_filter', Lang::t('_REFRESH'), 'button_nowh'), ''); $drop .= "\r\n\t\t\t\t<script type=\"text/javascript\"><!--\r\n\t\t\t\t\tvar hide_refresh = document.getElementById('refresh_msg_filter');\r\n\t\t\t\t\thide_refresh.style.display = 'none';\r\n\t\t\t\t\tvar option_elem = document.getElementById('msg_course_filter');\r\n\t\t\t\t\toption_elem.onchange = function() {\r\n\t\t\t\t\t\tvar hide_refresh = document.getElementById('refresh_msg_filter');\r\n\t\t\t\t\t\thide_refresh.click();\r\n\t\t\t\t\t}\r\n\t\t\t\t--></script>"; $user_select->addFormInfo($drop); } else { $user_select->addFormInfo(Form::getHidden("msg_course_filter", "msg_course_filter", 0)); } $user_select->setUserFilter('exclude', $me); if (isset($_POST['msg_course_filter'])) { $filter = $_POST['msg_course_filter']; } elseif (isset($_GET['set_course_filter'])) { $filter = $_GET['set_course_filter']; } else { $filter = 0; } $_SESSION['message_filter'] = $filter; $user_select->learning_filter = 'message'; //$user_select->requested_tab = PEOPLEVIEW_TAB; $id_forward = importVar('id_forward', true, 0); $title_url = $this->mvc_urls ? "index.php?r=message/show" . ($from == 'out' ? '&active_tab=outbox' : '') : $um->getUrl($from == 'out' ? '&active_tab=outbox' : ''); $user_select->setPageTitle($this->messageGetTitleArea(array($title_url => Lang::t('_MESSAGES'), Lang::t('_SEND')), 'forum')); $load_url = $this->mvc_urls ? 'index.php?r=message/add&id_forward=' . $id_forward . '' . ($from == 'out' ? '&from=out' : '') : $um->getUrl('op=addmessage&id_forward=' . $id_forward . '' . ($from == 'out' ? '&from=out' : '')); $user_select->loadSelector($load_url, false, Lang::t('_RECIPIENTS'), true); }