Quelle est la meilleure façon de personnaliser / ajouter des pages au générateur d'administration?

StackOverflow https://stackoverflow.com/questions/2522322

Question

J'utilise Symfony 1.4 et Doctrine.

backend de mon application a été construit en utilisant le générateur d'administration de Symfony. Il fonctionne très bien quand je veux montrer des choses de base.

Mais tehre n'y a pas beaucoup de documentation sur la façon de l'améliorer et ajouter de nouvelles pages.

Prenons un exemple: Je veux la liste des articles publiés sur une page et à être publié des articles sur l'autre. Je l'ai utilisé plusieurs façons de dans mon application, mais ne peut pas savoir quelle est la meilleure façon est:

  • jouer avec des filtres, puis modifier les modèles en fonction de l'endroit où vous êtes?
  • créer un autre module appelant un table_method différent?
  • une autre technique que je ne sais pas?

Quelle est la meilleure pratique ici? Comment les gars faites-vous habituellement à personnaliser votre admin?

Était-ce utile?

La solution

auto-promotion sans vergogne ici. J'ai écrit un message cette semaine sur la personnalisation du générateur d'administration - une des choses que j'ai été d'ajouter de nouvelles pages etc dans le générateur. La façon dont je l'ai fait est probablement un peu hardcore, mais ça fonctionne bien: -)

Le meilleur endroit pour commencer à chercher sont les actions générées automatiquement de classe pour votre module et son extension dans votre fichier app/module/actions/actions.class.php. En particulier, l'action index qui met en place le téléavertisseur ORM. Vous devriez être en mesure d'utiliser toute question de votre ORM pour alimenter votre téléavertisseur ORM avec des données - dans les cas où j'ai besoin de le modifier, j'utilise une requête Doctrine générée de la même manière que la normale pour passer au téléavertisseur. Cela signifie que je peux personnaliser les champs sont affichés, y compris ceux d'autres tables jointes dans etc dans une seule requête. Ceci est votre « méthode de table » mentionné ci-dessus.

Filtres fonctionnera tout aussi bien - cela dépend de votre cas d'utilisation et si les filtres sont appropriés, en particulier pour l'affichage. Si vous voulez un /showpublisheditems page, alors je partirais avec une nouvelle action et la nouvelle requête pour le pager. Si vous voulez sur la volée personnalisation, puis aller avec l'option de filtre.

Le filtre docs je pensais étaient un peu défaut dans des endroits trop - conseil rapide, ils cherchent une méthode addYourColumnNameColumnQuery() dans la classe de filtre haut niveau (lib / filtre / ...) qui prend une requête passée et utilise par exemple addWhere("x.column_name = ?", $foo) à la requête transmise.

Bleh :-) désolé, c'était un peu d'une décharge de cerveau, mais nous espérons qu'il aide! : -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top