deblan.tv/vendor/trinity/src/Trinity/.svn/pristine/30/30e63481cb8d90a91f95c0e4b5b6778fe7f4cabc.svn-base
2015-03-02 21:57:49 +01:00

56 lines
1.5 KiB
Plaintext

<?php
namespace Trinity\Bundle\SlideshowBundle\Form\Type;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\Form\FormInterface;
use Trinity\Bundle\SlideshowBundle\Block\SlideshowItemsContainerBlock;
use Trinity\Bundle\SlideshowBundle\Model\SlideshowItemQuery;
use Trinity\Bundle\ContentManagerBundle\Form\Type\BlockType;
class SlideshowItemsContainerBlockType extends BlockType
{
protected $options = array(
'data_class' => 'Trinity\Bundle\SlideshowBundle\Block\SlideshowItemsContainerBlock',
'cascade_validation' => true,
);
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add(
'value',
'hidden'
);
$builder->add(
'slideshow_items',
'collection',
array(
'type' => new SlideshowItemType(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => true
)
);
}
public function buildView(FormView $view, FormInterface $form, array $options)
{
$data = $form->getData();
if ($data === null) {
$data = new SlideshowItemsContainerBlock();
}
$view->vars = array_replace($view->vars, array(
'slideshow_items' => $data->getSlideshowItems()
));
}
public function getName()
{
return 'slideshow_items_container_block';
}
}