IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Plugins PHP Discussion :

Test d'un plugin générateur de liste (en alpha)


Sujet :

Plugins PHP

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut Test d'un plugin générateur de liste (en alpha)
    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 :
    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)
    volontairement simpliste, mais cela marche avec des tables plus compliquées...

    3) dans le dossier créé, vous allez créer un fichier :
    MaTableList.class.php
    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');
        }
     
    }
    4) Un petit coup de route
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    MaTable:
      url: /test
      options:
        with_wildcard_routes: true
      param:
        module: test
        action: index
    5) Créer un module test "symfony generate:module"
    La méthode index
    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);
        }
    6) Le template
    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() ?>
    7) récupérer le fichier mrList.css dans le dossier du plugin et copier le dans votre dossier web/css

    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.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/01/2012, 19h46
  2. Lancer JUnit tests d'un plugin via Ant
    Par DaveShot dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 26/02/2010, 16h28
  3. [Test] Proposition de Benchmark Hashtable/ArrayList/List ?
    Par Mose dans le forum Framework .NET
    Réponses: 10
    Dernier message: 12/08/2006, 17h05
  4. [ plugin ][ extension point ] liste des points d'extension
    Par Satch dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 19/03/2004, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo