Padmini, un thème d’admin open source et son plugin Symfony 1.4

Alexandre Lacoche 21 novembre 2011 7
Padmini, un thème d’admin open source et son plugin Symfony 1.4
 

Quand on fait du dev web et des applis web Open Source, on se retrouve face à un dilemme : pour l’interface d’admin, dois-je la coder moi-même ou en existe des prêtes à l’utilisation ? Et si j’en prend une prête à l’utilisation, est-ce que je ne vais pas passer plus de temps à la modifier pour qu’elle s’intègre bien avec mon application Symfony ?

Alors oui, il en existe des toutes prêtes, la plupart sont payantes et à utilisation restreinte ou d’autres dont les licences ne sont pas précisées. Impossible donc si on fait une appli LGPL. Qu’à cela ne tienne, j’ai pris mon mon courage à deux mains et j’ai fait Padmini, un template d’admin sous licence LGPL. Alors certes, on peut trouver mieux (je ne suis pas graphiste hein..), mais je me suis dit qu’a défaut d’être parfait, ce template a le mérite d’exister. Pour le télécharger rien du plus simple, il suffit d’aller sur la page github de Padmini.

A l’heure actuelle, il faudrait que je trouve le temps de finir le dashboard pour qu’il s’affiche bien, mais voici ce que ça donne (ou allez voir la démo) :

        

 Plugin Symfony 1.4

Vous l’aurez remarqué, la façon d’afficher les tableaux de données ressemble fortement à la manière dont sont présentés les tableaux de données avec l’admin generator de doctrine dans symfony. Vous ne le savez peut-être pas, mais il est possible de créer un plugin pour que l’admin generator utilise le thème que vous avez créé. C’est exactement le but de sfPadminiThemePlugin : utiliser Padmini dans vos pages crées via l’admin generator.

Installation

Pour télécharger le plugin, rendez-vous simplement sur la page github du plugin et suivez les instructions :

  1. Dans votre projet, dans le dossier plugins, faites :
    git clone git://github.com/Pierrecle/sfPadminiThemePlugin.git
    cd sfPadminiThemePlugin
    git clone git://github.com/Pierrecle/Padmini.git web/padminiTheme
    cd ..
  2. Ouvrez le fichier de configuration de votre projet, config/ProjectConfiguration.class.php, et ajouter ceci à la fin de la fonction setup :
    $this->enablePlugins('sfPadminiThemePlugin');
  3. Ouvrez le fichier de configuration des filtres de votre application, apps/***/config/filters.yml, et ajoutez ceci juste avant la ligne cache: ~:
    layout:
      class: LayoutFilter
  4. Vous devriez supprimer toutes les feuilles de style et les javascripts dans le fichier de configuration des vues de votre application, apps/***/config/view.yml.
  5. Exécutez ceci :
    php symfony plugin:publish-assets
  6. Enfin, n’oubliez pas de modifier les generator.yml de vos modules, pour remplacer theme: default par :
    theme: padmini

    ou, lorsque vous créez vos modules, de préciser le thème :

    php symfony doctrine:generate-admin --theme="padmini" ...

Bonus

Il y a quelques petits bonus au plugin :

  • le plugin est en anglais mais la traduction française est fournie
  • si vous utilisez le plugin sfDoctrineGuardPlugin, vous n’avez rien à faire, le plugin surcharge la page de login
  • pour personnaliser le plugin, copier le fichier plugins/sfPadminiThemePlugins/config/theme.yml dans le dossier de config de votre application, apps/***/config, et configurez comme vous le souhaitez
  • si vous ne modifiez pas le fichier theme.yml, le plugin créera un menu automatiquement, basé sur vos modules, et n’affichera pas de footer
  • pour traduire le menu (éléments et messages) ou le footer, ajoutez manuellement les entrées dans le fichier apps/***/i18n/messages.LANGUAGE.xml
Have fnu coding!

7 Commentaires »

  1. Quiche 2 mars 2012 au 10 h 28 min - Reply

    Super travail…
    par contre un petit bug dans l’affichage de l’info bulle sur le menu…
    Dans la fonction « padminiThemeMenu » du helper « padminiThemeAutoMenuHelper »
    il faut remplacer
    $ret .=  »;
    par
    $ret .=  »;

    • Quiche 2 mars 2012 au 10 h 30 min - Reply

      oups je vais passer par github pour signaler le bug…

  2. Robin 3 juillet 2012 au 18 h 38 min - Reply

    Merci pour le super taf ! =)

    J’ai justement une question : peut-on utiliser ce plugin avec Symfony2 ?

    Merci par avance.

    • Pierre CLÉMENT 3 juillet 2012 au 18 h 53 min - Reply

      Merci ! Pour Symfo 2, je ne sais pas, j’ai personnellement laissé tombé Symfony sans l’avoir testé dans sa version 2.
      Mais comme ça à froid je dirais non, pour une simple raison, j’ai cru comprendre que par défaut il n’y a plus d’admin generator dans SF2. D’autre part SF2 casse la compatibilité avec SF1.4 si j’ai bien saisi, je ne vois donc aucune raison que ça fonctionne, désolé.
      PS : tu l’aura compris, je suis passé à autre chose et je ne mettrai pas à jours le plugin pour Symfony 2..

  3. Robin 3 juillet 2012 au 19 h 14 min - Reply

    Yep ! Merci pour la réponse à la question qui était somme toute un peu « débile », je viens de m’apercevoir en lisant pas mal de doc que la notion d’application est remplacée par celle de bundles et par conséquent le générateur d’admin a disparu… (vraiment plus pratique disent-ils ?!…)
    Merci à toi tout de même. =)

    • Pierre CLÉMENT 3 juillet 2012 au 19 h 47 min - Reply

      No problemo, la question n’était pas débile pour autant ;)

Laissez un message »