====== Pxxo_Widget_Pagination ====== Ce widget permet d'afficher une barre de navigation multi-pages. Il est utile lorsque vous avez de longues listes à afficher par morceaux (par pages). Il comprend : * une liste permettant de choisir le nombre d'élements à afficher par page. * des boutons de navigations permettant de se déplacer page par pages : suivante et précedente * une liste permettant de naviguer dans la liste complète des pages {{ fr:doc:pxxo_widgets_pagination.png |Voici une copie d'écran d'un exemple de rendu}} * [[http://demo.pxxo.net/widgets/demos/tester/Pxxo_Widgets_Pagination/|Exemple d'utilisation en ligne]] * [[fr:install|Installer]] ===== Paramètres ===== ^ Nom ^ Valeur ^ Description ^ | lignes | - | Le nombre de ligne à afficher (obligatoire) | | ligne | 10 | Le nombre de lignes par pages | | lpp | array(5,10,25) | Les choix possibles pour le sélecteur du nombre de lignes par pages (depuis v1.0.3) | | title | - | Permet de donner un titre facultatif au widget | | show_lignes | true | Permet de montrer/cacher le sélecteur du nombre de lignes par pages | | show_pages | true | Permet de montrer/cacher la liste de navigation rapide (pour sauter de page en page) | | form_enable | true | Si ce paramètre vaut 'true', un formulaire html independant sera généré pour notre widget. Si ce paramètre vaut 'false', cela suppose que 'form_name' contient le nom d'un formulaire parent dans lequel on souhaite se greffer (facultatif) | | form_name | ''$this->ClassID'' | Le nom du formulaire parent. Ce paramètre est ignoré si 'form_enable' est à true (facultatif) | | display_anyway | true | Si égal à true et si il n'y a qu'une page à afficher, on affiche quand même le Widget. Si égal à false, et si il n'y a qu'une page à afficher, on cache le Widget | | theme | ''defaut'' | Le thème du widget. Indiquez le thème 'google' si vous souhaitez une pagination à la mode google. | __Remarque 1 :__ Lorsque ''form_enable'' est à false et ''form_name'' vaut 'monformulaire', cela suppose que l'instance de votre widget est incluse dans un formulaire existant dont l'attribut id vaudrait 'monformulaire'. Exemple:
[...] __Remarque 2 :__ Lorsque le thème "google" est utilisé, aucun formulaire n'est généré. Le paramètre ''form_name'' doit alors contenir les paramètres que vous désirez voir apparaître dans l'url pendant la navigation des pages. (à partir de la version 1.0.8) __Attention :__ un comportement étrange a été remarqué lorsque un des boutons submit du formulaire père du widget de pagination possède comme attribut name la valeur "submit". La soumission javascript automatique générée par l'événement onchange renverra alors une erreur. ===== Méthodes ===== Cette objet fourint 3 méthodes pour changer dynamiquement les paramètres après que l'objet soit créé. * **void setLignes(integer $n)** Change le nombre de résultat * **void setPage(integer $n)** Change la page sélectionnée * **void setLigne(intger $n)** Change le nombre de ligne par page ===== Retours ===== Une fois l'objet instancié, il est possible de consulter son état par le biais des attributs suivants : * **''debut''** : contient l'indice du premier element que l'on affiche dans la page courante (commence par 0) * **''fin''** : contient l'indice du dernier element que l'on affiche dans la page courante * **''page''** : contient l'indice de la page courante * **''pages''** : contient le nombre de page totales __Remarque :__ ''debut'' et ''fin'' peuvent être utilisés dans la clause LIMIT lors d'une requete SQL (cf. exemple plus bas). ===== Exemples ===== Affichage d'un formulaire de navigation pour paginer une liste de 1000 éléments : page."
"; // permet de récuperer la page courante echo $obj1->pages."
"; // permet de récupérer le nombre de pages totale echo $obj1->debut."
"; // permet de récupérer l'indice du premier element de notre page echo $obj1->fin."
"; // permet de récupérer l'indice du dernier element de notre page $obj1->main(); $obj1->dump(); ?>
Supposons que l'on veuille naviguer à l'aide de ce widget dans le résultat d'une requete SQL : debut.",".($obj1->fin-$obj1->debut).";"; $query = mysql_query($sql); // On affiche le résultat de notre requete while($row = mysql_fetch_array($query)) { print_r( $row ); } // Puis on affiche notre widget $obj1->main(); $obj1->dump(); ?>