mindy / form
3.0.3
2016-10-14 09:24 UTC
Requires
- php: >=7.0
- mindy/helper: ^4.0
- mindy/validation: ^2.0
This package is not auto-updated.
Last update: 2024-11-09 16:37:41 UTC
README
Widget
Использование виджетов необходимо когда к полю формы необходимо добавить некую логику. К примеру подключение дополнительного поля с текстом лицензии, отображение рейтинга с помощью стороннего плагина, подключение карты и так далее.
Пример виджета:
<?php namespace Mindy\Form\Widget; use Mindy\Form\Widget; use Mindy\Helper\JavaScript; use Mindy\Helper\JavaScriptExpression; class RatingWidget extends Widget { public $options = []; /** * @return string */ public function render() { $field = $this->getField(); $jsOptions = JavaScript::encode(array_merge([ 'starType' => 'i', 'numberMax' => 5, 'score' => $field->getValue(), 'click' => new JavaScriptExpression('function(score, evt) { $("#' . $field->getHtmlId() . '").val(score); }') ], $this->options)); $js = "<div id='{$field->getHtmlId()}_rating' class='rating-input'></div><script type='text/javascript'>$('#{$field->getHtmlId()}_rating').raty({$jsOptions});</script>"; return $field->renderInput() . $js; } }
Использование:
<?php class MyForm extends Form { public function getFields() { return [ 'rating' => [ 'class' => CharField::class, 'widget' => new RatingWidget ] ]; } }