05/07/2010, 16:45:37
évidement, ma proposition court-circuite le principe de gestion des pages :/
donc soit tu affiches les 50 premiers éléments d'une liste bien triée sans notion de pagination possible
soit tu tries les éléments affichés dans une page en conservant la pagination générale
une solution déjà utilisée sur un hack perso de news serait de gérer toi même le n° de page via un paramètre dans l'URL
je te le dit d'avance, ca va générer d'autres questions et d'autres anomalies pour ceux qui sont tatillons comme la perte du n° de la dernière page vue si tu clic sur le détail d'une news avant de cliquer sur retour. A tester en local avant une mise en prod
le principe est donc de générer deux liens (URL courante + un paramètre supplémentaire) que tu afficheras comme étant page précédente et page suivante.
le n° de page récupéré par $param['nom_de_mon_param'] depuis le gabarit de sommaire des news, tu peux le passer à la balise utilisateur et l'utiliser ensuite dans le code précédent :
donc soit tu affiches les 50 premiers éléments d'une liste bien triée sans notion de pagination possible
soit tu tries les éléments affichés dans une page en conservant la pagination générale
une solution déjà utilisée sur un hack perso de news serait de gérer toi même le n° de page via un paramètre dans l'URL
je te le dit d'avance, ca va générer d'autres questions et d'autres anomalies pour ceux qui sont tatillons comme la perte du n° de la dernière page vue si tu clic sur le détail d'une news avant de cliquer sur retour. A tester en local avant une mise en prod
le principe est donc de générer deux liens (URL courante + un paramètre supplémentaire) que tu afficheras comme étant page précédente et page suivante.
le n° de page récupéré par $param['nom_de_mon_param'] depuis le gabarit de sommaire des news, tu peux le passer à la balise utilisateur et l'utiliser ensuite dans le code précédent :
Citation :global $gCms;le reste est une question d'algo et de réglage
$smarty = &$gCms->GetSmarty();
$liste = $params['liste'];
$nbPage = $params['nbPage'];
/** TRAITEMENT DE TRI PHP A EFFECTUER **/
$listeTriee = $liste;
/** TRAITEMENT DE TRI PHP A EFFECTUER **/
/** http://www.php.net/manual/fr/function.array-chunk.php **/
/** Retourne un tableau multidimensionnel indexé numériquement, commençant à 0, dont chaque dimension contient size éléments. **/
$my_page_limit = 50;
$listeTriee = array_chunk($listeTriee, $my_page_limit);
//On récupère la première page (50 premiers elements)
$listeTriee = $listeTriee [nbPage];
$smarty->assign("sommaire_news",$listeTriee);