I share so I am Contributions et réflexions

10jan/104

Plugin sfDoctrineAdminGeneratorWithShowPlugin pour Symfony 1.4

Une question récurrente sur les forums traitant du framework Symfony :

A quoi sert le paramètre with_show dans le fichier generator.yml ?

Aussi surprenante soit-elle, la réponse usuelle à cette question est :

Par défaut, à rien...

Alors comment afficher les détails d'un objet dans une page d'administration sans que celles-ci soient modifiables ? il est bien nécessaire d'activer l'action show. Les plugins sfDoctrineAdminGeneratorWithShowPlugin et sfPropelAdminGeneratorWithShowPlugin ont été créés pour compenser ce manque. Malheureusement ils ne fonctionnent que pour Symfony 1.2 et 1.3.

Plugin sfDoctrineAdminGeneratorWithShowPlugin pour Symfony 1.4

Paralysé par cette absence d'action show sous Symfony 1.4, je me suis lancé dans la correction du plugin sfDoctrineAdminGeneratorWithShowPlugin pour le rendre compatible.

Télécharger sfDoctrineAdminGeneratorWithShowPlugin pour Symfony 1.4

Pour installer le plugin, décompressez l'archive dans le répertoire plugin/ de votre projet Symfony.

Activez le plugin en modifiant le fichier config/ProjectConfiguration.class.php

$this->enablePlugins('sfDoctrinePlugin','sfDoctrineAdminGeneratorWithShowPlugin');

Générez le module d'administration :

./symfony doctrine:generate-admin --theme=adminWithShow application ClasseExemple

Activez l'action vue dans le fichier application/modules/classe_exemple/config/generator.yml

    with_show: true

Cela donne par exemple :

generator:
  class: sfDoctrineGenerator
  param:
    model_class:           ClasseExemple
    theme:                 adminWithShow
    non_verbose_templates: true
    with_show:             true
    singular:              ~
    plural:                ~
    route_prefix:          classe_exemple
    with_doctrine_route:   true

    config:
      actions: ~
      fields:  ~
      list:    ~
      filter:  ~
      form:    ~
      edit:    ~
      new:     ~
      show:    ~

Maintenant que l'action show est ajoutée, vous pouvez personnaliser à souhait votre module d'administration en modifiant le fichier generator.yml et/ou les templates. Toute la documentation utile est sur le site du framework.

Commentaires (4) Trackbacks (0)
  1. Merci pour ce plugin, ca marche :)
    Quelques petits bemols quand meme:
    * Comment traduire ‘Show’ ?
    * Dans la vue show, les nom de colonnes ne sont pas remplacés par leurs label, comment ca doit se faire?
    * Je vois dans la capture d’ecran ci dessus le parametre show dans config (du generator.yml). Y a t’il une doc ce que ce champ peut recevoir?

  2. Une premiere reponse: Pour personnaliser les labels, il faut specifier l’attribut name dans la partie config/fields (la ou il y a label habituellement)

    Ca aurait d’ailleurs été logique d’utiliser Label non?

  3. Apres modification du fichier XML de configuration de la langue de symfony et plusieurs CC, ‘show’ est maintenant affiché ‘voir’. J’ai un peu manqué de patience

    (Si je dis tout ca, c’est pas pour spammer, c’est juste que ca pourra etre utile au prochain qui aura ces memes soucis, peut etre meme moi dans 6 mois quand je serais sur un nouveau projet SF :P )

  4. Merci Nexxed de ta contribution. Il y a effectivement pas mal de corrections à faire pour obtenir le résultat que l’on souhaite.


Laisser un commentaire


Aucun trackbacks pour l'instant