Ejemplo n.º 1
0
    }
    // Maintenant on complète avec les valeurs de la base
    $DB_TAB = DB_STRUCTURE_SOCLE::DB_lister_jointure_user_entree($liste_eleve, $listing_entree_id, $domaine_id = 0, $pilier_id = 0, $palier_id = 0);
    // en fait on connait aussi le palier mais la requête est plus simple (pas de jointure) avec les entrées
    foreach ($DB_TAB as $DB_ROW) {
        $tab_user_entree[$DB_ROW['user_id']][$DB_ROW['entree_id']] = array('etat' => $DB_ROW['validation_entree_etat'], 'date' => convert_date_mysql_to_french($DB_ROW['validation_entree_date']), 'info' => $DB_ROW['validation_entree_info']);
    }
    // On commence par remplir tout le tableau des piliers pour ne pas avoir ensuite à tester tout le temps si le champ existe
    foreach ($tab_eleve_id as $eleve_id) {
        foreach ($tab_pilier as $pilier_id => $tab) {
            $tab_user_pilier[$eleve_id][$pilier_id] = array('etat' => 2, 'date' => '', 'info' => '');
        }
    }
    // Maintenant on complète avec les valeurs de la base
    $listing_pilier_id = implode(',', array_keys($tab_pilier));
    $DB_TAB = DB_STRUCTURE_SOCLE::DB_lister_jointure_user_pilier($liste_eleve, $listing_pilier_id, $palier_id = 0);
    // en fait on connait aussi le palier mais la requête est plus simple (pas de jointure) avec les piliers
    foreach ($DB_TAB as $DB_ROW) {
        $tab_user_pilier[$DB_ROW['user_id']][$DB_ROW['pilier_id']] = array('etat' => $DB_ROW['validation_pilier_etat'], 'date' => convert_date_mysql_to_french($DB_ROW['validation_pilier_date']), 'info' => $DB_ROW['validation_pilier_info']);
    }
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
/* 
 * Libérer de la place mémoire car les scripts de bilans sont assez gourmands.
 * Supprimer $DB_TAB ne fonctionne pas si on ne force pas auparavant la fermeture de la connexion.
 * SebR devrait peut-être envisager d'ajouter une méthode qui libère cette mémoire, si c'est possible...
 */
// ////////////////////////////////////////////////////////////////////////////////////////////////////
DB::close(SACOCHE_STRUCTURE_BD_NAME);
unset($DB_TAB);
// ////////////////////////////////////////////////////////////////////////////////////////////////////
      $affichage .= '<tr>';
      foreach($tab_eleve_id as $eleve_id)
      {
        $affichage .= '<td id="U'.$eleve_id.'C'.$pilier_id.'" class="v3"></td>';
      }
      $affichage .= '<th class="nu" colspan="2"><div class="n1">'.html($DB_ROW['rubrique_nom']).'</div></th>';
      $affichage .= '</tr>';
    }
  }
  $affichage .= '</tbody>';
  // Ligne avec le drapeau de la LV, si compétence concernée sélectionnée.
  $affichage .= count(array_intersect($tab_pilier_id,$tab_langue_piliers)) ? '<tfoot>'.$tfoot.'<th class="nu" colspan="3"></th></tfoot>' : '' ;
  // Récupérer la liste des jointures (validations)
  $listing_eleve_id  = implode(',',$tab_eleve_id);
  $listing_pilier_id = implode(',',$tab_pilier_id);
  $DB_TAB = DB_STRUCTURE_SOCLE::DB_lister_jointure_user_pilier($listing_eleve_id,$listing_pilier_id,$palier_id=0); // en fait on connait aussi le palier mais la requête est plus simple (pas de jointure) avec les piliers
  $tab_bad = array();
  $tab_bon = array();
  foreach($DB_TAB as $DB_ROW)
  {
    if($DB_ROW['validation_pilier_etat'])
    {
      $tab_bad[] = 'U'.$DB_ROW['user_id'].'C'.$DB_ROW['pilier_id'].'" class="v3">';
      $tab_bon[] = 'U'.$DB_ROW['user_id'].'C'.$DB_ROW['pilier_id'].'" class="v'.$DB_ROW['validation_pilier_etat'].'" title="Validé le '.convert_date_mysql_to_french($DB_ROW['validation_pilier_date']).' par '.html($DB_ROW['validation_pilier_info']).'" data-etat="lock">';
    }
  }
  $affichage = str_replace($tab_bad,$tab_bon,$affichage);
  // Afficher le résultat
  echo $affichage;
}