Subversion Repositories Applications.annuaire

Rev

Rev 339 | Rev 429 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 339 Rev 358
Line 154... Line 154...
154
	 * @param object $url_base l'url de base de la page
154
	 * @param object $url_base l'url de base de la page
155
	 * @param array $valeurs les valeurs à concatener à l'url
155
	 * @param array $valeurs les valeurs à concatener à l'url
156
	 * @return string le html contenu la template de pagination rempli avec les infos
156
	 * @return string le html contenu la template de pagination rempli avec les infos
157
	 */
157
	 */
158
	protected function paginer($numero_page = 1, $taille_page = 50, $total, $url_base, $valeurs) {
158
	protected function paginer($numero_page = 1, $taille_page = 50, $total, $url_base, $valeurs) {
159
 
159
    	      	    	
160
		// TODO, faire plus complexe, tri alphabétique etc...
160
    	$start = ($numero_page - 1)*$taille_page;
161
		$page_precedente = $numero_page-1;
161
	    $limit = $taille_page;
-
 
162
	    $intervalle_pages = 5;
-
 
163
    	    	
162
		$page_suivante = $numero_page+1;
164
    	$page_en_cours = $numero_page;
163
 
165
    	
-
 
166
    	$pages_avant_apres = (ceil($intervalle_pages /2) + 1);
-
 
167
    	$pages_debut_intervalle = 0;
164
		if($taille_page <= 0) {
168
    	$nb_pages = 0;
-
 
169
    	
-
 
170
    	if ($page_en_cours < $pages_avant_apres)  {
165
			$taille_page = 1;
171
    		$pages_debut_intervalle = 1;
-
 
172
    	} else {
-
 
173
    		$pages_debut_intervalle = $page_en_cours - $pages_avant_apres + 2;
166
		}
174
    	}
167
 
175
    	
168
		$nombre_pages = ceil($total/$taille_page) ;
176
    	$pages_a_afficher = $intervalle_pages;
-
 
177
    	
-
 
178
    	$intervalle_max = (($page_en_cours) * $limit);
169
 
179
    	
170
		foreach($valeurs as $cle => $variable) {
180
    	foreach($valeurs as $cle => $variable) {
171
			$url_base->setVariableRequete($cle,$variable);
181
			$url_base->setVariableRequete($cle,$variable);
172
		}
182
		}    	
-
 
183
    	$donnees['url_base_pagination'] = $url_base->getUrl().'&amp;taille_page='.$taille_page.'&amp;numero_page=';
173
 
184
    	
174
		if($numero_page < 2) {
-
 
175
			$page_precedente = false;
-
 
176
			$url_page_precedente = '';
-
 
177
		} else {
-
 
178
			$url_page_prec = clone($url_base);
185
    	$nb_pages = ceil($total/$limit);  
179
				$url_page_prec->setVariableRequete('numero_page',($page_precedente));
-
 
180
				$url_page_prec->setVariableRequete('taille_page',($taille_page));
-
 
181
				$url_page_precedente = $url_page_prec->getUrl();
-
 
182
		}
-
 
183
 
186
 
184
		if($taille_page*($numero_page) >= $total) {
187
        if ($page_en_cours == $nb_pages) {
185
			$page_suivante = false;
188
    		$intervalle_max = $total;
186
			$url_page_suivante = '';
-
 
187
		} else {
-
 
188
			$url_page_suiv = clone($url_base);
-
 
189
				$url_page_suiv->setVariableRequete('numero_page',($page_suivante));
-
 
190
				$url_page_suiv->setVariableRequete('taille_page',($taille_page));
-
 
191
				$url_page_suivante = $url_page_suiv->getUrl();
-
 
192
		}
189
    	}
193
 
-
 
194
		$url_pages = array();
-
 
195
 
-
 
196
		for($i = 1; $i <= $nombre_pages ; $i++) {
-
 
197
 
190
    	
198
				$url_page_prev = clone($url_base);
-
 
199
				$url_page_prev->setVariableRequete('numero_page',($i));
191
    	$donnees['pages_taille_intervalle'] = $intervalle_pages;
200
				$url_page_prev->setVariableRequete('taille_page',($taille_page));
192
    	$donnees['pages_debut_intervalle'] = $pages_debut_intervalle;
201
				$url_pages[$i] = $url_page_prev->getUrl();
193
    	$donnees['page_en_cours'] = $page_en_cours;
202
		}
-
 
203
 
-
 
204
		$donnees = array('url_pages' => $url_pages, 'numero_page' => $numero_page,
194
    	$donnees['intervalle_min'] = (($page_en_cours-1) * $limit);
205
							'page_precedente' => $page_precedente, 'page_suivante' => $page_suivante,
195
    	$donnees['intervalle_max'] = $intervalle_max;
206
							'url_page_precedente' => $url_page_precedente, 'url_page_suivante' => $url_page_suivante,
196
    	$donnees['nb_resultats'] = $total;
207
							'nombre_pages' => $nombre_pages, 'taille_page' => $taille_page);
197
    	$donnees['nb_pages'] = $nb_pages;
208
		$donnees['base_url_pagination'] = $url_base;
198
    	$donnees['taille_page'] = $limit;
209
 
199
    	
210
		return $this->getVue(Config::get('dossier_squelettes_elements').'pagination',$donnees);
200
    	return $this->getVue(Config::get('dossier_squelettes_elements').'pagination',$donnees);
211
	}
201
	}
Line 212... Line 202...
212
 
202
 
Line 509... Line 499...
509
		$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
499
		$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
510
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
500
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
Line 511... Line 501...
511
 
501
 
512
		$valeurs_annuaire = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur,$tableau_mappage[0]);
502
		$valeurs_annuaire = $this->AnnuaireModele->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur,$tableau_mappage[0]);
513
		$valeurs_metadonnees= $this->MetadonneeModele->chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur);
503
		$valeurs_metadonnees= $this->MetadonneeModele->chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur);
514
		
504
				
Line 515... Line 505...
515
		foreach($tableau_mappage[0] as $cle => $nom_champ) {
505
		foreach($tableau_mappage[0] as $cle => $nom_champ) {
Line 516... Line 506...
516
 
506