Subversion Repositories Applications.annuaire

Rev

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

Rev 339 Rev 358
Line 155... Line 155...
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) {
Line 159... Line 159...
159
 
159
    	      	    	
160
		// TODO, faire plus complexe, tri alphabétique etc...
160
    	$start = ($numero_page - 1)*$taille_page;
-
 
161
	    $limit = $taille_page;
-
 
162
	    $intervalle_pages = 5;
161
		$page_precedente = $numero_page-1;
163
    	    	
-
 
164
    	$page_en_cours = $numero_page;
-
 
165
    	
-
 
166
    	$pages_avant_apres = (ceil($intervalle_pages /2) + 1);
-
 
167
    	$pages_debut_intervalle = 0;
Line 162... Line 168...
162
		$page_suivante = $numero_page+1;
168
    	$nb_pages = 0;
163
 
169
    	
-
 
170
    	if ($page_en_cours < $pages_avant_apres)  {
-
 
171
    		$pages_debut_intervalle = 1;
164
		if($taille_page <= 0) {
172
    	} else {
Line 165... Line 173...
165
			$taille_page = 1;
173
    		$pages_debut_intervalle = $page_en_cours - $pages_avant_apres + 2;
-
 
174
    	}
-
 
175
    	
Line 166... Line 176...
166
		}
176
    	$pages_a_afficher = $intervalle_pages;
167
 
177
    	
168
		$nombre_pages = ceil($total/$taille_page) ;
178
    	$intervalle_max = (($page_en_cours) * $limit);
-
 
179
    	
Line 169... Line -...
169
 
-
 
170
		foreach($valeurs as $cle => $variable) {
-
 
171
			$url_base->setVariableRequete($cle,$variable);
-
 
172
		}
-
 
173
 
-
 
174
		if($numero_page < 2) {
-
 
175
			$page_precedente = false;
-
 
176
			$url_page_precedente = '';
-
 
177
		} else {
-
 
178
			$url_page_prec = clone($url_base);
-
 
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
 
180
    	foreach($valeurs as $cle => $variable) {
184
		if($taille_page*($numero_page) >= $total) {
-
 
185
			$page_suivante = false;
-
 
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();
-
 
Line 192... Line 181...
192
		}
181
			$url_base->setVariableRequete($cle,$variable);
193
 
-
 
194
		$url_pages = array();
-
 
195
 
182
		}    	
196
		for($i = 1; $i <= $nombre_pages ; $i++) {
183
    	$donnees['url_base_pagination'] = $url_base->getUrl().'&amp;taille_page='.$taille_page.'&amp;numero_page=';
Line 197... Line 184...
197
 
184
    	
198
				$url_page_prev = clone($url_base);
185
    	$nb_pages = ceil($total/$limit);  
-
 
186
 
199
				$url_page_prev->setVariableRequete('numero_page',($i));
187
        if ($page_en_cours == $nb_pages) {
200
				$url_page_prev->setVariableRequete('taille_page',($taille_page));
188
    		$intervalle_max = $total;
201
				$url_pages[$i] = $url_page_prev->getUrl();
189
    	}
-
 
190
    	
-
 
191
    	$donnees['pages_taille_intervalle'] = $intervalle_pages;
Line 202... Line 192...
202
		}
192
    	$donnees['pages_debut_intervalle'] = $pages_debut_intervalle;
203
 
193
    	$donnees['page_en_cours'] = $page_en_cours;