function publicAdminManager_assign_tree($adminidst) { checkPerm('view'); if ($adminidst == 0) { return; } require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.userselector.php'; require_once $GLOBALS['where_framework'] . '/lib/lib.publicadminmanager.php'; $directory = new UserSelector(); $lang =& DoceboLanguage::createInstance('adminrules', 'framework'); $lang =& DoceboLanguage::createInstance('public_admin_manager', 'framework'); $aclManager = new DoceboACLManager(); $adminManager = new PublicAdminManager(); if (isset($_POST['okselector'])) { $arr_selected = $directory->getSelection($_POST); $arr_unselected = $directory->getUnselected(); foreach ($arr_unselected as $idstTree) { $adminManager->removeAdminTree($idstTree, $adminidst); } foreach ($arr_selected as $idstTree) { $adminManager->addAdminTree($idstTree, $adminidst); } Util::jump_to('index.php?modname=public_admin_manager&op=view'); } elseif (isset($_POST['cancelselector'])) { Util::jump_to('index.php?modname=public_admin_manager&op=view'); } else { if (!isset($_GET['stayon'])) { $directory->resetSelection($adminManager->getAdminTree($adminidst)); } $admin_info = $aclManager->getUser($adminidst, false); $directory->show_user_selector = FALSE; $directory->show_group_selector = TRUE; $directory->show_orgchart_selector = TRUE; $directory->show_orgchart_simple_selector = TRUE; $directory->multi_choice = TRUE; $directory->loadSelector('index.php?modname=public_admin_manager&op=assign_tree&adminidst=' . $adminidst . '&stayon=1', $lang->def('_ASSIGN_USERS', 'adminrules'), '<span class="text_bold">' . substr($admin_info[ACL_INFO_USERID], 1) . '</span>', TRUE); } }
function required() { require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.table.php'; require_once _adm_ . '/lib/lib.publicadminmanager.php'; require_once _lms_ . '/lib/lib.course.php'; require_once _lms_ . '/lib/lib.date.php'; require_once _lms_ . '/lib/lib.competences.php'; $db = DbConn::getInstance(); $lang =& DoceboLanguage::CreateInstance('public_coursepanel', 'lms'); $sel_competence = Get::req('sel_competence_req', DOTY_INT, false); $sel_course = Get::req('sel_course_req', DOTY_INT, false); $back_url = "index.php?modname=public_coursepanel&op=coursepanel&sel_competence=" . (int) $sel_competence . "&sel_course=" . (int) $sel_course; $back_ui = getBackUi($back_url, $lang->def('_BACK')); $sel_comp = Get::req('required_selector', DOTY_INT, 0); if ($sel_comp) { $id_pa = getLogUserId(); if (!$id_pa) { //... } $acl_man = new DoceboACLManager(); $admin_manager = new PublicAdminManager(); $array_users = array(); $idst_associated = $admin_manager->getAdminTree($id_pa); $array_users =& $acl_man->getAllUsersFromIdst($idst_associated); $array_users = array_unique($array_users); if (empty($array_users)) { //error: no users to deal with cout($back_ui . $lang->def('_NO_USERS') . $back_ui, 'content'); return; } cout(getTitleArea($lang->def('_REQUIRED_USERS'), 'coursepanel') . '<div class="std_block">', 'content'); $table = new Table(); $head_labels = array($lang->def('_USERNAME'), $lang->def('_NAME')); $head_style = array('', '', 'align_center', 'align_center'); $table->addHead($head_labels, $head_style); //$date = date ("Y-m-d H:i:s", strtotime("+1 months")); //$now = date("Y-m-d H:i:s"); $man_comp = new Competences_Manager(); $comp_data = $man_comp->GetCompetence($sel_comp); $already = array(); $query = "SELECT id_user, score_init, score_got FROM %lms_competence_user WHERE id_competence='" . (int) $sel_comp . "'"; $res = $db->query($query); while (list($id_user, $score_init, $score_got) = $db->fetch_row($res)) { if ($comp_data['type'] == 'score') { //if the competence assignment exists in DB, but the total score is 0, then it's considered as non-assigned if ((int) $score_init + (int) $score_got > 0) { $already[] = $id_user; } } else { $already[] = $id_user; } } $already = array_unique($already); $array_users = array_diff($array_users, $already); //get required competences not got from users $query = ""; if ($comp_data['type'] == 'score') { $query = "SELECT u.idst, u.userid, u.lastname, u.firstname FROM %lms_competence_required as cr " . " JOIN %adm_user as u ON (cr.idst = u.idst)" . " WHERE cr.idst IN (" . implode(",", $array_users) . ") AND cr.id_competence=" . (int) $sel_comp . " ORDER BY u.userid"; } else { $query = "SELECT u.idst, u.userid, u.lastname, u.firstname FROM %lms_competence_required as cr " . " JOIN %adm_user as u ON (cr.idst = u.idst) " . " WHERE cr.idst IN (" . implode(",", $array_users) . ") AND cr.id_competence=" . (int) $sel_comp . " ORDER BY u.userid"; } $res = $db->query($query); if (sql_num_rows($res) > 0) { while (list($idst, $userid, $lastname, $firstname) = $db->fetch_row($res)) { $line = array(); $line[] = $acl_man->relativeId($userid); $line[] = $lastname . " " . $firstname; $table->addBody($line); } //cout(getTitleArea($lang->def('_EXPIRING_USERS'), 'coursepanel').'<div class="std_block">', 'content'); cout($lang->def('_COMPETENCE') . ': <b>' . $comp_data['name'] . '</b>', 'content'); cout($back_ui . $table->getTable() . $back_ui, 'content'); } else { cout($back_ui . $lang->def('_NO_REQUIRED_USER') . $back_ui, 'content'); } } else { //error, no competence selected cout($back_ui . $lang->def('_NO_COMPETENCE_SELECTED') . $back_ui, 'content'); return; } }