TemplateAdmin.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace TemplateBundle\Admin;
  3. use Base\AdminBundle\Admin\BaseAdmin;
  4. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  5. use Sonata\AdminBundle\Datagrid\ListMapper;
  6. use Sonata\AdminBundle\Form\FormMapper;
  7. use Sonata\AdminBundle\Show\ShowMapper;
  8. use TemplateBundle\Entity\Template;
  9. class TemplateAdmin extends BaseAdmin
  10. {
  11. public function getTemplate($name)
  12. {
  13. switch ($name) {
  14. case 'edit':
  15. return 'TemplateBundle:Template:template_edit.html.twig';
  16. break;
  17. default:
  18. return parent::getTemplate($name);
  19. break;
  20. }
  21. }
  22. function getNewInstance()
  23. {
  24. return new Template($this->get('security.token_storage'));
  25. }
  26. /**
  27. * @param DatagridMapper $datagridMapper
  28. */
  29. protected function configureDatagridFilters(DatagridMapper $datagridMapper)
  30. {
  31. $datagridMapper
  32. ->add('name');
  33. }
  34. /**
  35. * @param ListMapper $listMapper
  36. */
  37. protected function configureListFields(ListMapper $listMapper)
  38. {
  39. $listMapper
  40. ->add('name')
  41. ->add('content', 'string', array('template' => 'TemplateBundle:CRUD:content_field.html.twig','data' => 'list'))
  42. ->add('_action', null, array(
  43. 'actions' => array(
  44. 'show' => array(),
  45. 'edit' => array(),
  46. 'clone' => array(
  47. 'template' => '@BaseAdmin/CRUD/list__action_clone.html.twig'
  48. ),
  49. 'delete' => array(),
  50. )
  51. ));
  52. }
  53. /**
  54. * @param FormMapper $formMapper
  55. */
  56. protected function configureFormFields(FormMapper $formMapper)
  57. {
  58. $formMapper
  59. ->add('name')
  60. ->add('content', null, array('attr' => array('style' => 'height: 300px')));
  61. }
  62. /**
  63. * @param ShowMapper $showMapper
  64. */
  65. protected function configureShowFields(ShowMapper $showMapper)
  66. {
  67. $showMapper
  68. ->add('name')
  69. ->add('content','string', array(
  70. 'template' => 'TemplateBundle:Template:show_template.html.twig',
  71. ));
  72. }
  73. /**
  74. * @param string $action
  75. * @param Template $object
  76. *
  77. * @return array
  78. */
  79. public function getActionButtons($action, $object = null)
  80. {
  81. $actions = parent::getActionButtons($action, $object);
  82. if ($this->isCurrentRoute('show')) {
  83. $actions['clone'] = [
  84. 'template' => '@BaseAdmin/CRUD/show__action_clone.html.twig',
  85. ];
  86. }
  87. return $actions;
  88. }
  89. }