<?php
namespace App\Block;
use Sonata\BlockBundle\Block\BlockContextInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Validator\ErrorElement;
use Sonata\AdminBundle\Admin\Pool;
use Sonata\BlockBundle\Model\BlockInterface;
use Sonata\BlockBundle\Block\BaseBlockService;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Doctrine\ORM\EntityManager;
class DashboardBlockService extends BaseBlockService
{
/** * @var EntityManager */
protected $em;
public function __construct(
$name,
EngineInterface $templating,
Pool $pool,
EntityManager $em) {
parent::__construct($name, $templating);
$this->pool = $pool;
$this->em = $em;
}
/**
* {@inheritdoc}
*/
public function getName()
{
return 'Dashboard';
}
/**
* {@inheritdoc}
*/
public function execute(BlockContextInterface $blockContext, Response $response = null)
{
// Votre code métier...
echo '<pre>';var_dump('CallFromBLockService'); echo '</pre>----------';
// merge settings
$settings = array_merge($this->getDefaultSettings(), $blockContext->getSettings());
return $this->renderResponse($blockContext->getTemplate(), array(
'block' => $blockContext->getBlock(),
'base_template' => $this->pool->getTemplate('layout'),
'settings' => $blockContext->getSettings(),
'test' => "test"
), $response);
}
/**
* {@inheritdoc}
*/
public function setDefaultSettings(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'title' => 'Tableau de bord',
'template' => 'admin/Block/TableauDeBord.html.twig' // Le template à render dans execute()
));
}
public function getDefaultSettings()
{
return array();
}
}