56 lines
1.5 KiB
PHP
56 lines
1.5 KiB
PHP
<?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';
|
|
}
|
|
} |