function mycompetences(&$url) { checkPerm('view'); $html = ""; $html .= getTitleArea(Lang::t('_COMPETENCES'), 'competences'); $html .= '<div class="std_block">'; $cmodel = new CompetencesAdm(); $fmodel = new FunctionalrolesAdm(); $id_user = getLogUserId(); $ucomps = $cmodel->getUserCompetences($id_user); $rcomps = $fmodel->getUserRequiredCompetences($id_user); $ucomps_info = $cmodel->getCompetencesInfo(array_keys($ucomps)); $language = getLanguage(); $_typologies = $cmodel->getCompetenceTypologies(); $_types = $cmodel->getCompetenceTypes(); $icon_actv = '<span class="ico-sprite subs_actv"><span>' . Lang::t('_COMPETENCE_OBTAINED', 'competences') . '</span></span>'; $icon_req = '<span class="ico-sprite subs_actv"><span>' . Lang::t('_MANDATORY', 'competences') . '</span></span>'; //******************* require_once _base_ . '/lib/lib.table.php'; $table = new Table(Get::sett('visuItem'), Lang::t('_COMPETENCES'), Lang::t('_COMPETENCES')); $style_h = array('', '', 'image', 'image', 'image', 'image', 'image'); $label_h = array(Lang::t('_NAME', 'competences'), Lang::t('_TYPOLOGY', 'competences'), Lang::t('_TYPE', 'standard'), Lang::t('_SCORE', 'competences'), Lang::t('_DATE_LAST_COMPLETE', 'subscribe'), Lang::t('_COMPETENCES_REQUIRED', 'competences')); $table->addHead($label_h, $style_h); foreach ($ucomps_info as $id_competence => $cinfo) { $line = array(); $line[] = $cinfo->langs[$language]['name']; $line[] = $_typologies[$cinfo->typology]; $line[] = $_types[$cinfo->type]; $line[] = $cinfo->type == 'score' ? '<b>' . $ucomps[$id_competence]->score_got . '</b>' : $icon_actv; $line[] = Format::date($ucomps[$id_competence]->last_assign_date, 'datetime'); $line[] = array_key_exists($id_competence, $rcomps) ? $icon_req : ''; $table->addBody($line); } $html .= $table->getTable(); $html .= '</div>'; $html .= Form::openForm('beck_url', 'index.php'); $html .= Form::openButtonSpace(); $html .= Form::getButton('close', 'close', Lang::t('_CLOSE', 'standard')); $html .= Form::closeButtonSpace(); $html .= Form::closeform(); cout($html, 'content'); }
public function getUserCompetences($id_user, $fncroles = false) { if ($id_user <= 0) { return false; } $output = array(); $query = "SELECT * FROM " . $this->_getCompetencesUsersTable() . " WHERE id_user="******" AND score_got>0"; $res = $this->db->query($query); if ($res) { while ($obj = $this->db->fetch_obj($res)) { $output[$obj->id_competence] = $obj; } } //retrieve required competences too if ($fncroles) { $fmodel = new FunctionalrolesAdm(); $req = $fmodel->getUserRequiredCompetences($id_user, true); //$cinfo = $this->getCompetencesInfo(array_keys($req)); foreach ($req as $id_competence => $cdata) { if (isset($output[$id_competence])) { $output[$id_competence]->required = true; $output[$id_competence]->gap = $output[$id_competence]->score_got - $cdata->score; } else { $t = new stdClass(); $t->id_competence = $id_competence; $t->id_user = $id_user; $t->score_got = 0; $t->last_assign_date = ''; $t->required = true; $t->gap = 0 - $cdata->score; $output[$id_competence] = $t; } } } return $output; }
public function convertEntity($id_entities, $rule_type) { $entities_name = array(); if (empty($id_entities) && $rule_type != 'base') { return $entities_name; } switch ($rule_type) { case "base": foreach ($id_entities as $i => $ename) { if (isset($ename->id_entity)) { $entities_name[$ename->id_entity] = $ename->title; } } break; case "orgchart": $us_man = new UsermanagementAdm(); $folders = $us_man->getInfoFolders($id_entities); $entities_name = $folders['idst']; break; case "group": $aclman = Docebo::aclm(); $names = $aclman->getGroups($id_entities); if ($names) { foreach ($names as $group) { $entities_name[$group[ACL_INFO_IDST]] = $aclman->relativeId($group[ACL_INFO_GROUPID]); } } break; case "fncrole": $fmodel = new FunctionalrolesAdm(); $entities_name = $fmodel->getFunctionalRolesNames($id_entities); break; } return $entities_name; }
function getUserFunctionalRoles($id_user) { $fmodel = new FunctionalrolesAdm(); $roles = $fmodel->getUserFunctionalRoles($id_user, true); if (is_array($roles)) { $info = $fmodel->getFunctionalRolesInfo(array_keys($roles)); } else { $info = array(); } $output = array(); $lang_code = getLanguage(); foreach ($info as $id_fncrole => $fdata) { $obj = new stdClass(); $obj->id_fncrole = $id_fncrole; $obj->name = $fdata->langs[$lang_code]['name']; $obj->competences_obtained = $roles[$id_fncrole]->competences_obtained; $obj->competences_required = $roles[$id_fncrole]->competences_required; $output[$id_fncrole] = $obj; } return $output; }
function addUser($params) { try { $functionalrolesadm = new FunctionalrolesAdm(); $result = $functionalrolesadm->assignMembers($params["id_fncrole"], array(0 => $params["id_user"])); $enrollrules = new EnrollrulesAlms(); $enrollrules->applyRulesMultiLang('_LOG_USERS_TO_FNCROLE', array(0 => $params["id_user"]), false, $params["id_fncrole"]); $result = $params["id_user"]; } catch (Exception $e) { $result = false; } return $result; }
public function saveGroupMembers($idst, $members) { //validate parameters if ($idst <= 0) { return false; } if (is_numeric($members)) { $members = array($members); } if (!is_array($members)) { return false; } if (empty($members)) { return true; } //filter and validate members - group can't have hisself as member, members cannot be fncroles $fmodel = new FunctionalrolesAdm(); $fncroles = $fmodel->getAllFunctionalRoles(); if (!empty($fncroles)) { $members = array_diff($members, $fncroles); } //delete old members $res = $this->deleteGroupMembers($idst); if (!$res) { return false; } //write new members if (count($members) > 0) { $insert_list = array(); foreach ($members as $member) { if (is_numeric($member) && $member > 0 && $member != $idst) { $insert_list[] = '(' . (int) $idst . ', ' . (int) $member . ')'; } } if (count($insert_list) > 0) { $query = "INSERT INTO %adm_group_members (idst, idstMember) VALUES " . implode(",", $insert_list); $res = $this->db->query($query); } } return $res; }