Comment ajouter des lien ou un bouton de SonataAdminBundle tableau de bord dans Symfony2
Je suis nouveau avec symfony2 et SonataAdminBundle.
J'ai ajouté 3 entités à la SonataAdminBundle tableau de bord, et ils apparaissent avec succès.
Les Entités apparaissent avec les liens par défaut - "Add new" et "Liste" des boutons.
Je veux être en mesure de faire ce qui suit
- Je veux ajouter un troisième lien de l'une des entités sur le tableau de bord.
- Je veux être en mesure d'ajouter un lien vers les boutons situés au-dessus de la grille dans la
par défaut la page de la liste. - Je veux être en mesure d'ajouter ou personnaliser les liens figurant dans le formulaire de Modifier ou de Créer une nouvelle page
Je n'ai pas été en mesure de trouver un moyen de le faire tout de ce qui précède, à la recherche pendant des heures, toute aide sera très appréciée.
grâce.
- J'ai utilisé cette stackoverflow.com/questions/11725476/... et utilisé la personnalisation de bundle modèles en copiant le modèle dans app/Resources/<bundle>/vues/Bloc/block_admin_list.html.brindille en plus de l'information de ce lien sonata-project.org/bundles/admin/master/doc/reference/... s'est avérée être utile
Vous devez vous connecter pour publier un commentaire.
À affichage d'éléments personnalisés dans le dashbord Sonata Admin utilise Sonate Bloc Bundle.
Pour ajouter un lien ou un bouton que vous avez besoin pour créer un nouveau bloc à l'aide de la Sonate de Bloquer l'Ensemble.
Le modèle de base (tableau de bord.html.twig) de l'Admin Bundle itération de blocs qui est configuré pour s'exécuter (dans le répertoire config.yml de l'application).
Encore, Admin Bundle parcourt tous vos entité blocs dans le modèle block_admin_list.html.brindille. La création de votre bloc personnalisé modèle c'est d'ici que vous pouvez prendre des disposition pour envelopper vos groupes personnalisés (sections) et les boutons de sorte qu'ils ont même sensation que ceux des entités des groupes.
Ok, c'était l'introduction.
Par exemple, nous voulons faire de la coutume rubrique newsletter.
Il y a des étapes:
Ad1) Créer un nouveau bloc de la classe
Général de l'instruction en vertu de l': http://sonata-project.org/bundles/block/master/doc/reference/your_first_block.html
Mon fichier ressemble à ceci:
J'ai ajouté quelques lignes de lecture de la Sonate de Médias Bundle fichiers de code.
Ad2) Créer un nouveau modèle de bloc
Mise en page, j'ai pris de block_admin_list.html.rameau de Sonata Admin bundle.
Mon fichier ressemble à ceci:
Après jc3) Créer de bloc de service
Dans votre bundle il y a un fichier dans lequel vous déclarez services (services.yml ou admin.yml). Quoi que ce soit. Mais il est important qu'il est branché dans la config.yml de votre demande dans les "importations" de la section.
Mon service de déclaration ressemble à ceci:
Ad4) Ajouter un nouveau service créé pour Sonate Bloc Bundle configuration
Cette configuration est mis dans la config.yml de votre application.
Ma config ressemble à ceci:
Ad5) Ajouter un nouveau service créé à Sonata Admin Bundle configuration
Cette configuration est mis dans la config.yml de votre application.
Ma config ressemble à ceci:
Ad6) Entrer tableau de bord et profiter de
Mon tableau de bord ressemble à ceci:
http://img805.imageshack.us/img805/2789/immaginezuq.png
C'est tout. Ressemble compliqué, mais pour être sincère, ce n'est pas tellement. Il est important, c'est un moyen propre de la modification de votre page de tableau de bord sans écraser ensemble de modèles sans une grande nécessité.
Tous ces Il a appris la lecture du code source de l'Admin Bundle 🙂 Toute la journée
J'ai eu des ennuis avec la méthode execute (je suis en utilisant la Sonate 2.3.x ).
Voici le code qui fonctionne pour moi.
Note BlockContextInterface et $blockContext->getBlock() :