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 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); } } }
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); } } }