mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
add declaration for customizables classes refs #265
This commit is contained in:
parent
474318e006
commit
475926ca53
@ -67,3 +67,7 @@ swiftmailer:
|
|||||||
username: "%mailer_user%"
|
username: "%mailer_user%"
|
||||||
password: "%mailer_password%"
|
password: "%mailer_password%"
|
||||||
spool: { type: memory }
|
spool: { type: memory }
|
||||||
|
|
||||||
|
chill_custom_fields:
|
||||||
|
customizables_entities:
|
||||||
|
- { class: Chill\CustomFieldsBundle\Entity\BlopEntity, name: blop_entity }
|
||||||
|
@ -62,7 +62,7 @@ class CustomFieldsGroupController extends Controller
|
|||||||
*/
|
*/
|
||||||
private function createCreateForm(CustomFieldsGroup $entity)
|
private function createCreateForm(CustomFieldsGroup $entity)
|
||||||
{
|
{
|
||||||
$form = $this->createForm(new CustomFieldsGroupType(), $entity, array(
|
$form = $this->createForm('custom_fields_group', $entity, array(
|
||||||
'action' => $this->generateUrl('customfieldsgroup_create'),
|
'action' => $this->generateUrl('customfieldsgroup_create'),
|
||||||
'method' => 'POST',
|
'method' => 'POST',
|
||||||
));
|
));
|
||||||
@ -142,7 +142,7 @@ class CustomFieldsGroupController extends Controller
|
|||||||
*/
|
*/
|
||||||
private function createEditForm(CustomFieldsGroup $entity)
|
private function createEditForm(CustomFieldsGroup $entity)
|
||||||
{
|
{
|
||||||
$form = $this->createForm(new CustomFieldsGroupType(), $entity, array(
|
$form = $this->createForm('custom_fields_group', $entity, array(
|
||||||
'action' => $this->generateUrl('customfieldsgroup_update', array('id' => $entity->getId())),
|
'action' => $this->generateUrl('customfieldsgroup_update', array('id' => $entity->getId())),
|
||||||
'method' => 'PUT',
|
'method' => 'PUT',
|
||||||
));
|
));
|
||||||
|
@ -24,5 +24,12 @@ class ChillCustomFieldsExtension extends Extension
|
|||||||
|
|
||||||
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
|
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
|
||||||
$loader->load('services.yml');
|
$loader->load('services.yml');
|
||||||
|
|
||||||
|
//add at least a blank array at 'customizable_entities' options
|
||||||
|
$customizable_entities = (isset($config['customizables_entities'])
|
||||||
|
&& count($config['customizables_entities']) > 0)
|
||||||
|
? $config['customizables_entities'] : array();
|
||||||
|
|
||||||
|
$container->setParameter('chill_custom_fields.customizable_entities', $customizable_entities);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,11 +18,22 @@ class Configuration implements ConfigurationInterface
|
|||||||
public function getConfigTreeBuilder()
|
public function getConfigTreeBuilder()
|
||||||
{
|
{
|
||||||
$treeBuilder = new TreeBuilder();
|
$treeBuilder = new TreeBuilder();
|
||||||
$rootNode = $treeBuilder->root('cl_custom_fields');
|
$rootNode = $treeBuilder->root('chill_custom_fields');
|
||||||
|
|
||||||
|
$classInfo = "The class which may receive custom fields";
|
||||||
|
$nameInfo = "The name which will appears in the user interface. May be translatable";
|
||||||
|
|
||||||
// Here you should define the parameters that are allowed to
|
$rootNode
|
||||||
// configure your bundle. See the documentation linked above for
|
->children()
|
||||||
// more information on that topic.
|
->arrayNode('customizables_entities')
|
||||||
|
->prototype('array')
|
||||||
|
->children()
|
||||||
|
->scalarNode('class')->isRequired()->info($classInfo)->end()
|
||||||
|
->scalarNode('name') ->isRequired()->info($nameInfo) ->end()
|
||||||
|
->end()
|
||||||
|
->end()
|
||||||
|
->end()
|
||||||
|
;
|
||||||
|
|
||||||
return $treeBuilder;
|
return $treeBuilder;
|
||||||
}
|
}
|
||||||
|
@ -5,18 +5,44 @@ namespace Chill\CustomFieldsBundle\Form;
|
|||||||
use Symfony\Component\Form\AbstractType;
|
use Symfony\Component\Form\AbstractType;
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
|
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
|
||||||
|
use Symfony\Component\Translation\TranslatorInterface;
|
||||||
|
|
||||||
|
|
||||||
class CustomFieldsGroupType extends AbstractType
|
class CustomFieldsGroupType extends AbstractType
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private $customizableEntities;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @var \Symfony\Component\Translation\TranslatorInterface
|
||||||
|
*/
|
||||||
|
private $translator;
|
||||||
|
|
||||||
|
public function __construct(array $customizableEntities, TranslatorInterface $translator)
|
||||||
|
{
|
||||||
|
$this->customizableEntities = $customizableEntities;
|
||||||
|
$this->translator = $translator;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param FormBuilderInterface $builder
|
* @param FormBuilderInterface $builder
|
||||||
* @param array $options
|
* @param array $options
|
||||||
*/
|
*/
|
||||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
{
|
{
|
||||||
|
//prepare translation
|
||||||
|
$customizableEntites = array();
|
||||||
|
|
||||||
|
foreach($this->customizableEntities as $key => $definition) {
|
||||||
|
$customizableEntites[$definition['class']] = $this->translator->trans($definition['name']);
|
||||||
|
}
|
||||||
|
|
||||||
$builder
|
$builder
|
||||||
->add('name')
|
->add('name')
|
||||||
->add('entity')
|
->add('entity', 'choice', array(
|
||||||
|
'choices' => $customizableEntites
|
||||||
|
))
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,6 +61,6 @@ class CustomFieldsGroupType extends AbstractType
|
|||||||
*/
|
*/
|
||||||
public function getName()
|
public function getName()
|
||||||
{
|
{
|
||||||
return 'cl_customfieldsbundle_customfieldsgroup';
|
return 'custom_fields_group';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,9 +11,18 @@ services:
|
|||||||
class: Chill\CustomFieldsBundle\Form\CustomFieldType
|
class: Chill\CustomFieldsBundle\Form\CustomFieldType
|
||||||
arguments:
|
arguments:
|
||||||
- "@chill.custom_field_compiler"
|
- "@chill.custom_field_compiler"
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
- { name: 'form.type', alias: 'custom_field_choice' }
|
- { name: 'form.type', alias: 'custom_field_choice' }
|
||||||
|
|
||||||
|
chill.custom_field.custom_fields_group_type:
|
||||||
|
class: Chill\CustomFieldsBundle\Form\CustomFieldsGroupType
|
||||||
|
arguments:
|
||||||
|
- %chill_custom_fields.customizable_entities%
|
||||||
|
- "@translator"
|
||||||
|
tags:
|
||||||
|
- { name: 'form.type', alias: 'custom_fields_group' }
|
||||||
|
|
||||||
chill.custom_field.custom_field_type:
|
chill.custom_field.custom_field_type:
|
||||||
class: Chill\CustomFieldsBundle\Form\Type\CustomFieldType
|
class: Chill\CustomFieldsBundle\Form\Type\CustomFieldType
|
||||||
arguments:
|
arguments:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user