add customfield text + fix options in custom fields

This commit is contained in:
2014-11-08 11:55:59 +01:00
parent 4c9b6a6a15
commit 99a88e8705
5 changed files with 58 additions and 35 deletions

View File

@@ -1,19 +0,0 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
namespace;
/**
* Description of CustomFieldChoiceWithOther
*
* @author Julien Fastré <julien.fastre@champs-libres.coop>
*/
class CustomFieldChoiceWithOther
{
//put your code here
}

View File

@@ -15,9 +15,24 @@ use Symfony\Component\Form\FormBuilderInterface;
*/
class CustomFieldText implements CustomFieldInterface
{
const MAX_LENGTH = 'maxLength';
/**
* Create a form according to the maxLength option
*
* if maxLength < 256 THEN the form type is 'text'
* if not, THEN the form type is textarea
*
* @param FormBuilderInterface $builder
* @param CustomField $customField
*/
public function buildForm(FormBuilderInterface $builder, CustomField $customField)
{
$builder->add($customField->getSlug(), 'text', array(
$type = ($customField->getOptions()[self::MAX_LENGTH] < 256) ? 'text'
: 'textarea';
$builder->add($customField->getSlug(), $type, array(
'label' => $customField->getLabel()
));
}
@@ -42,8 +57,10 @@ class CustomFieldText implements CustomFieldInterface
return 'text field';
}
public function buildOptionsForm(FormBuilderInterface $builder)
{
return null;
}
public function buildOptionsForm(FormBuilderInterface $builder)
{
return $builder
->add(self::MAX_LENGTH, 'integer', array('empty_data' => 256))
;
}
}