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"> </span></td>'."\n"; } } // $s.='</tr></table>'."\n"; */ $odt->Ln(1); } } } return $s; }
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; }
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"> </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; }