Salut à tous,
J'en parle depuis plusieurs mois, j'ai trouvé du temps pour avancer, j'ai maintenant besoins de quelques béta testeur pour vérifier la validité de ce qui existe et proposer des améliorations que je n'aurais pas vues.
Attention, le plugin est en version Alpha et l'installation est 'à la hussarde'. Il est possible (probable) qu'il évolue.
Ce qu'il sait faire :
- afficher une liste d'enregistrement en provenance de tables (une principale).
- Afficher cette liste en mode 'pager' avec les affichages automatique des pages.
- Trier la liste sur les champs qui auront été autorisé au tris.
Comment installer le plugin Alpha (avec le hussard) :
- Décompacter le contenu de l'archive jointe dans le dossier lib/plugins soit de votre symfony, soit de votre projet.
- Modifier le mrListPlugin
Comment mettre en œuvre :
1) Créer un dossier lib/list dans votre application.
2) on va partir sur le fait que vous aller utiliser une table simple :
volontairement simpliste, mais cela marche avec des tables plus compliquées...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 MaTable: Columns: nom: string(40) prenom: string(40) service: string(40)
3) dans le dossier créé, vous allez créer un fichier :
MaTableList.class.php
4) Un petit coup de route
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 class MaTableList extends mrList { public function configure() { $querry = Doctrine_Query::create()-> from( 'MaTable' ); $this->setQuery( $querry ); $this->setFilterObjectName( 'MaTableFormFilter' ); // pas utilisé pour cette version $this->setReturnRoute( '@MaTable' ); $this->setWidget( 'nom', new mrListWidgetString( array( 'title' => 'Nom', 'sortable' => true ), array( ) ) ); $this->setWidget( 'prenom', new mrListWidgetString( array( 'title' => 'Prénom', 'sortable' => true ), array( ) ) ); $this->setWidget('service', new mrListWidgetString(array('title'=>'Service'), array())); $this->setSortDefault('nom', 'ASC'); } }
5) Créer un module test "symfony generate:module"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8MaTable: url: /test options: with_wildcard_routes: true param: module: test action: index
La méthode index
6) Le template
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public function executeIndex( sfWebRequest $request ) { // Instance de la liste $this->test = new newTestList(); // Permet de lier l'objet créé avec la réponse et de le préparer pour la prohain affichage. $this->test->setWebRequestAndBind($request); }
7) récupérer le fichier mrList.css dans le dossier du plugin et copier le dans votre dossier web/css
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php use_stylesheet( 'mrList') ?> <h1>essai</h1> <?php echo $test->render() ?>
8) Lancer le test et "have fun".
Ce que le module ne sais pas (encore) faire :
- Gérer les filtres
- Afficher et traiter autre chose que des champs string
- Pouvoir lier les lignes à des enregistrements, mettre des boutons supprimer
- Des case à cocher dans la liste pour un traitement globale ?
- Tous ce que vous allez suggérer et que je n'ai pas encore envisager (peut-être).
Si vous souhaitez aider, il y a deux class a écrire :
- mrListWidgetDate pour afficher les dates
- mrListWidgetNumber pour afficher les chiffres
J'attends vos remarques avec impatience et crainte.
Attention, c'est une version Alpha, il est possible que certaines fonctions change encore d'une manière importante, donc à ne pas utiliser dans des versions autres que des versions de test.
Partager