Inheritance: extends Former\Traits\FormerObject, implements Former\Interfaces\FieldInterface
Esempio n. 1
0
 /**
  * Apply methods to focused checkable
  */
 public function __call($method, $parameters)
 {
     $focused = $this->setOnFocused('attributes.' . $method, array_get($parameters, 0));
     if ($focused) {
         return $this;
     }
     return parent::__call($method, $parameters);
 }
Esempio n. 2
0
 /**
  * Set a minimum and maximum value to a field
  *
  * @param $min
  * @param $max
  */
 public function setBetween($min, $max)
 {
     if ($this->field->isOfType('number') == 'min') {
         // min, max values for generation of the pattern
         $this->field->min($min);
         $this->field->max($max);
     } else {
         $this->field->pattern('.{' . $min . ',' . $max . '}');
         // still let the browser limit text input after reaching the max
         $this->field->maxlength($max);
     }
 }
Esempio n. 3
0
 /**
  * Prints out the current tag
  *
  * @return string An input tag
  */
 public function render()
 {
     $this->setAttribute('type', 'text');
     $this->addClass('search-query');
     $this->setId();
     $this->removeAttribute('name');
     $name = $this->name;
     // Render main input
     $input = parent::render();
     // Render list of selected users
     $input .= $this->createDataList('datalist_' . $name);
     return $input;
 }
Esempio n. 4
0
 /**
  * Prints out the current tag
  *
  * @return string An input tag
  */
 public function render()
 {
     // Particular case of the search element
     if ($this->isOfType('search')) {
         $this->asSearch();
     }
     $this->setId();
     // Render main input
     $input = parent::render();
     // If we have a datalist to append, print it out
     if ($this->datalist) {
         $input .= $this->createDatalist($this->list, $this->datalist);
     }
     return $input;
 }
Esempio n. 5
0
 /**
  * Prints out the current tag
  *
  * @return string An input file tag
  */
 public function render()
 {
     // Maximum file size
     $hidden = $this->maxSize ? HtmlInput::hidden('MAX_FILE_SIZE', $this->maxSize) : null;
     return parent::render() . $hidden;
 }
Esempio n. 6
0
 /**
  * Wrap a field with prepended and appended items
  *
  * @param  Field $field
  * @param  array $prepend
  * @param  array $append
  *
  * @return string A field concatented with prepended and/or appended items
  */
 public function prependAppend($field, $prepend, $append)
 {
     $return = '';
     foreach ($prepend as $item) {
         $return .= '<div class="two mobile-one columns"><span class="prefix">' . $item . '</span></div>';
     }
     $return .= '<div class="ten mobile-three columns">' . $field->render() . '</div>';
     foreach ($append as $item) {
         $return .= '<div class="two mobile-one columns"><span class="postfix">' . $item . '</span></div>';
     }
     return $return;
 }
Esempio n. 7
0
 /**
  * Create a label for a field
  *
  * @param Field  $field
  * @param Element $label The field label if non provided
  *
  * @return string A label
  */
 public function createLabelOf(Field $field, Element $label = null)
 {
     // Get the label and its informations
     if (!$label) {
         $label = $field->getLabel();
     }
     // Get label "for"
     $for = $field->id ?: $field->getName();
     // Get label text
     $text = $label->getValue();
     if (!$text) {
         return false;
     }
     // Append required text
     if ($field->isRequired()) {
         $text .= $this->app['former']->getOption('required_text');
     }
     // Render plain label if checkable, else a classic one
     $label->setValue($text);
     if (!$field->isCheckable()) {
         $label->for($for);
     }
     return $label;
 }
Esempio n. 8
0
 /**
  * Wrap a field with prepended and appended items
  *
  * @param  Field $field
  * @param  array $prepend
  * @param  array $append
  *
  * @return string A field concatented with prepended and/or appended items
  */
 public function prependAppend($field, $prepend, $append)
 {
     $return = '<div class="input-group">';
     $return .= join(null, $prepend);
     $return .= $field->render();
     $return .= join(null, $append);
     $return .= '</div>';
     return $return;
 }
Esempio n. 9
0
 /**
  * Set a minimum value to a field
  *
  * @param integer $min
  */
 private function setMin($min)
 {
     $attribute = $this->field->isOfType('number') ? 'min' : 'minlength';
     $this->field->{$attribute}($min);
 }
