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'); }
function getUserCompetences($id_user) { $cmodel = new CompetencesAdm(); $scores = $cmodel->getUserCompetences($id_user, true); if (is_array($scores)) { $info = $cmodel->getCompetencesInfo(array_keys($scores)); } else { $info = array(); } $output = array(); $lang_code = getLanguage(); foreach ($info as $id_competence => $cdata) { $obj = new stdClass(); $obj->id_competence = $id_competence; $obj->name = $cdata->langs[$lang_code]['name']; $obj->id_category = $cdata->id_category; $obj->typology = $cdata->typology; $obj->type = $cdata->type; $obj->score = $scores[$id_competence]->score_got; $obj->required = property_exists($scores[$id_competence], 'required') && $scores[$id_competence]->required ? true : false; $obj->gap = property_exists($scores[$id_competence], 'gap') ? (int) $scores[$id_competence]->gap : false; $output[$id_competence] = $obj; } return $output; }
public function getUserFunctionalRoles($id_user, $keys = false) { if ($id_user <= 0) { return false; } $output = array(); $cmodel = new CompetencesAdm(); //extract roles $roles = $this->getAllFunctionalRoles(true); $language = getLanguage(); //for each role: foreach ($roles as $id_fncrole => $rdata) { //check if the user has been assigned to this role $all = $this->getAllUsers($id_fncrole); if (in_array($id_user, $all)) { $obj = new stdClass(); $obj->name = $rdata->langs[$language]['name']; //extract role's required comeptences and users actual competences $f_competences = $this->getCompetences($id_fncrole); $u_competences = $cmodel->getUserCompetences($id_user); $f_cinfo = $this->getCompetencesProperties($f_competences, $id_fncrole); //compare them $obtained = 0; foreach ($f_cinfo as $id_competence => $properties) { if (array_key_exists($id_competence, $u_competences)) { //if the score obtained by the user for a given competences is more or equal //than the score required by the role, then consider th e competence obtained //and increment the counter $obtained += $u_competences[$id_competence]->score_got >= $properties->score ? 1 : 0; } } $obj->competences_obtained = (int) $obtained; $obj->competences_required = count($f_competences); if ($keys) { $output[$id_fncrole] = $obj; } else { $output[] = $obj; } } } return $output; }