mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
92 lines
2.2 KiB
PHP
92 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace Chill\CustomFieldsBundle\CustomFields;
|
|
|
|
use Chill\CustomFieldsBundle\CustomFields\CustomFieldInterface;
|
|
use Chill\CustomFieldsBundle\Entity\CustomField;
|
|
use Symfony\Component\Form\FormBuilderInterface;
|
|
use Doctrine\ORM\EntityManagerInterface;
|
|
use Chill\CustomFieldsBundle\Form\DataTransformer\CustomFieldDataTransformer;
|
|
use Chill\CustomFieldsBundle\Form\AdressType;
|
|
|
|
/**
|
|
* Description of CustomFieldAddress
|
|
*
|
|
* @author Julien Fastré <julien.fastre@champs-libres.coop>
|
|
*/
|
|
class CustomFieldAddress implements CustomFieldInterface
|
|
{
|
|
|
|
/**
|
|
*
|
|
* @var EntityManagerInterface
|
|
*/
|
|
public $om;
|
|
|
|
public function __construct(EntityManagerInterface $om)
|
|
{
|
|
$this->om = $om;
|
|
}
|
|
|
|
public function buildForm(FormBuilderInterface $builder, CustomField $customField)
|
|
{
|
|
$builder->add(
|
|
$builder->create('address', 'entity', array(
|
|
'class' => 'ChillCustomFieldsBundle:Adress',
|
|
'multiple' => true,
|
|
'expanded' => true
|
|
)
|
|
)->addModelTransformer(new CustomFieldDataTransformer(
|
|
$this,
|
|
$customField)
|
|
)
|
|
);
|
|
}
|
|
|
|
public function getName()
|
|
{
|
|
return 'CF address';
|
|
}
|
|
|
|
public function render($value, CustomField $customField)
|
|
{
|
|
|
|
}
|
|
|
|
public function buildOptionsForm(FormBuilderInterface $builder)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public function deserialize($serialized, CustomField $customField)
|
|
{
|
|
// if ($serialized === NULL) {
|
|
// return null;
|
|
// }
|
|
//
|
|
// return $this->om->getRepository('ChillCustomFieldsBundle:Adress')
|
|
// ->find($serialized);
|
|
|
|
return $this->om->getRepository('ChillCustomFieldsBundle:Adress')
|
|
->findBy(array('id' => $serialized));
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param \Chill\CustomFieldsBundle\Entity\Adress $value
|
|
* @param CustomField $customField
|
|
* @return type
|
|
*/
|
|
public function serialize($value, CustomField $customField)
|
|
{
|
|
$arrayId = array();
|
|
|
|
foreach($value as $address) {
|
|
$arrayId[] = $address->getId();
|
|
}
|
|
|
|
return $arrayId;
|
|
}
|
|
|
|
}
|