Esempio n. 10
0
 /**
  * Renders the select
  *
  * @return string A <select> tag
  */
 public function render()
 {
     // Multiselects
     if ($this->isOfType('multiselect')) {
         if (!isset($this->attributes['id'])) {
             $this->setAttribute('id', $this->name);
         }
         $this->multiple();
         $this->name .= '[]';
     }
     if (!$this->value instanceof \ArrayAccess) {
         $this->value = (array) $this->value;
     }
     // Mark selected values as selected
     if ($this->hasChildren() and !empty($this->value)) {
         foreach ($this->value as $value) {
             if (is_object($value) && method_exists($value, 'getKey')) {
                 $value = $value->getKey();
             }
             $this->selectValue($value);
         }
     }
     // Add placeholder text if any
     if ($placeholder = $this->getPlaceholder()) {
         array_unshift($this->children, $placeholder);
     }
     $this->value = null;
     return parent::render();
 }
Esempio n. 11
0
 /**
  * Wrap a field with prepended and appended items
  *
  * @param  Field $field
  * @param  array $prepend
  * @param  array $append
  *
  * @return string A field concatented with prepended and/or appended items
  */
 public function prependAppend($field, $prepend, $append)
 {
     $return = '';
     foreach ($prepend as $item) {
         $return .= '<div class="large-2 small-3 columns"><span class="prefix">' . $item . '</span></div>';
     }
     $return .= '<div class="large-10 small-9 columns">' . $field->render() . '</div>';
     foreach ($append as $item) {
         $return .= '<div class="large-2 small-3 columns"><span class="postfix">' . $item . '</span></div>';
     }
     return $return;
 }
Esempio n. 12
0
 /**
  * Wrap a field with prepended and appended items
  *
  * @param  Field $field
  * @param  array $prepend
  * @param  array $append
  *
  * @return string A field concatented with prepended and/or appended items
  */
 public function prependAppend($field, $prepend, $append)
 {
     $class = array();
     if ($prepend) {
         $class[] = 'input-prepend';
     }
     if ($append) {
         $class[] = 'input-append';
     }
     $return = '<div class="' . join(' ', $class) . '">';
     $return .= join(null, $prepend);
     $return .= $field->render();
     $return .= join(null, $append);
     $return .= '</div>';
     return $return;
 }
Esempio n. 13
0
 /**
  * Encore text type
  *
  * @param Container $app
  * @param strign    $type
  * @param string    $name
  * @param string    $label
  * @param string    $value
  * @param array     $attributes
  */
 public function __construct(Container $app, $type, $name, $label, $value, $attributes)
 {
     parent::__construct($app, $type, $name, $label, $value, $attributes);
     $this->type = 'text';
 }
Esempio n. 14
0
 /**
  * Easier arguments order for hidden fields
  *
  * @param Container $app        The Container
  * @param string    $type       hidden
  * @param string    $name       Field names
  * @param string    $value      Its value
  * @param array     $attributes Attributes
  */
 public function __construct(Container $app, $type, $name, $value, $attributes)
 {
     parent::__construct($app, $type, $name, '', $value, $attributes);
 }
Esempio n. 15
0
 /**
  * Renders the select
  *
  * @return string A <select> tag
  */
 public function render()
 {
     // Multiselects
     if ($this->isOfType('multiselect')) {
         if (!isset($this->attributes['id'])) {
             $this->setAttribute('id', $this->name);
         }
         $this->multiple();
         $this->name .= '[]';
     }
     $this->value = (array) $this->value;
     // Mark selected values as selected
     if ($this->hasChildren() and !empty($this->value)) {
         foreach ($this->value as $value) {
             $this->selectValue($value);
         }
     }
     // Add placeholder text if any
     if ($placeholder = $this->getPlaceholder()) {
         array_unshift($this->children, $placeholder);
     }
     $this->value = null;
     return parent::render();
 }
Esempio n. 16
0
 /**
  * Set the matching ID on a field if possible
  * Override to prefix the id with group-
  *
  * @param string $name
  *
  * @return string
  */
 protected function getUniqueId($name)
 {
     return 'group-' . parent::getUniqueId($name);
 }