I want to have a ModelAdmin interface show up as the default rather than Pages - is there a way to do this?
Yes, you can set the default login destination in your config.yml like this:
Security:
default_login_dest: 'admin/mymodeladmin'
You can set the default admin panel by adding the following your config.yml file:
AdminRootController:
default_panel: 'NumberOneSuperAwesomeAdmin'
Related
I have to override this template for my view:
views-view-fields.html.twig
My view name: banner_bim
My view block name: Block_1
I tried with:
views-view-field--banner_bim.html.twig
views-view-field--banner_bim--page.html.twig
views-view-field--banner-bim.html.twig
views-view-field--banner-bim--page.html.twig
None of these templates override base field template.
Any idea?
The correct one was:
views-view-field--banner_bim.html.twig
The problem was not the name of the file, but the cache.
I deleted the "Render cache" but it was necessary to clear the entire cache to see the change.
I am having a weird situation which has halted my progress for the second day now and I am almost going bald from pulling my hair on this. I have a custom block on the sonata admin dashboard which is not being found when I try to load the page.
I have gone over the configuration a couple of times and maybe I am missing something which an extra pair of eyes may be able to spot which is why I am posting this question here.
I have built my block as below and saved it under src\AppBundle\Block\NumbersBlockService.php
namespace AppBundle\Block;
use Symfony\Component\HttpFoundation\Response;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Validator\ErrorElement;
use Sonata\BlockBundle\Model\BlockInterface;
use Sonata\BlockBundle\Block\BaseBlockService;
use Sonata\BlockBundle\Block\BlockContextInterface;
use Doctrine\ORM\Query\ResultSetMapping;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use DoctrineExtensions\Query\Mysql;
class NumbersBlockService extends BaseBlockService
{
......
}
Then defined my service in the service.yml file as below:
sonata.block.service.topnumbers:
class: AppBundle\Block\NumbersBlockService
arguments:
- sonata.block.service.topnumbers
- "#templating"
- "#doctrine.orm.entity_manager"
- "#security.token_storage"
tags:
- { name: sonata.block }
My config.yml file includes the block like this
sonata_block:
default_contexts: [cms]
blocks:
sonata.user.block.menu: # used to display the menu in profile pages
sonata.user.block.account: # used to display menu option (login option)
sonata.block.service.text: # used to if you plan to use Sonata user routes
sonata.block.service.topnumbers:
and finally, I position the block on top with the line below
sonata_admin:
dashboard:
blocks:
- { position: top, type: sonata.block.service.topnumbers, class: col-md-12}
I have checked the tutorial on creating a custom block here https://sonata-project.org/bundles/block/master/doc/reference/your_first_block.html and everything seems to check out but I still get the following error below:
An exception has been thrown during the rendering of a template ("The block type "sonata.block.service.topnumbers" does not exist") in SonataAdminBundle:Core:dashboard.html.twig at line 60.
Someone please help put me out of my misery. Thanks in advance
I try to override layout template in Sonata Admin. I did all steps founded in official documentation, but my changes don`t work.
I did:
Copied from vendor appropriate template (standard_layout.html.twig) to app/Resources/SonataAdminBundle/views/. I will check if I override here template my changes applied to all of Admins in project (I want have this change only in one Admin)
In next step I created new file in my Bundle (Name/InfoBundle/Resources/views/JobOffer) and add there my custom template: findCandidate.html.twig. Below is content of this file:
https://gist.github.com/anonymous/5f4780a1ae8d7329cd91
Added to bundle service:
name_info.admin.offers:
class: Name\InfoBundle\Admin\JobOfferAdmin
tags:
- {name: sonata.admin, manager_type: orm, group: Info, label: Job offers}
arguments: [~, Name\Info\Entity\JobOffer, NameInfoBundle:JobOffer]
calls:
- [ setTemplate, [findCandidate, NameInfoBundle:JobOffer:findCandidate.html.twig]]
After that my changes are not applied. So probably I made mistake in services or maybe I have to call this template also in controller? I am not sure where I make mistake. Could anyone help me?
Probably you mistyped a template placeholder in setTemplate function.
Try to set it like:
calls:
- [setTemplate, [layout, NameInfoBundle:JobOffer:findCandidate.html.twig]]
It will change a standard_layout only for the selected admin.
Refering to the SoanataORMAdmin's documentation, it is possible to change the default route of object links.
By default, it's the edit route. I don't want it at all and need to change it to show without override all my admin class.
What is the better way to override the default route ?
Thanks.
The best way is to override the twig by extending SonataORMAdminBundle.
To do this, you need to :
install SonataEasyGenerate Bundle
use the command php app/console sonata:easy-extends:generate SonataORMAdminBundle
this will generate a new repository Application/Sonata/DoctrineORMAdminBundle
Then you need to go to Application/Sonata/DoctrineORMAdminBundle/Ressources/views/CRUD and paste the twigs from the vendors (vendor/Sonata/DoctrineORMAdminBundle/Ressources/views/CRUD)
Finally, change the links in the twigs.
For example, if you want to call the list view to call the show route for a many to one relation :
edit list_orm_many_to_one.html.twig to call generateObjectUrl('show',...) instead of generateObjectUrl('edit',...)
Hope this will help.
I'm using KnpMenuBudle in two different bundles of the same application. In one bundle I use also BraincraftedBootstrapBundle, so in my app/config/config.yml I put this specific config to style menus with bootstrap:
knp_menu:
twig:
template: "BraincraftedBootstrapBundle:Menu:menu.html.twig"
The problem is that configuration is set globally, so when i try to use KnpMenu in the bundle that doesn't require bootstrap I get an error.
How can I set this specific configuration for one bundle only?
I believe you can specify the template you want when you call the knp_menu_render twig method in your layout:
{{ knp_menu_render('main', {'template': 'BraincraftedBootstrapBundle:Menu:menu.html.twig'}, 'custom') }}