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 :

admin-generator et routing


Sujet :

Symfony PHP

  1. #1
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut admin-generator et routing
    Bonjour,

    Je souhaite réaliser la chose suivante dans symfony :

    -avoir un module d'admin-generator "voiture" qui gère des véhicules de plusieurs marques.
    -offrir aux utilisateurs un lien de type : "voiture-audi" qui leur filtrerai automatiquement les voitures de la marque audi ("marque_id"), et que lorsqu'ils procèdent à un ajout, ce soit un ajout de voiture dans la marque "audi". Le module "voiture" en tant que tel leur serait masqué, ils accéderaient directement (selon l'url) à l'affichage/création, etc. de voitures de la marque spécifiée.

    Comment faire pour que le routing, ou la configuration du generator.yml offre une telle spéficité ?

    Merci par avance,

    Cordialement,

    Thecanea

    ps : symfony 1.4 + Doctrine.

  2. #2
    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
    Vu ainsi, cela ne me semble pas possible.

    Mais en y réfléchissant...

    Tu peux éditer l'action.class.php qui utilise celui auto-généré.

    Tu dois donc pouvoir créer une action new avec le paramètre qui t'intéresses. Créer un enregistrement vierge ($toto = new vehicule. Y mettre le type de la voiture et initialiser le form avec cet objet ($form = vehiculeForm($toto) ). Et désactiver dans zone de saisie en ajoutant un paramètre readonly, directement depuis le contrôleur, ou avec une méthode rajouté à l'objet formulaire. Ne pas mettre le nom des champs dans le generator.yml et lui laisser prendre tous ce qui est défini dans le form.

    C'est juste quelques idées comme cela, mais on est très près du bricolage sur une usine atomique Ukrainienne...

    Je ne peux que te donner une piste, je n'ai jamais tenté ce type de manipulation.

  3. #3
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut
    Oui, à priori ce n'est pas possible nativement.

    Du coup j'ai utilisé le mécanisme suivant :

    routing.yml (config de l'application)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    voituremarque:
      url:   /voiture/marque/:marque_voiture
      param: { module: voiture, action: index}
    actions.class.php (module voiture)
    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 executeIndex(sfWebRequest $request) {
        if($marque_voiture = $request->getParameter('marque_voiture', null)) {
          $marqueVoiture = VoitureMarqueTable::getInstance()->findOneByVoitureMarque($marque_voiture);
          $this->forward404Unless($marqueVoiture, 'Marque inconnue');
          $this->setFilters(array('marque_id' => $marqueVoiture->getMarqueId()));
        }
        parent::executeIndex($request);
      }
     
      public function executeNew(sfWebRequest $request) {
        parent::executeNew($request);
        $this->form->initWithFiltre($this->getFilters());
      }
    /lib/form/doctrine/VoitureMarqueForm.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      /**
       * Fonction permettant de surcharger le formulaire en 
       * fonction des filtres en cours
       * @param $filters
       */
      public function initWithFiltre($filters = array()) {
        if(isset($filters['marque_id'])) {
          $this->setDefault('marque_id', $filters['marque_id']);
          // je pourrai masquer le champ si besoin (hidden)
        }    
      }
    Du coup je peux accéder à mes voitures directement en tapant :
    http://www.example.com/voiture/marque/audi

    Et lorsque je créerai une voiture, ce sera une audi par défaut.

    Encore merci pour ton idée,

    Cordialement,

    Thecanea

  4. #4
    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
    Heureux que cela ait marché, c'était juste un vague canevas...

Discussions similaires

  1. [1.x] Admin Generator et route
    Par CaraG33k dans le forum Symfony
    Réponses: 3
    Dernier message: 05/02/2011, 12h16
  2. [1.x] [admin-generator] éditer les clés primaires
    Par Mitaka dans le forum Symfony
    Réponses: 2
    Dernier message: 04/06/2008, 14h33
  3. [1.x] Admin generator - images administrables
    Par wadzat dans le forum Symfony
    Réponses: 3
    Dernier message: 30/05/2008, 15h39
  4. Réponses: 7
    Dernier message: 25/05/2008, 17h06
  5. [1.x] Champs i18n disabled par l'admin generator
    Par wadzat dans le forum Symfony
    Réponses: 1
    Dernier message: 22/05/2008, 14h51

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