156,58 → 156,48 |
* @return string le html contenu la template de pagination rempli avec les infos |
*/ |
protected function paginer($numero_page = 1, $taille_page = 50, $total, $url_base, $valeurs) { |
|
// TODO, faire plus complexe, tri alphabétique etc... |
$page_precedente = $numero_page-1; |
$page_suivante = $numero_page+1; |
|
if($taille_page <= 0) { |
$taille_page = 1; |
} |
|
$nombre_pages = ceil($total/$taille_page) ; |
|
foreach($valeurs as $cle => $variable) { |
|
$start = ($numero_page - 1)*$taille_page; |
$limit = $taille_page; |
$intervalle_pages = 5; |
|
$page_en_cours = $numero_page; |
|
$pages_avant_apres = (ceil($intervalle_pages /2) + 1); |
$pages_debut_intervalle = 0; |
$nb_pages = 0; |
|
if ($page_en_cours < $pages_avant_apres) { |
$pages_debut_intervalle = 1; |
} else { |
$pages_debut_intervalle = $page_en_cours - $pages_avant_apres + 2; |
} |
|
$pages_a_afficher = $intervalle_pages; |
|
$intervalle_max = (($page_en_cours) * $limit); |
|
foreach($valeurs as $cle => $variable) { |
$url_base->setVariableRequete($cle,$variable); |
} |
} |
$donnees['url_base_pagination'] = $url_base->getUrl().'&taille_page='.$taille_page.'&numero_page='; |
|
$nb_pages = ceil($total/$limit); |
|
if($numero_page < 2) { |
$page_precedente = false; |
$url_page_precedente = ''; |
} else { |
$url_page_prec = clone($url_base); |
$url_page_prec->setVariableRequete('numero_page',($page_precedente)); |
$url_page_prec->setVariableRequete('taille_page',($taille_page)); |
$url_page_precedente = $url_page_prec->getUrl(); |
} |
|
if($taille_page*($numero_page) >= $total) { |
$page_suivante = false; |
$url_page_suivante = ''; |
} else { |
$url_page_suiv = clone($url_base); |
$url_page_suiv->setVariableRequete('numero_page',($page_suivante)); |
$url_page_suiv->setVariableRequete('taille_page',($taille_page)); |
$url_page_suivante = $url_page_suiv->getUrl(); |
} |
|
$url_pages = array(); |
|
for($i = 1; $i <= $nombre_pages ; $i++) { |
|
$url_page_prev = clone($url_base); |
$url_page_prev->setVariableRequete('numero_page',($i)); |
$url_page_prev->setVariableRequete('taille_page',($taille_page)); |
$url_pages[$i] = $url_page_prev->getUrl(); |
} |
|
$donnees = array('url_pages' => $url_pages, 'numero_page' => $numero_page, |
'page_precedente' => $page_precedente, 'page_suivante' => $page_suivante, |
'url_page_precedente' => $url_page_precedente, 'url_page_suivante' => $url_page_suivante, |
'nombre_pages' => $nombre_pages, 'taille_page' => $taille_page); |
$donnees['base_url_pagination'] = $url_base; |
|
return $this->getVue(Config::get('dossier_squelettes_elements').'pagination',$donnees); |
if ($page_en_cours == $nb_pages) { |
$intervalle_max = $total; |
} |
|
$donnees['pages_taille_intervalle'] = $intervalle_pages; |
$donnees['pages_debut_intervalle'] = $pages_debut_intervalle; |
$donnees['page_en_cours'] = $page_en_cours; |
$donnees['intervalle_min'] = (($page_en_cours-1) * $limit); |
$donnees['intervalle_max'] = $intervalle_max; |
$donnees['nb_resultats'] = $total; |
$donnees['nb_pages'] = $nb_pages; |
$donnees['taille_page'] = $limit; |
|
return $this->getVue(Config::get('dossier_squelettes_elements').'pagination',$donnees); |
} |
|
|
511,7 → 501,7 |
|
$valeurs_annuaire = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur,$tableau_mappage[0]); |
$valeurs_metadonnees= $this->MetadonneeModele->chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur); |
|
|
foreach($tableau_mappage[0] as $cle => $nom_champ) { |
|
if($cle != 'champ_id') { |