Bonjour,

Commençons par expliquer ce qu’est l’admin generator de Symfony… Globalement, en 2 temps 3 mouvements, et quelques lignes de codes, cela nous permet de créer une interface pour administrer notre base de données. Typiquement, on se crée un phpmyadmin pour notre partie administration.

J’ai donc créer un petit « layout », le schéma de page globale à chaque page d’admin, avec un menu en haut pour accéder à chacune de mes tables, et j’ai laissé faire la magie Symfony :

menu_admin

une page d'admin... certes, c'est pas très joli ces inputs sombres... mais c'est lié à mon thème d'Ubuntu, qui permet de ne pas se fatiguer les yeux :)

Malgré tout, mieux vaut avoir quelques connaissances assez pointues en PHP pour comprendre comment ça fonctionne, et l’adapter à ses besoins… Car les « fatal error » ou autres « parse error » s’accumulent…

Déjà, premier réflexe, ajouter des méthodes __toString() à chacun de ses classes de la base de données objet.

Exemple, dans le fichier lib/model/MaTable.php :

class MaTable extends BaseMaTable
{
  public function __toString()
  {
    return $this->getName();
  }
}

Cela lui permettra de savoir quoi afficher quand vous faites des liens entre plusieurs tables (la méthode toString est une « méthode magique », qui est appelé quand on fait un echo sur un objet).

Autre déconvenue qui m’a pris bien plus de temps à résoudre… Quand vous faites des liens entre des tables, par exemple, une table qui relie les utilisateurs à des droits :

doselectjoinall

le doSelectJoinAll

L’idée est d’avoir, dans la liste, le nom du droit et le nom de l’utilisateur… et nom leurs id respectifs… La solution st venu du doSelectJoinAll, dans le fichier de configuration generator.yml :

      list:
        title: Droits des utilisateurs
        display: [user_id, credential_id, credential_comment]
        peer_method:  doSelectJoinAll

Très facilement, j’ai pu créer mes propres modules à la structure proposée par Symfony… Par exemple, ce module qui permet de créer des QCM, réalisé en « Ajax », à l’aide de Mootools…

qcm

création d'un QCM en javascript

Un petit défaut sur le HTML/CSS de base… Le filtre est une bonne idée… mais à moins d’avoir un écran de 50″, le div de filtre recouvre les champs de la table… Du coup, je vais devoir modifier le CSS pour le passer en dessous de la table…

filtre

un recouvrement de filtre pas très joli

Voila pour les grandes lignes… J’ai encore pas mal à explorer sur l’admin generator, mais l’essentiel est que, en pas trop longtemps, j’ai réussi à répondre à mon besoin ! Et c’est bien là l’intérêt d’un framework !

Be Sociable, Share!
Trackback

only 1 comment untill now

  1. Tour rapide et instructif, merci