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

Symfony PHP Discussion :

recuperer le filtre d'un admin generator pour action download


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut recuperer le filtre d'un admin generator pour action download
    Bonjour,
    je n'arrive pas trouver comment dans un module admin récuperer les données du filtre pour créer une action qui me listerai les data pour une impression ou un sauvegarde dans un fichier ?

  2. #2
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Les données du filtre de l'admin gen' sont contenues dans le sfUser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    attributeHolder:
      admin_module: nomDuModule.filters {...}
    Il faut que ton filtre aie été appliqué (non-vide? -->pas complètement sûr) au moins une fois.

    Tu devrais pouvoir les voir dans la debug toolbar.

    Essaye voir ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $filterArray = $this->getUser()->getAttribute('nomDuModule.filters');
    print_r($filterArray);

  3. #3
    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
    Juste pour plussoir sur Nico.

    Quant tu récupères tu vérifies si le paramètre existe, si non tu utilise un array vierge.

    Tu as intérêt à instancier ton filter qui a une méthode qui permet de récupérer le même query que celui utilisé par la liste de l'admin. Tu est ainsi sur d'avoir la même chose et tu n'as pas à te "peller les doigts" pour recréer une requête à l'identique.

    Regarde dans le cache le code générer pour ton form d'admin, cela devrait te donner des idées..

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut
    je comprend pas trop.
    en faite dans mon fichier generator j'ai:
    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
     
    config:
          actions: ~
          fields:  ~
          list:
            display: [group, value]
            object_actions:
              _edit: ~
            actions:
              listing: ~
            max_per_page: 10
          filter:
            display: [site,groupasset_id, value, actif]
          form:    ~
          edit:    ~
          new:     ~
    je voudrait pouvoir dans l'action listing, récuperer, ou bien l'ensemble des object, ou bien les paramètres du filtres

    EDIT:

    en farfouillant j'ai trouver comment récupérer les valeurs des filtres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function executeListListing(sfWebRequest $request)
        {        
            var_dump($this->getFilters());
        }
    me donne bien la liste des champs du filtre.
    j'ai essaye de continuer avec ce que j'ai trouvé dans le cache:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public function executeListListing(sfWebRequest $request)
        {        
     
            $this->filters = $this->configuration->getFilterForm($this->getFilters());
     
                 $this->filters->bind($request->getParameter($this->filters->getName()));
           if ($this->filters->isValid())
           {
               var_dump($this->filters->getValues());
           }
     
        }
    malheureusement, je me retrouve avec un _csrf required au niveau du bind.
    Quelqu'un a une idée ?

  5. #5
    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
    malheureusement, je me retrouve avec un _csrf required au niveau du bind
    Et ?

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut
    bein ça plante

    J'ai essayer une autre méthode, j'ai récupérer toute l'action index depuis le cache que j'ai mis dans mon action ListListing de même pour le fichier indexSuccess que j'ai recopié dans listListingSuccess.
    ça me conserve bien le filtre.
    J'ai nettoyé le fichier du bloc de filtre et des actions mais je n'arrive pas a supprimer la pagination

    mon action:
    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
    public function executeListListing(sfWebrequest $request)
        {
            // sorting
            if ($request->getParameter('sort') && $this->isValidSortColumn($request->getParameter('sort')))
            {
                $this->setSort(array($request->getParameter('sort'), $request->getParameter('sort_type')));
            }
     
            // pager
            if ($request->getParameter('page'))
            {
                $this->setPage($request->getParameter('page'));
            }
     
            $this->pager = $this->getPager();
            $this->sort = $this->getSort();
        }
    la partie intéressante du template:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div id="sf_admin_content">
        <form action="<?php echo url_for('pabx_collection', array('action' => 'batch')) ?>" method="post">
        <?php include_partial('pabx/listing', array('pager' => $pager, 'sort' => $sort, 'helper' => $helper)) ?>
     
        </form>
      </div>
    et la partie du partial
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <tbody>
            <?php foreach ($pager->getResults() as $i => $pabx): $odd = fmod(++$i, 2) ? 'odd' : 'even' ?>
              <tr class="sf_admin_row <?php echo $odd ?>">
     
                <?php include_partial('pabx/list_td_tabular', array('pabx' => $pabx)) ?>
              </tr>
            <?php endforeach; ?>
          </tbody>
    comment outrepassé le pager ou alors le modifié à la volée pour qu'il affiche tout les enregistrements ?

Discussions similaires

  1. filtre et report de choix pour action
    Par monteverest dans le forum Excel
    Réponses: 0
    Dernier message: 13/09/2014, 12h09
  2. [1.x] Admin generator pour table de liaison
    Par Sergei75 dans le forum Débuter
    Réponses: 2
    Dernier message: 27/09/2011, 13h01
  3. [1.x] commande pour recuperer les icones de l'admin generator ?
    Par symfony30000 dans le forum Symfony
    Réponses: 1
    Dernier message: 09/04/2010, 16h32
  4. [1.x] Admin Generator et les filtres
    Par cacahuete85 dans le forum Symfony
    Réponses: 7
    Dernier message: 15/06/2009, 15h21
  5. [1.x] Admin Generator Batch action csrf_token
    Par saturn1 dans le forum Symfony
    Réponses: 1
    Dernier message: 27/02/2009, 11h03

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