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 :

[mrList] version alpha 0.1.4 pour test


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 [mrList] version alpha 0.1.4 pour test
    Je m'y suis remis, mais difficilement.

    Une nouvelle version pour test.

    Vous pouvez utiliser avec

    shema.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    namedata:
      columns:
        nom: string(50)
        prenom: string(50)
        data1: string(50)
        verify: boolean
        date: date
        num: integer
    fixatures
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    namedata:
    <?php for($i=0; $i<100; $i++): ?>
      name<?php echo $i ?>:
        nom: nom<?php echo $i . "\n"?>
        prenom: prenom<?php echo 1000 - $i . "\n"?>
        data1: <?php echo md5(rand(1, 999999)) ."\n"?>
        verify: <?php echo $i % 3 == 0 ? true : false ?><?php echo "\n" ?>
        date: '<?php echo '2010-' . rand(1,12) . '-' . rand(1,28) ?>'
        num: <?php echo rand(1,99999) ?><?php echo "\n" ?>
    <?php endfor; ?>
    La déclaration de l'objet liste
    /lib/list/doctrine/testList.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
    28
    29
     
    class TestList extends mrList
    {
     
        public function configure()
        {
            $querry = Doctrine_Query::create()->
                            from( 'namedata' );
     
            $this->setFilterObjectName('namedataFormFilter');
            $this->setReturnRoute( '@coucou' ); // Route of the list form
            $this->setQuery( $querry );
     
            $this->setWidget( 'nom', new mrListWidgetFieldString( array(
                        'title' => 'Nom',
                        'sortable' => true,
                        'linkedRoute' => '@namedata_show',
                        'linkedField' => 'id'
                            ), array( ) ) );
            $this->setWidget( 'prenom', new mrListWidgetFieldString( array(
                        'title' => 'Prénom',
                        'sortable' => true
                            ), array( ) ) );
            $this->setWidget( 'data1', new mrListWidgetFieldString( array( 'title' => 'Donnée' ), array( ) ) );
     
            $this->setSortDefault( 'nom', 'ASC' );
        }
     
    }
    Le contrôleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        public function executeIndex( sfWebRequest $request )
        {
            $this->test = new TestList();
            $this->test->setWebRequestAndBind($request);
        }
    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() ?>
    La route (si votre module s'appelle test et l'action par défaut)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    coucou:
      url: /test
      options:
        with_wildcard_routes: true
      param:
        module: test

    Le filtre marche, les tris aussi.

    Il reste :
    • permettre de définir et de renvoyer les boutons (rapide)
    • de rendre des boutons conditionnelles (certains enregistrement pourraient ne pas être modifiables)(rapide)
    • de rendre les objets full i18n ready (rapide)
    • mettre en place des boutons pour un traitement de lot avec des cases à cocher (moyen)
    • mettre un peu de JS sur la liste pour certains traitements. (moyen)
    • permettre avec du JS de ne recharger que le centre de la liste en cas de tri et filtre (loin)
    • mettre les tests en place (évolutif)


    Je ne sais pas trop comment je vais mettre en place le système de bouton. Pour l'instant j'envisage un container a part des widget avec le même principe de déclaration. Mais cela pourrait être dans le même que les widgets avec un paramètre qui indique que c'est un bouton... mais j'aime moins.

    Reste à savoir comment faire passer les données de l'enregistrement à chaque bouton pour qu'il puisse décider s'il doit s'afficher et vers quel url il doit renvoyer l'information.

    Pas grand chose, mais j'ai gardé pour la fin le plus difficile je crois.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 10
    Dernier message: 27/10/2017, 10h06
  2. Win 7 version pour test ASP
    Par Marc_3 dans le forum Windows 7
    Réponses: 0
    Dernier message: 22/11/2009, 12h56
  3. Réponses: 0
    Dernier message: 18/08/2009, 23h25
  4. Réponses: 0
    Dernier message: 30/07/2009, 19h06

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