Beispiel #1
0
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;
 }