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 :
- 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 ..
- Ouvrez le fichier de configuration de votre projet, config/ProjectConfiguration.class.php, et ajouter ceci à la fin de la fonction setup :
$this->enablePlugins('sfPadminiThemePlugin'); - 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
- 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.
- Exécutez ceci :
php symfony plugin:publish-assets
- 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
















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 .= ”;
oups je vais passer par github pour signaler le bug…
Merci je regarde ça rapidement !