Example #1
0
 function certificat_pourcentage($liste_code, $ref_referentiel)
 {
     // retourne les pourcentages par competence
     $separateur1 = '/';
     $separateur2 = ':';
     global $OK_REFERENTIEL_DATA;
     global $t_domaine;
     global $t_domaine_coeff;
     // COMPETENCES
     global $t_competence;
     global $t_competence_coeff;
     // ITEMS
     global $t_item_code;
     global $t_item_coeff;
     // coefficient poids determine par le modele de calcul (soit poids soit poids / empreinte)
     global $t_item_domaine;
     // index du domaine associé à un item
     global $t_item_competence;
     // index de la competence associée à un item
     global $t_item_poids;
     // poids
     global $t_item_empreinte;
     global $t_nb_item_domaine;
     global $t_nb_item_competence;
     $t_certif_item_valeur = array();
     // table des nombres d'items valides
     $t_certif_item_coeff = array();
     // somme des poids du domaine
     $t_certif_competence_poids = array();
     // somme des poids de la competence
     $t_certif_domaine_poids = array();
     // poids certifies
     for ($i = 0; $i < count($t_item_code); $i++) {
         $t_certif_item_valeur[$i] = 0.0;
         $t_certif_item_coeff[$i] = 0.0;
     }
     for ($i = 0; $i < count($t_competence); $i++) {
         $t_certif_competence_poids[$i] = 0.0;
     }
     for ($i = 0; $i < count($t_domaine); $i++) {
         $t_certif_domaine_poids[$i] = 0.0;
     }
     // affichage
     $s = '';
     // donnees globales du referentiel
     if ($ref_referentiel) {
         if (!isset($OK_REFERENTIEL_DATA) || $OK_REFERENTIEL_DATA == false) {
             $OK_REFERENTIEL_DATA = referentiel_initialise_data_referentiel($ref_referentiel);
         }
         if (isset($OK_REFERENTIEL_DATA) && $OK_REFERENTIEL_DATA == true) {
             // DEBUG
             // echo "<br />CODE <br />\n";
             // referentiel_affiche_data_referentiel($ref_referentiel, $params);
             // recuperer les items valides
             $tc = array();
             $liste_code = referentiel_purge_dernier_separateur($liste_code, $separateur1);
             // DEBUG
             // echo "<br />DEBUG :: print_lib_certificat.php :: 917 :: LISTE : $liste_code<br />\n";
             if (!empty($liste_code) && $separateur1 != "" && $separateur2 != "") {
                 $tc = explode($separateur1, $liste_code);
                 for ($i = 0; $i < count($t_item_domaine); $i++) {
                     $t_certif_domaine_poids[$i] = 0.0;
                 }
                 for ($i = 0; $i < count($t_item_competence); $i++) {
                     $t_certif_competence_poids[$i] = 0.0;
                 }
                 $i = 0;
                 while ($i < count($tc)) {
                     $t_cc = explode($separateur2, $tc[$i]);
                     // tableau des items valides
                     if (isset($t_cc[1])) {
                         if (isset($t_item_poids[$i]) && isset($t_item_empreinte[$i])) {
                             if ($t_item_poids[$i] > 0 && $t_item_empreinte[$i] > 0) {
                                 // echo "<br />".min($t_cc[1],$t_item_empreinte[$i]);
                                 $t_certif_item_valeur[$i] = min($t_cc[1], $t_item_empreinte[$i]);
                                 // calculer le taux
                                 $coeff = (double) $t_certif_item_valeur[$i] * (double) $t_item_coeff[$i];
                                 // stocker la valeur pour l'item
                                 $t_certif_item_coeff[$i] = $coeff;
                                 // stocker le taux pour la competence
                                 $t_certif_domaine_poids[$t_item_domaine[$i]] += $coeff;
                                 // stocker le taux pour le domaine
                                 $t_certif_competence_poids[$t_item_competence[$i]] += $coeff;
                             } else {
                                 // echo "<br />".min($t_cc[1],$t_item_empreinte[$i]);
                                 $t_certif_item_valeur[$i] = 0.0;
                                 $t_certif_item_coeff[$i] = 0.0;
                                 // $t_certif_domaine_poids[$t_item_domaine[$i]]+=0.0;
                                 // $t_certif_competence_poids[$t_item_competence[$i]]+=0.0;
                             }
                         }
                     }
                     $i++;
                 }
                 /*
                         	for ($i=0; $i<count($t_domaine_coeff); $i++){
                 				if ($t_domaine_coeff[$i]){
                 					$s.=$t_domaine[$i].';';
                 				}
                 				else{
                 					$s.=$t_domaine[$i].';';
                 				}
                 			}
                 			$s.="\n";
                 */
                 $s .= "<domaines>\n";
                 for ($i = 0; $i < count($t_domaine_coeff); $i++) {
                     $s .= '<domaine code="' . $t_domaine[$i] . '" pourcent=';
                     if ($t_domaine_coeff[$i]) {
                         $s .= '"' . referentiel_pourcentage($t_certif_domaine_poids[$i], $t_domaine_coeff[$i]) . '%" ';
                     } else {
                         $s .= '"0%" ';
                     }
                     $s .= "/>\n";
                 }
                 $s .= "</domaines>\n";
                 /*
                 for ($i=0; $i<count($t_competence); $i++){
                 		$s.=$t_competence[$i].';';
                 }
                 $s.="\n";
                 */
                 $s .= "<competences>\n";
                 for ($i = 0; $i < count($t_competence); $i++) {
                     $s .= '<competence code="' . $t_competence[$i] . '" pourcent=';
                     if ($t_competence_coeff[$i]) {
                         $s .= '"' . referentiel_pourcentage($t_certif_competence_poids[$i], $t_competence_coeff[$i]) . '%" ';
                     } else {
                         $s .= '"0%" ';
                     }
                     $s .= "/>\n";
                 }
                 $s .= "</competences>\n";
                 // ITEMS
                 /*
                 			for ($i=0; $i<count($t_item_code); $i++){
                 				if ($t_item_empreinte[$i]){
                 					if ($t_certif_item_valeur[$i]>=$t_item_empreinte[$i])
                 						$s.=$t_item_code[$i].';';
                 					else
                 						$s.=$t_item_code[$i].';';
                 				}
                 				else{
                 					$s.=';';
                 				}
                 			}
                 			$s.="\n";
                 */
                 $s .= "<items>\n";
                 for ($i = 0; $i < count($t_item_coeff); $i++) {
                     if ($t_item_empreinte[$i]) {
                         $s .= '<item code="' . $t_item_code[$i] . '" pourcent=';
                         if ($t_certif_item_valeur[$i] >= $t_item_empreinte[$i]) {
                             $s .= '"100%" ';
                         } else {
                             $s .= '"' . referentiel_pourcentage($t_certif_item_valeur[$i], $t_item_empreinte[$i]) . '%" ';
                         }
                         $s .= "/>\n";
                     }
                 }
                 $s .= "</items>\n";
             }
         }
     }
     return $s;
 }
