function subscribeadd() { checkPerm('subscribe', false, 'course'); require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.userselector.php'; $id_course = importVar('id_course', true, 0); $edition_id = getCourseEditionId(); $ed_url_param = getEditionUrlParameter($edition_id); $lang =& DoceboLanguage::CreateInstance('subscribe', 'lms'); $out =& $GLOBALS['page']; $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 (isset($_GET['load'])) { // ema -- add requested_tab to show user selector $user_select->requested_tab = PEOPLEVIEW_TAB; $user_alredy_subscribed = getSubscribed($id_course, FALSE, FALSE, FALSE, $edition_id); $user_select->resetSelection($user_alredy_subscribed); } $acl_man =& Docebo::user()->getAclManager(); $user_select->setUserFilter('exclude', array($acl_man->getAnonymousId())); $user_select->loadSelector('index.php?modname=subscribe&op=subscribeadd&id_course=' . $id_course . $ed_url_param . '&jump=1', $lang->def('_SUBSCRIBE'), $lang->def('_CHOOSE_SUBSCRIBE'), 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 get_rows_filter() { if (!isset($_SESSION['report_tempdata']['rows_filter'])) { $_SESSION['report_tempdata']['rows_filter'] = array('users' => array(), 'all_users' => false); } $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'; $lang =& DoceboLanguage::createInstance('report', 'framework'); $org_chart_subdivision = importVar('org_chart_subdivision', true, 0); $aclManager = new DoceboACLManager(); $user_select = new UserSelector(); $user_select->use_suspended = true; if (isset($_POST['cancelselector'])) { Util::jump_to($back_url); } elseif (isset($_POST['okselector'])) { $aclManager = new DoceboACLManager(); $temp = $user_select->getSelection($_POST); $_SESSION['report_tempdata']['rows_filter']['users'] = $temp; $_SESSION['report_tempdata']['rows_filter']['all_users'] = Get::req('all_users', DOTY_INT, 0) > 0 ? true : false; Util::jump_to($next_url); } else { // first step load selector if ($org_chart_subdivision == 0) { $user_select->show_user_selector = TRUE; $user_select->show_group_selector = TRUE; } else { $user_select->show_user_selector = FALSE; $user_select->show_group_selector = FALSE; } $user_select->show_orgchart_selector = TRUE; //$user_select->show_orgchart_simple_selector = FALSE; //$user_select->multi_choice = TRUE; if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN && !Docebo::user()->isAnonymous()) { $acl_man = new DoceboACLManager(); 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 (Get::req('is_updating', DOTY_INT, false)) { //$_SESSION['report_tempdata']['rows_filter']['users'] = $user_select->getSelection($_POST); $_SESSION['report_tempdata']['rows_filter']['all_users'] = Get::req('all_users', DOTY_INT, 0) > 0 ? true : false; } else { $user_select->requested_tab = PEOPLEVIEW_TAB; $user_select->resetSelection($_SESSION['report_tempdata']['rows_filter']['users']); } $user_select->addFormInfo(Form::getCheckbox($lang->def('_REPORT_FOR_ALL'), 'all_users', 'all_users', 1, $_SESSION['report_tempdata']['rows_filter']['all_users']) . Form::getBreakRow() . Form::getHidden('org_chart_subdivision', 'org_chart_subdivision', $org_chart_subdivision) . Form::getHidden('is_updating', 'is_updating', 1)); //$user_select->setPageTitle($this->page_title); cout($this->page_title, 'content'); //$user_select->resetSelection($_SESSION['report_tempdata']['rows_filter']['users']); $user_select->loadSelector(Util::str_replace_once('&', '&', $jump_url), false, $lang->def('_CHOOSE_USER_FOR_REPORT'), true); } }
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 setRoomViewPerm() { checkPerm('view'); $id_event = importVar('id_event', true, 0); require_once $GLOBALS['where_lms'] . '/lib/lib.reservation_perm.php'; require_once _base_ . '/lib/lib.userselector.php'; $mdir = new UserSelector(); $out =& $GLOBALS["page"]; $out->setWorkingZone("content"); $lang =& DoceboLanguage::createInstance('reservation', 'lms'); $roomperm = new ReservationRoomPermissions(); //$res = getTitleArea($lang->def('_RESERVATION_TITLE'), 'reservation'); $back_url = 'index.php?modname=reservation&op=reservation&active_tab=subscribed_user'; if (isset($_POST['okselector'])) { $arr_selection = $mdir->getSelection($_POST); $arr_unselected = $mdir->getUnselected(); $roomperm->addReservationPerm("view", $id_event, $arr_selection); $roomperm->removeReservationPerm("view", $id_event, $arr_unselected); Util::jump_to(str_replace("&", "&", $back_url)); } else { if (isset($_POST['cancelselector'])) { Util::jump_to(str_replace("&", "&", $back_url)); } else { if (!isset($_GET['stayon'])) { $all_perm = $roomperm->getAllReservationPerm($id_event); if (isset($all_perm["view"])) { $mdir->resetSelection($all_perm["view"]); } } $acl_manager =& Docebo::user()->getAclManager(); $url = 'index.php?modname=reservation&op=set_room_view_perm&id_event=' . $id_event; $mdir->setNFields(0); $mdir->show_group_selector = TRUE; $mdir->show_orgchart_selector = FALSE; $arr_idstGroup = $acl_manager->getGroupsIdstFromBasePath('/lms/course/' . (int) $_SESSION['idCourse'] . '/subscribed/'); $me = array(getLogUserId()); $mdir->setUserFilter('exclude', $me); $mdir->setUserFilter('group', $arr_idstGroup); $mdir->setGroupFilter('path', '/lms/course/' . $_SESSION['idCourse'] . '/group'); $mdir->loadSelector($url, $lang->def('_VIEW_PERMISSION'), "", TRUE); } } }
public function sel_usersTask() { require_once _adm_ . '/lib/lib.directory.php'; require_once _adm_ . '/class.module/class.directory.php'; $base_url = 'index.php?r=adm/functionalroles/show'; //check permissions: we should have mod privileges to assign users to the role group if (!$this->permissions['mod']) { Util::jump_to($base_url); } //read inputs $id_fncrole = Get::req('id_fncrole', DOTY_INT, -1); if ($id_fncrole <= 0) { $this->render('invalid', array('message' => $this->_getErrorMessage('invalid fncrole'), 'back_url' => $base_url)); return; } //navigation urls $back_url = 'index.php?r=adm/functionalroles/man_users&id=' . (int) $id_fncrole; $jump_url = 'index.php?r=adm/functionalroles/sel_users&id_fncrole=' . (int) $id_fncrole; //competence details $info = $this->model->getFunctionalRoleInfo($id_fncrole); $name = $this->model->getFunctionalRoleName($id_fncrole); //page_title $page_title_arr = array($base_url => Lang::t('_FUNCTIONAL_ROLE', 'fncroles'), $back_url => Lang::t('_USERS', 'fncroles') . ': ' . $name, Lang::t('_ASSIGN_USERS', 'fncroles')); if (isset($_POST['cancelselector'])) { //--- UNDO: return to catalogue list ------------------------------------- Util::jump_to($back_url); } elseif (isset($_POST['okselector'])) { //--- SAVE: users selection has been done -------------------------------- $acl_man = Docebo::user()->getAclManager(); $user_selector = new UserSelector(); $selection = $user_selector->getSelection(); $members_existent = $this->model->getMembers($id_fncrole); //retrieve newly selected users $_common_members = array_intersect($members_existent, $selection); $_new_members = array_diff($selection, $_common_members); //new users to add $_old_members = array_diff($members_existent, $_common_members); //old users to delete unset($_common_members); //free some memory //insert newly selected users in database $res1 = $this->model->assignMembers($id_fncrole, $_new_members); $res2 = $this->model->deleteMembers($id_fncrole, $_old_members); // apply enroll rules $enrollrules = new EnrollrulesAlms(); $enrollrules->applyRulesMultiLang('_LOG_USERS_TO_FNCROLE', $_new_members, false, $id_fncrole); //go back to main page, with result message Util::jump_to($back_url . '&res=' . ($res1 && $res2 ? 'ok_users' : 'err_users')); } else { //--- USER SELECTION IS IN PROGRESS: show selector ----------------------- $user_selector = new UserSelector(); $user_selector->show_user_selector = TRUE; $user_selector->show_group_selector = TRUE; $user_selector->show_orgchart_selector = TRUE; $user_selector->show_fncrole_selector = FALSE; //we can't assign functional roles to other functional roles ... //there should be a "role selector" too ... //$user_select->show_orgchart_simple_selector = TRUE; //filter selectable user by sub-admin permission $acl_man = Docebo::user()->getAclManager(); $user_selector->setUserFilter('exclude', array($acl_man->getAnonymousId())); 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_selector->setUserFilter('user', $admin_users); $user_selector->setUserFilter('group', $admin_tree); } if (Get::req('is_updating', DOTY_INT, false)) { //... } else { //set initial selection $selection = $this->model->getMembers($id_fncrole); $user_selector->requested_tab = PEOPLEVIEW_TAB; $user_selector->resetSelection($selection); } $user_selector->addFormInfo(Form::getHidden('is_updating', 'is_updating', 1) . Form::getHidden('id_fncrole', 'id_fncrole', $id_fncrole)); //draw selector $user_selector->loadSelector(Util::str_replace_once('&', '&', $jump_url), $page_title_arr, Lang::t('_ASSIGN_USERS_TO_FNCROLE', 'fncroles'), true); } }
public function add_admin() { $idst = Get::req('idst', DOTY_INT, 0); require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.userselector.php'; $user_selector = new UserSelector(); if (isset($_POST['cancelselector'])) { Util::jump_to('index.php?r=adm/adminrules/admin_manage&idst=' . $idst); } if (isset($_POST['okselector'])) { $user_selected = $user_selector->getSelection($_POST); $user_alredy_subscribed = $this->model->loadUserSelectorSelection($idst); $user_selected = array_diff($user_selected, $user_alredy_subscribed); if (count($user_selected) == 0) { Util::jump_to('index.php?r=adm/adminrules/add_admin&load=1&idst=' . $idst); } if ($this->model->saveNewAdmin($idst, $user_selected)) { Util::jump_to('index.php?r=adm/adminrules/admin_manage&idst=' . $idst . '&res=ok_ins'); } Util::jump_to('index.php?r=adm/adminrules/admin_manage&idst=' . $idst . '&res=err_ins'); } else { $user_selector->show_user_selector = TRUE; $user_selector->show_group_selector = FALSE; $user_selector->show_orgchart_selector = FALSE; if (isset($_GET['load'])) { $user_selector->requested_tab = PEOPLEVIEW_TAB; $user_alredy_subscribed = $this->model->loadUserSelectorSelection($idst); $user_selector->resetSelection($user_alredy_subscribed); } $user_selector->setUserFilter('exclude', array($this->acl_man->getAnonymousId())); $arr_idst = $this->acl_man->getGroupsIdstFromBasePath('/framework/level/admin'); $user_selector->setUserFilter('group', $arr_idst); $this->render('add_admin', array('idst' => $idst, 'user_selector' => $user_selector, 'model' => $this->model)); } }
public function users() { $id_user = Get::req('id_user', DOTY_INT, 0); require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.userselector.php'; $user_selector = new UserSelector(); if (isset($_POST['cancelselector'])) { Util::jump_to('index.php?r=adm/adminmanager/show'); } if (isset($_POST['okselector'])) { $user_selected = $user_selector->getSelection($_POST); if ($this->model->saveUsersAssociation($id_user, $user_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 { $user_selector->show_user_selector = TRUE; $user_selector->show_group_selector = TRUE; $user_selector->show_orgchart_selector = TRUE; $user_selector->show_orgchart_simple_selector = FALSE; if (isset($_GET['load'])) { $user_selector->requested_tab = PEOPLEVIEW_TAB; $old_association = $this->model->loadUserSelectorSelection($id_user); $user_selector->resetSelection($old_association); } $user_selector->setUserFilter('exclude', array($this->acl_man->getAnonymousId())); $this->render('users', array('id_user' => $id_user, 'user_selector' => $user_selector, 'model' => $this->model, 'user_alredy_subscribed' => $old_association)); } }
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 modforumaccess() { checkPerm('mod'); require_once _base_ . '/lib/lib.userselector.php'; $lang =& DoceboLanguage::createInstance('forum', 'lms'); $out =& $GLOBALS['page']; $id_forum = importVar('idForum', 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->learning_filter = 'course'; $user_select->nFields = 0; if (isset($_POST['cancelselector'])) { Util::jump_to('index.php?modname=forum&op=forum'); } if (isset($_POST['okselector'])) { $user_selected = $user_select->getSelection($_POST); $query_reader = "\r\n\t\tSELECT idMember\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_forum_access\r\n\t\tWHERE idForum = '" . $id_forum . "'"; $re_reader = sql_query($query_reader); $old_users = array(); while (list($id_user) = sql_fetch_row($re_reader)) { $old_users[] = $id_user; } $add_reader = array_diff($user_selected, $old_users); $del_reader = array_diff($old_users, $user_selected); if (is_array($add_reader)) { while (list(, $idst) = each($add_reader)) { $query_insert = "\r\n\t\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_forum_access\r\n\t\t\t\t( idForum, idMember ) VALUES\r\n\t\t\t\t( \t'" . $id_forum . "',\r\n\t\t\t\t\t'" . $idst . "' )"; sql_query($query_insert); } } if (is_array($del_reader)) { while (list(, $idst) = each($del_reader)) { $query_delete = "\r\n\t\t\t\tDELETE FROM " . $GLOBALS['prefix_lms'] . "_forum_access\r\n\t\t\t\tWHERE idForum = '" . $id_forum . "' AND idMember = '" . $idst . "'"; sql_query($query_delete); } } Util::jump_to('index.php?modname=forum&op=forum&result=ok'); } if (isset($_GET['load'])) { $query_reader = "\r\n\t\tSELECT idMember\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_forum_access\r\n\t\tWHERE idForum = '" . $id_forum . "'"; $re_reader = sql_query($query_reader); $users = array(); while (list($id_user) = sql_fetch_row($re_reader)) { $users[$id_user] = $id_user; } $user_select->resetSelection($users); } $query_forum_name = "SELECT f.title\r\n\tFROM " . $GLOBALS['prefix_lms'] . "_forum AS f\r\n\tWHERE f.idCourse = " . (int) $_SESSION['idCourse'] . "\r\n\t\tAND f.idForum = " . (int) $id_forum . " "; $row = sql_fetch_row(sql_query($query_forum_name)); $forum_name = $row[0]; $arr_idstGroup = $aclManager->getGroupsIdstFromBasePath('/lms/course/' . (int) $_SESSION['idCourse'] . '/subscribed/'); $user_select->setUserFilter('group', $arr_idstGroup); $user_select->setGroupFilter('path', '/lms/course/' . $_SESSION['idCourse'] . '/group'); cout(getTitleArea(array('index.php?modname=forum&op=forum' => $lang->def('_FORUM'), $lang->def('_FORUM_ACCESS') . ' "' . $forum_name . '" ' . $lang->def('_TO') . ''), 'forum') . '<div class="std_block">', 'content'); $user_select->loadSelector('index.php?modname=forum&op=modforumaccess&idForum=' . $id_forum, '', $lang->def('_CHOOSE_FORUM_ACCESS'), true); cout('</div>', 'content'); }
function selSendTo() { checkPerm('view'); if (isset($_GET["id_send"]) && $_GET["id_send"] > 0) { $id_send = $_GET["id_send"]; } else { die("Newsletter setup error."); } require_once _base_ . '/lib/lib.userselector.php'; $mdir = new UserSelector(); if (defined("IN_LMS")) { $mdir->learning_filter = 'course'; $mdir->show_fncrole_selector = FALSE; } 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 = Docebo::aclm()->getAllUsersFromSelection($admin_tree); $mdir->setUserFilter('user', $admin_users); $mdir->setUserFilter('group', $admin_tree); } $out =& $GLOBALS['page']; $out->setWorkingZone("content"); $lang =& DoceboLanguage::createInstance('admin_newsletter', 'framework'); $back_url = "index.php?modname=newsletter&op=selsendto&id_send=" . $id_send; if (isset($_POST['okselector'])) { $arr_selection = $mdir->getSelection($_POST); $send_to_idst = array(); foreach ($arr_selection as $idstMember) { $arr = Docebo::aclm()->getGroupAllUser($idstMember); if (is_array($arr) && count($arr) > 0) { $send_to_idst = array_merge($arr, $send_to_idst); $send_to_idst = array_unique($send_to_idst); } else { $send_to_idst[] = $idstMember; } if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) { $send_to_idst = array_intersect($send_to_idst, $admin_users); } } foreach ($send_to_idst as $key => $val) { $qtxt = "INSERT INTO " . $GLOBALS["prefix_fw"] . "_newsletter_sendto (id_send, idst, stime) "; $qtxt .= "VALUES ('" . (int) $id_send . "', '" . (int) $val . "', NOW())"; $q = sql_query($qtxt); } $qtxt = "SELECT language FROM " . $GLOBALS["prefix_fw"] . "_newsletter WHERE id='" . $id_send . "'"; $q = sql_query($qtxt); list($lang) = sql_fetch_row($q); if ($lang != _ANY_LANG_CODE) { $tot = count(Docebo::aclm()->getUsersIdstByLanguage($lang, $send_to_idst)); } else { $tot = count($send_to_idst); } $qtxt = "UPDATE " . $GLOBALS["prefix_fw"] . "_newsletter SET tot='" . $tot . "' WHERE id='{$id_send}'"; $q = sql_query($qtxt); $back_url = "index.php?modname=newsletter&op=summary&tot=" . $tot . "&id_send=" . $id_send; Util::jump_to(str_replace("&", "&", $back_url)); } else { if (isset($_POST['cancelselector'])) { $info = get_send_info($id_send); $file = $info['file']; $path = '/appCore/newsletter/'; require_once _base_ . '/lib/lib.upload.php'; if ($file != '') { sl_open_fileoperations(); sl_unlink($path . $file); sl_close_fileoperations(); } Util::jump_to('index.php?modname=newsletter&op=newsletter'); } else { if (isset($_GET['load'])) { $mdir->resetSelection(array()); } $url = "index.php?modname=newsletter&op=selsendto&id_send=" . $id_send . "&stayon=1"; $mdir->show_user_selector = TRUE; $mdir->show_group_selector = TRUE; $mdir->show_orgchart_selector = TRUE; $mdir->show_orgchart_simple_selector = false; $acl_manager =& Docebo::user()->getAclManager(); if (defined("IN_LMS")) { $id_course = (int) $_SESSION['idCourse']; $arr_idstGroup = $acl_manager->getGroupsIdstFromBasePath('/lms/course/' . $id_course . '/subscribed/'); $mdir->setUserFilter('group', $arr_idstGroup); $mdir->setGroupFilter('path', '/lms/course/' . $id_course . '/group'); $mdir->show_orgchart_selector = FALSE; } // Exclude anonymous user! $mdir->setUserFilter('exclude', array($acl_manager->getAnonymousId())); $mdir->loadSelector($url, array(Lang::t('_NEWSLETTER', 'admin_newsletter'), Lang::t('_RECIPIENTS', 'admin_newsletter')), "", 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"); } }
public function cataloguesubscribeusersTask() { require_once _adm_ . '/lib/lib.directory.php'; require_once _adm_ . '/class.module/class.directory.php'; require_once _lms_ . '/lib/lib.course.php'; require_once _lms_ . '/lib/lib.edition.php'; require_once _lms_ . '/lib/lib.date.php'; $acl_man =& Docebo::user()->getAclManager(); $edition_man = new EditionManager(); $date_man = new DateManager(); $id_catalogue = Get::req('id_catalogue', DOTY_INT, 0); $back_url = 'index.php?modname=catalogue&op=catlist&of_platform=lms'; $jump_url = 'index.php?r=' . $this->link . '/cataloguesubscribeusers'; //if we are a subadmin, check which courses/catalogues we can see $can_see_catalogue = true; if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) { require_once _base_ . '/lib/lib.preference.php'; $adminManager = new AdminPreference(); $admin_courses = $adminManager->getAdminCourse(Docebo::user()->getIdST()); $all_courses = false; if (isset($admin_courses['course'][0])) { $all_courses = true; } if (isset($admin_courses['course'][-1])) { require_once _lms_ . '/lib/lib.catalogue.php'; $cat_man = new Catalogue_Manager(); $admin_courses['catalogue'] = $cat_man->getUserAllCatalogueId(Docebo::user()->getIdSt()); if (count($admin_courses['catalogue']) == 0 && Get::sett('on_catalogue_empty', 'off') == 'on') { $all_courses = true; } } if (!isset($admin_courses['catalogue'][$id_catalogue])) { $can_see_catalogue = false; } } //invalid specified catalogue if ($id_catalogue <= 0 || !$can_see_catalogue) { $this->render('invalid', array('message' => Lang::t('_INVALID_CATALOGUE', 'subscribe'), 'back_url' => $back_url)); return; } //check if the selected catalogue has any courses $courses_list = $this->_getCatalogueCourses($id_catalogue, isset($admin_courses['course']) ? $admin_courses['course'] : false); if (count($courses_list) <= 0) { $this->render('invalid', array('message' => Lang::t('_NO_COURSES_IN_THE_CATALOGUE', 'subscribe'), 'back_url' => $back_url)); return; } $name = $this->_getCatalogueName($id_catalogue); if (isset($_POST['cancelselector'])) { //--- UNDO: return to catalogue list ------------------------------------- Util::jump_to($back_url); } elseif (isset($_POST['okselector'])) { //--- USERS SELECTION IS CONFIRMED: now select editions (if any) --------- //check user selection $_selector = new UserSelector(); $json = new Services_JSON(); $_entity_selected = $_selector->getSelection($_POST); $user_selected =& $acl_man->getAllUsersFromSelection($_entity_selected); //free some memory from garbage variables unset($_selector); unset($_entity_selected); //if no user selected, than give invalid screen if (!is_array($user_selected) || count($user_selected) <= 0) { $this->render('invalid', array('message' => Lang::t('_EMPTY_SELECTION', 'subscribe'), 'back_url' => $back_url)); return; } //extract editions info data by courses $editions_list = $edition_man->getEditionsInfoByCourses(array_keys($courses_list), true); //extract editions info data by courses $classrooms_list = $date_man->getDatesInfoByCourses(array_keys($courses_list), true); $tables = array('editions' => false, 'classrooms' => false); //check if the catalogue has editions; if any, than set the editions selector if (count($editions_list) > 0 || count($classrooms_list) > 0) { //set title $page_title_arr = array($back_url => Lang::t('_SUBSCRIBE', 'subscribe'), $name, Lang::t('_SUBSCRIBE', 'subscribe')); if (count($editions_list) > 0) { //instantiate a new table for editions selection require_once _base_ . '/lib/lib.table.php'; $tb = new Table(0, Lang::t('_CATALOGUE_SUBSCRIBE_CHOOSE_EDITIONS', 'subscribe'), Lang::t('_CATALOGUE_SUBSCRIBE_CHOOSE_EDITIONS', 'subscribe')); $head_style = array('align_center', '', 'align_center'); $head_label = array(Lang::t('_COURSE_CODE', 'course'), Lang::t('_COURSE_NAME', 'course'), Lang::t('_CLASSROOM_EDITION', 'course')); $tb->addHead($head_label, $head_style); //set table rows foreach ($editions_list as $id_course => $editions) { $line = array(); $cinfo = $courses_list[$id_course]; $line[] = $cinfo->code; $line[] = $cinfo->name; //create the dropdown with the editions for every course $_dropdown = array(); foreach ($editions as $id_edition => $ed_info) { $_line_content = ''; //print begin and end date if ($ed_info->date_begin != '') { $_line_content .= '[' . $ed_info->code . '] ' . $ed_info->name . ' ' . '(' . Format::date($ed_info->date_begin, 'date') . ' - ' . Format::date($ed_info->date_end, 'date') . ')'; } //check if the string is valid if ($_line_content == '') { //... } //add to dropdown list and sort the list alphabetically $_dropdown[$id_edition] = $_line_content; asort($_dropdown); } $line[] = Form::getInputDropdown('dropdown', 'sel_editions_' . $id_course, 'sel_editions[' . $id_course . ']', $_dropdown, false, ''); $tb->addBody($line); } $tables['editions'] = $tb; } if (count($classrooms_list) > 0) { //instantiate a new table for editions selection require_once _base_ . '/lib/lib.table.php'; $tb = new Table(0, Lang::t('_COURSE_TYPE_EDITION', 'course'), Lang::t('_CLASSROOM', 'standard')); $head_style = array('align_center', '', 'align_center'); $head_label = array(Lang::t('_COURSE_CODE', 'course'), Lang::t('_COURSE_NAME', 'course'), Lang::t('_CLASSROOM_EDITION', 'course')); $tb->addHead($head_label, $head_style); //set table rows foreach ($classrooms_list as $id_course => $classrooms) { $line = array(); $cinfo = $courses_list[$id_course]; $line[] = $cinfo->code; $line[] = $cinfo->name; //create the dropdown with the editions for every course $_dropdown = array(); foreach ($classrooms as $id_date => $cl_info) { $_line_content = ''; //print begin and end date if ($cl_info->date_begin != '') { $_line_content .= '[' . $cl_info->code . '] ' . $cl_info->name . ' ' . '(' . Format::date($cl_info->date_begin, 'date') . ' - ' . Format::date($cl_info->date_end, 'date') . ')'; } //check if the string is valid if ($_line_content == '') { //... } //add to dropdown list and sort the list alphabetically $_dropdown[$id_date] = $_line_content; asort($_dropdown); } $line[] = Form::getInputDropdown('dropdown', 'sel_classrooms_' . $id_course, 'sel_classrooms[' . $id_course . ']', $_dropdown, false, ''); $tb->addBody($line); } $tables['classrooms'] = $tb; } $this->render('catalogue_editions', array('id_catalogue' => $id_catalogue, 'page_title_arr' => $page_title_arr, 'num_users_selected' => count($user_selected), '_sel_users' => $json->encode($user_selected), 'tables' => $tables)); } else { //no editions in the catalogue's courses, call the save operation directly $data = array(); foreach ($user_selected as $user) { foreach ($courses_list as $idCourse => $course) { $data[] = array($user, $idCourse, false, false); } } $num_subscribed = $this->_subscribeUsersToCatalogue($data); Util::jump_to($back_url . '&res=' . $num_subscribed); //_operation_successful } } else { //--- USER SELECTION IS IN PROGRESS: show selector ----------------------- $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; //filter selectable user by sub-admin permission $user_select->setUserFilter('exclude', array($this->acl_man->getAnonymousId())); 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 = $this->acl_man->getAllUsersFromIdst($admin_tree); $user_select->setUserFilter('user', $admin_users); $user_select->setUserFilter('group', $admin_tree); } if (Get::req('is_updating', DOTY_INT, false)) { //... } else { $user_select->requested_tab = PEOPLEVIEW_TAB; $user_select->resetSelection(); } $page_title_arr = array($back_url => Lang::t('_SUBSCRIBE', 'subscribe'), $name, Lang::t('_SUBSCRIBE', 'subscribe')); $user_select->addFormInfo(Form::getHidden('is_updating', 'is_updating', 1) . Form::getHidden('id_catalogue', 'id_catalogue', $id_catalogue)); //$user_select->setPageTitle($page_title_arr); //$user_select->resetSelection($_SESSION['report_tempdata']['rows_filter']['users']); $user_select->loadSelector(Util::str_replace_once('&', '&', $jump_url), $page_title_arr, 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); } }
public function assign_users() { //check permissions if (!$this->permissions['associate_user']) { Util::jump_to('index.php?r=' . $this->base_link_competence . '/show'); } require_once _adm_ . '/lib/lib.directory.php'; require_once _adm_ . '/class.module/class.directory.php'; //read inputs $id_competence = Get::req('id_competence', DOTY_INT, -1); if ($id_competence <= 0) { $this->render('invalid', array('message' => $this->_getErrorMessage("invalid competence"), 'back_url' => 'index.php?r=' . $this->base_link_competence . '/show')); return; } //navigation urls $back_url = 'index.php?r=' . $this->base_link_competence . '/show_users&id=' . (int) $id_competence; $jump_url = 'index.php?r=' . $this->base_link_competence . '/assign_users&id=' . (int) $id_competence; //competence details $info = $this->model->getCompetenceInfo($id_competence); $name = $this->model->getCompetenceName($id_competence); //page_title $page_title_arr = array($back_url => Lang::t('_COMPETENCES', 'competences'), $name, Lang::t('_ASSIGN_USERS', 'competences')); if (isset($_POST['cancelselector'])) { //--- UNDO: return to catalogue list ------------------------------------- Util::jump_to($back_url); } elseif (isset($_POST['okselector'])) { //--- SAVE: users selection has been done -------------------------------- $acl_man = Docebo::user()->getAclManager(); $user_selector = new UserSelector(); $selection = $user_selector->getSelection($_POST); $users_selected =& $acl_man->getAllUsersFromIdst($selection); $competence_users = $this->model->getCompetenceUsers($id_competence, true); $users_existent = array_keys($competence_users); //retrieve newly selected users $_common_users = array_intersect($users_existent, $users_selected); $_new_users = array_diff($users_selected, $_common_users); $_old_users = array_diff($users_existent, $_common_users); unset($_common_users); //free some memory //if no users to add: check removed users (if any) then go back if (empty($_new_users)) { $res = $this->model->removeCompetenceUsers($id_competence, $_old_users, true); $message = $res ? 'ok_assign' : 'err_assign'; Util::jump_to('index.php?r=' . $this->base_link_competence . '/show_users&id=' . (int) $id_competence . '&res=' . $message); } //assign scores, if the competence type is 'score' (otherwise assign directly score 1 and go back) $type = $info->type; if ($type == 'score') { require_once _base_ . '/lib/lib.table.php'; $table = new Table(); $head_label = array(); $head_style = array(); $head_label[] = Lang::t('_USERNAME', 'standard'); $head_label[] = Lang::t('_NAME'); $head_label[] = Lang::t('_SCORE', 'competences'); $head_style[] = ''; $head_style[] = ''; $head_style[] = 'img-cell'; $table->addHead($head_label, $head_style); $user_model = new UsermanagementAdm(); $_user_data = $user_model->getUsersDetails($_new_users, true, true); $_std_score = 0; foreach ($_new_users as $id_user) { if (isset($_user_data[$id_user]) && is_object($_user_data[$id_user])) { $line = array(); $line[] = $acl_man->relativeId($_user_data[$id_user]->userid); $line[] = $_user_data[$id_user]->lastname . " " . $_user_data[$id_user]->firstname; $line[] = Form::getInputTextfield('textfield', 'assign_score_' . $id_user, 'assign_score[' . $id_user . ']', $_std_score, '', 255, ''); $table->addBody($line); } } $foot = array(); $foot[] = array('label' => '<b>' . Lang::t('_TOTAL', 'standard') . ': ' . count($_new_users) . '</b>', 'colspan' => 2); $foot[] = Form::getInputTextfield('textfield', '_score_', '_score_', $_std_score, '', 255, '') . '<br />' . Form::getButton('set_score', false, Lang::t('_SET', 'standard')) . Form::getButton('reset_score', false, Lang::t('_RESET', 'standard')); $table->addFoot($foot); $this->render('users_assign', array('id_competence' => $id_competence, 'title' => $page_title_arr, 'type' => $type, 'form_url' => 'index.php?r=' . $this->base_link_competence . '/assign_users_action', 'table' => $table, 'score_std_value' => $_std_score, 'del_selection' => implode(",", $_old_users))); } else { $data = array(); foreach ($_new_users as $id_user) { $data[$id_user] = 1; } $res1 = $this->model->assignCompetenceUsers($id_competence, $data, true); $res2 = $this->model->removeCompetenceUsers($id_competence, $_old_users, true); $message = $res1 && $res2 ? 'ok_assign' : 'err_assign'; Util::jump_to('index.php?r=' . $this->base_link_competence . '/show_users&id=' . (int) $id_competence . '&res=' . $message); } } else { //--- USER SELECTION IS IN PROGRESS: show selector ----------------------- $user_selector = new UserSelector(); $user_selector->show_user_selector = TRUE; $user_selector->show_group_selector = TRUE; $user_selector->show_orgchart_selector = TRUE; $user_selector->show_fncrole_selector = TRUE; //$user_select->show_orgchart_simple_selector = TRUE; //filter selectable user by sub-admin permission $acl_man = Docebo::user()->getAclManager(); $user_selector->setUserFilter('exclude', array($acl_man->getAnonymousId())); 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_selector->setUserFilter('user', $admin_users); $user_selector->setUserFilter('group', $admin_tree); } if (Get::req('is_updating', DOTY_INT, false)) { //... } else { //set initial selection $selection = $this->model->getCompetenceUsers($id_competence); $user_selector->requested_tab = PEOPLEVIEW_TAB; $user_selector->resetSelection($selection); } $user_selector->addFormInfo(Form::getHidden('is_updating', 'is_updating', 1) . Form::getHidden('id_competence', 'id_competence', $id_competence)); //draw selector $user_selector->loadSelector(Util::str_replace_once('&', '&', $jump_url), $page_title_arr, 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); }