function ooffice_referentiel_affiche_certificat_consolide($ref_referentiel, $separateur1, $separateur2, $liste_code, $font1 = 10, $font2 = 9, $font3 = 8, $params = NULL)
{
    // ce certificat comporte des pourcentages par domaine et competence
    // decalque de referentiel_affiche_certificat_consolide() de lib.php
    global $odt;
    global $OK_REFERENTIEL_DATA;
    global $t_domaine;
    global $t_domaine_coeff;
    // COMPETENCES
    global $t_competence;
    global $t_competence_coeff;
    // ITEMS
    global $t_item_code;
    global $t_item_coeff;
    // coefficient poids determeine par le modele de calcul (soit poids soit poids / empreinte)
    global $t_item_domaine;
    // index du domaine associ� � un item
    global $t_item_competence;
    // index de la competence associ�e � un item
    global $t_item_poids;
    // poids
    global $t_item_empreinte;
    global $t_nb_item_domaine;
    global $t_nb_item_competence;
    // nom des domaines, comp�tences, items
    $label_d = "";
    $label_c = "";
    $label_i = "";
    if (isset($params) && !empty($params)) {
        if (isset($params->label_domaine)) {
            $label_d = $params->label_domaine;
        }
        if (isset($params->label_competence)) {
            $label_c = $params->label_competence;
        }
        if (isset($params->label_item)) {
            $label_i = $params->label_item;
        }
    }
    $t_certif_item_valeur = array();
    // table des nombres d'items valides
    $t_certif_item_coeff = array();
    // somme des poids du domaine
    $t_certif_competence_poids = array();
    // somme des poids de la competence
    $t_certif_domaine_poids = array();
    // poids certifies
    for ($i = 0; $i < count($t_item_code); $i++) {
        $t_certif_item_valeur[$i] = 0.0;
        $t_certif_item_coeff[$i] = 0.0;
    }
    for ($i = 0; $i < count($t_competence); $i++) {
        $t_certif_competence_poids[$i] = 0.0;
    }
    for ($i = 0; $i < count($t_domaine); $i++) {
        $t_certif_domaine_poids[$i] = 0.0;
    }
    // affichage
    $s = '';
    // donnees globales du referentiel
    if ($ref_referentiel) {
        if (!isset($OK_REFERENTIEL_DATA) || $OK_REFERENTIEL_DATA == false) {
            $OK_REFERENTIEL_DATA = referentiel_initialise_data_referentiel($ref_referentiel);
        }
        if (isset($OK_REFERENTIEL_DATA) && $OK_REFERENTIEL_DATA == true) {
            // recuperer les items valides
            $tc = array();
            $liste_code = referentiel_purge_dernier_separateur($liste_code, $separateur1);
            if (!empty($liste_code) && $separateur1 != "" && $separateur2 != "") {
                $tc = explode($separateur1, $liste_code);
                for ($i = 0; $i < count($t_item_domaine); $i++) {
                    $t_certif_domaine_poids[$i] = 0.0;
                }
                for ($i = 0; $i < count($t_item_competence); $i++) {
                    $t_certif_competence_poids[$i] = 0.0;
                }
                $i = 0;
                while ($i < count($tc)) {
                    $t_cc = explode($separateur2, $tc[$i]);
                    // tableau des items valides
                    if (isset($t_cc[1])) {
                        if (isset($t_item_poids[$i]) && isset($t_item_empreinte[$i])) {
                            if ($t_item_poids[$i] > 0 && $t_item_empreinte[$i] > 0) {
                                // echo "<br />".min($t_cc[1],$t_item_empreinte[$i]);
                                $t_certif_item_valeur[$i] = min($t_cc[1], $t_item_empreinte[$i]);
                                // calculer le taux
                                $coeff = (double) $t_certif_item_valeur[$i] * (double) $t_item_coeff[$i];
                                // stocker la valeur pour l'item
                                $t_certif_item_coeff[$i] = $coeff;
                                // stocker le taux pour la competence
                                $t_certif_domaine_poids[$t_item_domaine[$i]] += $coeff;
                                // stocker le taux pour le domaine
                                $t_certif_competence_poids[$t_item_competence[$i]] += $coeff;
                            } else {
                                // echo "<br />".min($t_cc[1],$t_item_empreinte[$i]);
                                $t_certif_item_valeur[$i] = 0.0;
                                $t_certif_item_coeff[$i] = 0.0;
                                // $t_certif_domaine_poids[$t_item_domaine[$i]]+=0.0;
                                // $t_certif_competence_poids[$t_item_competence[$i]]+=0.0;
                            }
                        }
                    }
                    $i++;
                }
                // Affichage
                // DOMAINES
                $odt->SetFont('Arial', 'B', $font1);
                $odt->Write(1, recode_utf8_vers_latin1(get_string('domaine', 'referentiel')));
                $odt->Ln(1);
                $nd = count($t_domaine_coeff);
                $espaced = 40 / $nd;
                // $s.= '<table width="100%" cellspacing="0" cellpadding="2"><tr valign="top" >'."\n";
                for ($i = 0; $i < $nd; $i++) {
                    if ($t_domaine_coeff[$i]) {
                        // $s.='<td  align="center" colspan="'.$t_nb_item_domaine[$i].'"><b>'.$t_domaine[$i].'</b> ('.referentiel_pourcentage($t_certif_domaine_poids[$i], $t_domaine_coeff[$i]).'%)</td>';
                        $odt->SetFont('Arial', '', $font2);
                        for ($j = 0; $j < $espaced; $j++) {
                            $odt->Write(1, " ");
                        }
                        $odt->SetFont('Arial', 'B', $font2);
                        $odt->Write(1, $t_domaine[$i]);
                        $odt->SetFont('Arial', '', $font3);
                        $odt->Write(1, " (" . referentiel_pourcentage($t_certif_domaine_poids[$i], $t_domaine_coeff[$i]) . "%) ");
                    } else {
                        // $s.='<td  align="center" colspan="'.$t_nb_item_domaine[$i].'"><b>'.$t_domaine[$i].'</b> (0%)</td>';
                        $odt->SetFont('Arial', '', $font2);
                        for ($j = 0; $j < $espaced; $j++) {
                            $odt->Write(1, "   ");
                        }
                        $odt->SetFont('Arial', 'B', $font2);
                        $odt->Write(1, $t_domaine[$i]);
                        $odt->SetFont('Arial', '', $font3);
                        $odt->Write(1, " (0%) ");
                    }
                }
                //$s.='</tr>'."\n";
                $odt->Ln(1);
                $odt->SetFont('Arial', 'B', $font1);
                $odt->Write(1, recode_utf8_vers_latin1(get_string('competence', 'referentiel')));
                $odt->Ln(1);
                $nc = count($t_competence);
                $espacec = 40 / $nc;
                // $s.=  '<tr valign="top"  >'."\n";
                for ($i = 0; $i < $nc; $i++) {
                    if ($t_competence_coeff[$i]) {
                        // $s.='<td align="center" colspan="'.$t_nb_item_competence[$i].'"><b>'.$t_competence[$i].'</b> ('.referentiel_pourcentage($t_certif_competence_poids[$i], $t_competence_coeff[$i]).'%)</td>'."\n";
                        $odt->SetFont('Arial', '', $font2);
                        for ($j = 0; $j < $espacec; $j++) {
                            $odt->Write(1, " ");
                        }
                        $odt->SetFont('Arial', 'B', $font2);
                        $odt->Write(1, $t_competence[$i]);
                        $odt->SetFont('Arial', '', $font3);
                        $odt->Write(1, " (" . referentiel_pourcentage($t_certif_competence_poids[$i], $t_competence_coeff[$i]) . "%) ");
                    } else {
                        // $s.='<td align="center" colspan="'.$t_nb_item_competence[$i].'"><b>'.$t_competence[$i].'</b> (0%)</td>'."\n";
                        $odt->SetFont('Arial', '', $font2);
                        for ($j = 0; $j < $espacec; $j++) {
                            $odt->Write(1, " ");
                        }
                        $odt->SetFont('Arial', 'B', $font2);
                        $odt->Write(1, $t_competence[$i]);
                        $odt->SetFont('Arial', '', $font3);
                        $odt->Write(1, " (0%) ");
                    }
                }
                // $s.='</tr>'."\n";
                $odt->Ln(1);
                // ITEMS
                $odt->SetFont('Arial', 'B', $font1);
                $odt->Write(1, recode_utf8_vers_latin1(get_string('item', 'referentiel')));
                $odt->Ln(1);
                // $s.= '<tr valign="top" >'."\n";
                for ($i = 0; $i < count($t_item_code); $i++) {
                    if ($t_item_empreinte[$i]) {
                        if ($t_certif_item_valeur[$i] >= $t_item_empreinte[$i]) {
                            // $s.='<td'.$bgcolor.'><span  class="valide">'.$t_item_code[$i].'</span></td>'."\n";
                            $odt->SetFont('Arial', 'B', $font2);
                            $odt->Write(1, $t_item_code[$i] . " ");
                        } else {
                            // $s.='<td'.$bgcolor.'><span class="invalide">'.$t_item_code[$i].'</span></td>'."\n";
                            $odt->SetFont('Arial', '', $font2);
                            $odt->Write(1, $t_item_code[$i] . " ");
                        }
                        if ($t_certif_item_valeur[$i] >= $t_item_empreinte[$i]) {
                            // $s.='<td'.$bgcolor.'><span class="valide">100%</span></td>'."\n";
                            $odt->SetFont('Arial', 'B', $font3);
                            $odt->Write(1, "(100%) ");
                        } else {
                            // $s.='<td'.$bgcolor.'><span class="invalide">'.referentiel_pourcentage($t_certif_item_valeur[$i], $t_item_empreinte[$i]).'%</span></td>'."\n";
                            $odt->SetFont('Arial', '', $font3);
                            $odt->Write(1, "(" . referentiel_pourcentage($t_certif_item_valeur[$i], $t_item_empreinte[$i]) . "%) ");
                        }
                    } else {
                        // $s.='<td class="nondefini"><span class="nondefini"><i>'.$t_item_code[$i].'</i></span></td>'."\n";
                        $odt->SetFont('Arial', 'I', $font2);
                        $odt->Write(1, $t_item_code[$i] . " ");
                    }
                }
                // $s.='</tr><tr valign="top" >'."\n";
                $odt->Ln(1);
                /*
                      // <td  width="5%">'.get_string('coeff','referentiel').'</td>'."\n";
                			for ($i=0; $i<count($t_item_coeff); $i++){
                				if ($t_item_empreinte[$i]){
                					if ($t_certif_item_valeur[$i]>=$t_item_empreinte[$i]){
                						// $s.='<td'.$bgcolor.'><span class="valide">100%</span></td>'."\n";
                				    $odt->SetFont('Arial','B',$font1);
                            $odt->Write(1,"   100% ");				
                					}
                					else{
                						// $s.='<td'.$bgcolor.'><span class="invalide">'.referentiel_pourcentage($t_certif_item_valeur[$i], $t_item_empreinte[$i]).'%</span></td>'."\n";
                				    $odt->SetFont('Arial','',$font1);
                            $odt->Write(1,"    ".referentiel_pourcentage($t_certif_item_valeur[$i], $t_item_empreinte[$i])." ");				
                					}
                				}
                				else {
                					// $s.='<td class="nondefini"><span class="nondefini">&nbsp;</span></td>'."\n";
                				}
                			}
                			// $s.='</tr></table>'."\n";
                */
                $odt->Ln(1);
            }
        }
    }
    return $s;
}
Example #3
0
 function affiche_certificat_consolide($separateur1, $separateur2, $liste_code, $ref_referentiel, $bgcolor, $params = NULL)
 {
     // ce certificat comporte des pourcentages par domaine et competence
     global $OK_REFERENTIEL_DATA;
     global $t_domaine;
     global $t_domaine_coeff;
     // COMPETENCES
     global $t_competence;
     global $t_competence_coeff;
     // ITEMS
     global $t_item_code;
     global $t_item_coeff;
     // coefficient poids determeine par le modele de calcul (soit poids soit poids / empreinte)
     global $t_item_domaine;
     // index du domaine associ� � un item
     global $t_item_competence;
     // index de la competence associ�e � un item
     global $t_item_poids;
     // poids
     global $t_item_empreinte;
     global $t_nb_item_domaine;
     global $t_nb_item_competence;
     // nom des domaines, comp�tences, items
     $label_d = "";
     $label_c = "";
     $label_i = "";
     if (isset($params) && !empty($params)) {
         if (isset($params->label_domaine)) {
             $label_d = $params->label_domaine;
         }
         if (isset($params->label_competence)) {
             $label_c = $params->label_competence;
         }
         if (isset($params->label_item)) {
             $label_i = $params->label_item;
         }
     }
     $t_certif_item_valeur = array();
     // table des nombres d'items valides
     $t_certif_item_coeff = array();
     // somme des poids du domaine
     $t_certif_competence_poids = array();
     // somme des poids de la competence
     $t_certif_domaine_poids = array();
     // poids certifies
     for ($i = 0; $i < count($t_item_code); $i++) {
         $t_certif_item_valeur[$i] = 0.0;
         $t_certif_item_coeff[$i] = 0.0;
     }
     for ($i = 0; $i < count($t_competence); $i++) {
         $t_certif_competence_poids[$i] = 0.0;
     }
     for ($i = 0; $i < count($t_domaine); $i++) {
         $t_certif_domaine_poids[$i] = 0.0;
     }
     // affichage
     $s = '';
     // donnees globales du referentiel
     if ($ref_referentiel) {
         if (!isset($OK_REFERENTIEL_DATA) || $OK_REFERENTIEL_DATA == false) {
             $OK_REFERENTIEL_DATA = referentiel_initialise_data_referentiel($ref_referentiel);
         }
         if (isset($OK_REFERENTIEL_DATA) && $OK_REFERENTIEL_DATA == true) {
             // DEBUG
             // echo "<br />CODE <br />\n";
             // referentiel_affiche_data_referentiel($ref_referentiel, $params);
             // recuperer les items valides
             $tc = array();
             $liste_code = referentiel_purge_dernier_separateur($liste_code, $separateur1);
             // DEBUG
             // echo "<br />DEBUG :: print_lib_certificat.php :: 917 :: LISTE : $liste_code<br />\n";
             if (!empty($liste_code) && $separateur1 != "" && $separateur2 != "") {
                 $tc = explode($separateur1, $liste_code);
                 // DEBUG
                 /*
                 echo "<br />DEBUG print_lib_certificat_.php :: Ligne 1090 <br />LISTE DECOMPOSEE CODE :: $liste_code<br />\n";
                 print_r($tc);
                 echo "<br />POIDS<br />\n";
                 print_r($t_item_poids);
                 echo "<br />EMPREINTES<br />\n";
                 print_r($t_item_empreinte);
                 echo "<br /><br />\n";
                 
                 echo "<br />INNDEX DOMAINES<br />\n";
                 print_r($t_item_domaine);
                 echo "<br />INDEX COMPETENCE<br />\n";
                 print_r($t_item_competence);
                 // exit;
                 */
                 for ($i = 0; $i < count($t_item_domaine); $i++) {
                     $t_certif_domaine_poids[$i] = 0.0;
                 }
                 for ($i = 0; $i < count($t_item_competence); $i++) {
                     $t_certif_competence_poids[$i] = 0.0;
                 }
                 $i = 0;
                 while ($i < count($tc)) {
                     // CODE1:N1
                     // DEBUG
                     // echo "<br />".$tc[$i]." <br />\n";
                     // exit;
                     $t_cc = explode($separateur2, $tc[$i]);
                     // tableau des items valides
                     // print_r($t_cc);
                     // echo "<br />\n";
                     // exit;
                     if (isset($t_cc[1])) {
                         if (isset($t_item_poids[$i]) && isset($t_item_empreinte[$i])) {
                             if ($t_item_poids[$i] > 0 && $t_item_empreinte[$i] > 0) {
                                 // echo "<br />".min($t_cc[1],$t_item_empreinte[$i]);
                                 $t_certif_item_valeur[$i] = min($t_cc[1], $t_item_empreinte[$i]);
                                 // calculer le taux
                                 $coeff = (double) $t_certif_item_valeur[$i] * (double) $t_item_coeff[$i];
                                 // stocker la valeur pour l'item
                                 $t_certif_item_coeff[$i] = $coeff;
                                 // stocker le taux pour la competence
                                 $t_certif_domaine_poids[$t_item_domaine[$i]] += $coeff;
                                 // stocker le taux pour le domaine
                                 $t_certif_competence_poids[$t_item_competence[$i]] += $coeff;
                             } else {
                                 // echo "<br />".min($t_cc[1],$t_item_empreinte[$i]);
                                 $t_certif_item_valeur[$i] = 0.0;
                                 $t_certif_item_coeff[$i] = 0.0;
                                 // $t_certif_domaine_poids[$t_item_domaine[$i]]+=0.0;
                                 // $t_certif_competence_poids[$t_item_competence[$i]]+=0.0;
                             }
                         }
                     }
                     $i++;
                 }
                 // DEBUG
                 /*
                 echo "<br />DEBUG :: Ligne :: 1107<br />\n";
                 echo "<br />Liste des items valides <br />\n";
                 print_r($t_certif_item_valeur);
                 echo "<br />Taux : poids / empreinte<br />\n";
                 print_r($t_certif_item_coeff);
                 echo "<br /><br />\n";
                 print_r($t_certif_domaine_poids);
                 echo "<br /><br />\n";
                 print_r($t_certif_competence_poids);
                 exit;
                 */
                 // DOMAINES
                 // $s.= '<table width="100%" cellspacing="0" cellpadding="2"><tr valign="top" >'."\n";
                 // if (!empty($label_d)){
                 //	$s.='<td  width="5%">'.$label_d.'</td>';
                 //}
                 // else {
                 //	$s.='<td $t_certif_item_coeff width="5%">'.get_string('domaine','referentiel').'</td>';
                 //}
                 for ($i = 0; $i < count($t_domaine_coeff); $i++) {
                     if ($t_domaine_coeff[$i]) {
                         $s .= $t_domaine[$i] . ';';
                     } else {
                         $s .= $t_domaine[$i] . ';';
                     }
                 }
                 $s .= "\n";
                 for ($i = 0; $i < count($t_domaine_coeff); $i++) {
                     if ($t_domaine_coeff[$i]) {
                         $s .= referentiel_pourcentage($t_certif_domaine_poids[$i], $t_domaine_coeff[$i]) . '%;';
                     } else {
                         $s .= '0%;';
                     }
                 }
                 $s .= "\n";
                 /*
                 if (!empty($label_c)){
                 	$s.='<td  width="5%">'.$label_c.'</td>'."\n";
                 }
                 else {
                 	$s.='<td  width="5%">'.get_string('competence','referentiel').'</td>'."\n";
                 }
                 */
                 for ($i = 0; $i < count($t_competence); $i++) {
                     if ($t_competence_coeff[$i]) {
                         $s .= $t_competence[$i] . ';';
                     } else {
                         $s .= $t_competence[$i] . ';';
                     }
                 }
                 $s .= "\n";
                 for ($i = 0; $i < count($t_competence); $i++) {
                     if ($t_competence_coeff[$i]) {
                         $s .= referentiel_pourcentage($t_certif_competence_poids[$i], $t_competence_coeff[$i]) . '%;';
                     } else {
                         $s .= '0%;';
                     }
                 }
                 $s .= "\n";
                 // ITEMS
                 // $s.= '<tr valign="top" >'."\n";
                 /*
                 if (!empty($label_i)){
                 	$s.='<td  width="5%">'.$label_i.'</td>'."\n";
                 }
                 else {
                 	$s.='<td  width="5%">'.get_string('item','referentiel').'</td>'."\n";
                 }
                 */
                 for ($i = 0; $i < count($t_item_code); $i++) {
                     if ($t_item_empreinte[$i]) {
                         if ($t_certif_item_valeur[$i] >= $t_item_empreinte[$i]) {
                             $s .= $t_item_code[$i] . ';';
                         } else {
                             $s .= $t_item_code[$i] . ';';
                         }
                     } else {
                         $s .= ';';
                     }
                 }
                 $s .= "\n";
                 // <td  width="5%">'.get_string('coeff','referentiel').'</td>'."\n";
                 for ($i = 0; $i < count($t_item_coeff); $i++) {
                     if ($t_item_empreinte[$i]) {
                         if ($t_certif_item_valeur[$i] >= $t_item_empreinte[$i]) {
                             $s .= '100%;';
                         } else {
                             $s .= referentiel_pourcentage($t_certif_item_valeur[$i], $t_item_empreinte[$i]) . '%;';
                         }
                     } else {
                         $s .= ';';
                     }
                 }
                 $s .= "\n";
                 /* 
                 			$s.='</tr><tr valign="top">'."\n";
                 			$s.='<td  width="5%">'.get_string('item_poids','referentiel').'</td>';
                 			for ($i=0; $i<count($t_item_poids); $i++){
                 				$s.='<td >'.$t_item_poids[$i].'</td>';
                 			}
                 			$s.='</tr><tr valign="top">'."\n";
                 			$s.='<td  width="5%">'.get_string('item_empreinte','referentiel').'</td>';		
                 			for ($i=0; $i<count($t_item_empreinte); $i++){
                 				$s.='<td >'.$t_item_empreinte[$i].'</td>';
                 			}
                 */
                 $s .= "\n";
             }
         }
     }
     return $s;
 }
Example #4
0
function referentiel_retourne_certificat_consolide($separateur1, $separateur2, $liste_code, $ref_referentiel, $bgcolor, $params = NULL)
{
    // ce certificat comporte des pourcentages par domaine et competence
    // affichage sous forme de tableau et span pour les items
    // input liste_code
    // A.1-1:0/A.1-2:0/A.1-3:1/A.1-4:0/A.1-5:0/A.2-1:0/A.2-2:0/A.2-3:0/A.3-1:0/A.3-2:1/A.3-3:1/A.3-4:1/B.1-1:0/B.1-2:0/B.1-3:0/B.2-1:0/B.2-2:0/B.2-3:0/B.2-4:0/B.2-5:0/B.3-1:0/B.3-2:0/B.3-3:0/B.3-4:0/B.3-5:0/B.4-1:0/B.4-2:0/B.4-3:0/
    global $OK_REFERENTIEL_DATA;
    global $t_domaine;
    global $t_domaine_coeff;
    // COMPETENCES
    global $t_competence;
    global $t_competence_coeff;
    // ITEMS
    global $t_item_code;
    global $t_item_coeff;
    // coefficient poids determine par le modele de calcul (soit poids soit poids / empreinte)
    global $t_item_domaine;
    // index du domaine associe a un item
    global $t_item_competence;
    // index de la competence associee a un item
    global $t_item_poids;
    // poids
    global $t_item_empreinte;
    global $t_nb_item_domaine;
    global $t_nb_item_competence;
    $s = '';
    // nom des domaines, competences, items
    $label_d = "";
    $label_c = "";
    $label_i = "";
    if (isset($params) && !empty($params)) {
        if (isset($params->label_domaine)) {
            $label_d = $params->label_domaine;
        }
        if (isset($params->label_competence)) {
            $label_c = $params->label_competence;
        }
        if (isset($params->label_item)) {
            $label_i = $params->label_item;
        }
    }
    $t_certif_item_valeur = array();
    // table des nombres d'items valides
    $t_certif_item_coeff = array();
    // somme des poids du domaine
    $t_certif_competence_poids = array();
    // somme des poids de la competence
    $t_certif_domaine_poids = array();
    // poids certifies
    // affichage
    // donnees globales du referentiel
    if ($ref_referentiel) {
        if (!isset($OK_REFERENTIEL_DATA) || $OK_REFERENTIEL_DATA == false) {
            $OK_REFERENTIEL_DATA = referentiel_initialise_data_referentiel($ref_referentiel);
        }
        if (isset($OK_REFERENTIEL_DATA) && $OK_REFERENTIEL_DATA == true) {
            for ($i = 0; $i < count($t_item_code); $i++) {
                $t_certif_item_valeur[$i] = 0.0;
                $t_certif_item_coeff[$i] = 0.0;
            }
            for ($i = 0; $i < count($t_competence); $i++) {
                $t_certif_competence_poids[$i] = 0.0;
            }
            for ($i = 0; $i < count($t_domaine); $i++) {
                $t_certif_domaine_poids[$i] = 0.0;
            }
            // DEBUG
            // echo "<br />CODE <br />\n";
            // referentiel_affiche_data_referentiel($ref_referentiel, $params);
            // recuperer les items valides
            $tc = array();
            $liste_code = referentiel_purge_dernier_separateur($liste_code, $separateur1);
            // DEBUG
            // echo "<br />DEBUG :: print_lib_certificat.php :: 917 :: LISTE : $liste_code<br />\n";
            if (!empty($liste_code) && $separateur1 != "" && $separateur2 != "") {
                $tc = explode($separateur1, $liste_code);
                // DEBUG
                for ($i = 0; $i < count($t_item_domaine); $i++) {
                    $t_certif_domaine_poids[$i] = 0.0;
                }
                for ($i = 0; $i < count($t_item_competence); $i++) {
                    $t_certif_competence_poids[$i] = 0.0;
                }
                $i = 0;
                while ($i < count($tc)) {
                    // CODE1:N1
                    // DEBUG
                    // echo "<br />".$tc[$i]." <br />\n";
                    // exit;
                    $t_cc = explode($separateur2, $tc[$i]);
                    // tableau des items valides
                    // print_r($t_cc);
                    // echo "<br />\n";
                    // exit;
                    if (isset($t_cc[1])) {
                        if (isset($t_item_poids[$i]) && isset($t_item_empreinte[$i])) {
                            if ($t_item_poids[$i] > 0 && $t_item_empreinte[$i] > 0) {
                                // echo "<br />".min($t_cc[1],$t_item_empreinte[$i]);
                                $t_certif_item_valeur[$i] = min($t_cc[1], $t_item_empreinte[$i]);
                                // calculer le taux
                                $coeff = (double) $t_certif_item_valeur[$i] * (double) $t_item_coeff[$i];
                                // stocker la valeur pour l'item
                                $t_certif_item_coeff[$i] = $coeff;
                                // stocker le taux pour la competence
                                $t_certif_domaine_poids[$t_item_domaine[$i]] += $coeff;
                                // stocker le taux pour le domaine
                                $t_certif_competence_poids[$t_item_competence[$i]] += $coeff;
                            } else {
                                // echo "<br />".min($t_cc[1],$t_item_empreinte[$i]);
                                $t_certif_item_valeur[$i] = 0.0;
                                $t_certif_item_coeff[$i] = 0.0;
                                // $t_certif_domaine_poids[$t_item_domaine[$i]]+=0.0;
                                // $t_certif_competence_poids[$t_item_competence[$i]]+=0.0;
                            }
                        }
                    }
                    $i++;
                }
                // DEBUG
                $nlen = strlen($liste_code);
                if ($nlen <= MAXLENCODE) {
                    // sous forme de tableau
                    // DOMAINES
                    $s .= '<table width="100%" cellspacing="0" cellpadding="2"><tr valign="top" >' . "\n";
                    // if (!empty($label_d)){
                    //	$s.='<td  width="5%">'.$label_d.'</td>';
                    //}
                    //  else {
                    //	$s.='<td $t_certif_item_coeff width="5%">'.get_string('domaine','referentiel').'</td>';
                    //}
                    for ($i = 0; $i < count($t_domaine_coeff); $i++) {
                        if ($t_domaine_coeff[$i]) {
                            $s .= '<td  align="center" colspan="' . $t_nb_item_domaine[$i] . '"><b>' . $t_domaine[$i] . '</b> (' . referentiel_pourcentage($t_certif_domaine_poids[$i], $t_domaine_coeff[$i]) . '%)</td>';
                        } else {
                            $s .= '<td  align="center" colspan="' . $t_nb_item_domaine[$i] . '"><b>' . $t_domaine[$i] . '</b> (0%)</td>';
                        }
                    }
                    $s .= '</tr>' . "\n";
                    $s .= '<tr valign="top"  >' . "\n";
                    for ($i = 0; $i < count($t_competence); $i++) {
                        if ($t_competence_coeff[$i]) {
                            $s .= '<td align="center" colspan="' . $t_nb_item_competence[$i] . '"><b>' . $t_competence[$i] . '</b> (' . referentiel_pourcentage($t_certif_competence_poids[$i], $t_competence_coeff[$i]) . '%)</td>' . "\n";
                        } else {
                            $s .= '<td align="center" colspan="' . $t_nb_item_competence[$i] . '"><b>' . $t_competence[$i] . '</b> (0%)</td>' . "\n";
                        }
                    }
                    $s .= '</tr>' . "\n";
                    // ITEMS
                    // DEBUG
                    // echo "<br />$nlen\n";
                    $s .= '<tr valign="top" >' . "\n";
                    for ($i = 0; $i < count($t_item_code); $i++) {
                        if ($t_item_empreinte[$i]) {
                            if (isset($t_certif_item_valeur[$i])) {
                                if ($t_certif_item_valeur[$i] >= $t_item_empreinte[$i]) {
                                    // $s.='<td'.$bgcolor.'><span  class="valide">'.$t_item_code[$i].'</span></td>'."\n";
                                    $s .= '<td class="valide"><span  class="valide">' . $t_item_code[$i] . '</span></td>' . "\n";
                                } else {
                                    //$s.='<td'.$bgcolor.'><span class="invalide">'.$t_item_code[$i].'</span></td>'."\n";
                                    $s .= '<td class="invalide"><span class="invalide">' . $t_item_code[$i] . '</span></td>' . "\n";
                                }
                            }
                        } else {
                            $s .= '<td class="nondefini"><span class="nondefini"><i>' . $t_item_code[$i] . '</i></span></td>' . "\n";
                        }
                    }
                    $s .= '</tr>' . "\n";
                    $s .= '<tr valign="top" >' . "\n";
                    // <td  width="5%">'.get_string('coeff','referentiel').'</td>'."\n";
                    // for ($i=0; $i<count($t_item_coeff); $i++){
                    for ($i = 0; $i < count($t_item_code); $i++) {
                        if ($t_item_empreinte[$i]) {
                            if (isset($t_certif_item_valeur[$i])) {
                                if ($t_certif_item_valeur[$i] >= $t_item_empreinte[$i]) {
                                    // $s.='<td'.$bgcolor.'><span class="valide">100%</span></td>'."\n";
                                    $s .= '<td class="valide"><span class="valide">100%</span></td>' . "\n";
                                } else {
                                    $s .= '<td class="invalide"><span class="invalide">' . referentiel_pourcentage($t_certif_item_valeur[$i], $t_item_empreinte[$i]) . '%</span></td>' . "\n";
                                }
                            }
                        } else {
                            $s .= '<td class="nondefini"><span class="nondefini">&nbsp;</span></td>' . "\n";
                        }
                    }
                    $s .= '</tr></table>' . "\n";
                } else {
                    // DOMAINES
                    $s .= '<table width="100%" cellspacing="0" cellpadding="2">
    <tr valign="top"><td>' . "\n";
                    // if (!empty($label_d)){
                    //	$s.='<td  width="5%">'.$label_d.'</td>';
                    //}
                    //  else {
                    //	$s.='<td $t_certif_item_coeff width="5%">'.get_string('domaine','referentiel').'</td>';
                    //}
                    for ($i = 0; $i < count($t_domaine_coeff); $i++) {
                        if ($t_domaine_coeff[$i]) {
                            $s .= ' <b>' . $t_domaine[$i] . '</b> (' . referentiel_pourcentage($t_certif_domaine_poids[$i], $t_domaine_coeff[$i]) . '%)';
                        } else {
                            $s .= ' <b>' . $t_domaine[$i] . '</b> (0%)</span>';
                        }
                    }
                    $s .= '</td></tr>' . "\n";
                    $s .= '<tr valign="top"><td>' . "\n";
                    for ($i = 0; $i < count($t_competence); $i++) {
                        if ($t_competence_coeff[$i]) {
                            $s .= ' <b>' . $t_competence[$i] . '</b> (' . referentiel_pourcentage($t_certif_competence_poids[$i], $t_competence_coeff[$i]) . '%)' . "\n";
                        } else {
                            $s .= ' <b>' . $t_competence[$i] . '</b> (0%)' . "\n";
                        }
                    }
                    $s .= '</td></tr>' . "\n";
                    $s .= '<tr valign="top" ><td>' . "\n";
                    for ($i = 0; $i < count($t_item_code); $i++) {
                        if ($t_item_empreinte[$i]) {
                            if (isset($t_certif_item_valeur[$i])) {
                                if ($t_certif_item_valeur[$i] >= $t_item_empreinte[$i]) {
                                    $s .= '<span class="deverrouille"><span  class="valide">' . $t_item_code[$i] . ' (100%)</span></span>' . "\n";
                                } else {
                                    $s .= '<span class="verrouille"><span class="invalide">' . $t_item_code[$i] . ' (' . referentiel_pourcentage($t_certif_item_valeur[$i], $t_item_empreinte[$i]) . '%)</span></span>' . "\n";
                                }
                            }
                        } else {
                            $s .= '<span class="nondefini"><i>' . $t_item_code[$i] . '</i></span>' . "\n";
                        }
                    }
                    $s .= '</td></tr></table>' . "\n";
                }
            }
        }
    }
    return $s;
}