| @@ 10-51 (lines=42) @@ | ||
| 7 | use rtens\domin\parameters\Color; |
|
| 8 | use watoki\reflect\type\ClassType; |
|
| 9 | ||
| 10 | class ColorField implements WebField { |
|
| 11 | ||
| 12 | /** |
|
| 13 | * @param Parameter $parameter |
|
| 14 | * @return bool |
|
| 15 | */ |
|
| 16 | public function handles(Parameter $parameter) { |
|
| 17 | return $parameter->getType() == new ClassType(Color::class); |
|
| 18 | } |
|
| 19 | ||
| 20 | /** |
|
| 21 | * @param Parameter $parameter |
|
| 22 | * @param string $serialized |
|
| 23 | * @return mixed |
|
| 24 | */ |
|
| 25 | public function inflate(Parameter $parameter, $serialized) { |
|
| 26 | return $serialized ? Color::fromHex($serialized) : null; |
|
| 27 | } |
|
| 28 | ||
| 29 | /** |
|
| 30 | * @param Parameter $parameter |
|
| 31 | * @param Color $value |
|
| 32 | * @return string |
|
| 33 | */ |
|
| 34 | public function render(Parameter $parameter, $value) { |
|
| 35 | return (string)new Element('input', array_merge([ |
|
| 36 | 'type' => 'color', |
|
| 37 | 'name' => $parameter->getName(), |
|
| 38 | 'value' => $value ? $value->asHex() : '' |
|
| 39 | ], $parameter->isRequired() ? [ |
|
| 40 | 'required' => 'required' |
|
| 41 | ] : [])); |
|
| 42 | } |
|
| 43 | ||
| 44 | /** |
|
| 45 | * @param Parameter $parameter |
|
| 46 | * @return array|Element[] |
|
| 47 | */ |
|
| 48 | public function headElements(Parameter $parameter) { |
|
| 49 | return []; |
|
| 50 | } |
|
| 51 | } |
|
| @@ 9-51 (lines=43) @@ | ||
| 6 | use rtens\domin\parameters\Text; |
|
| 7 | use watoki\reflect\type\ClassType; |
|
| 8 | ||
| 9 | class TextField implements WebField { |
|
| 10 | ||
| 11 | /** |
|
| 12 | * @param Parameter $parameter |
|
| 13 | * @return bool |
|
| 14 | */ |
|
| 15 | public function handles(Parameter $parameter) { |
|
| 16 | return $parameter->getType() == new ClassType(Text::class); |
|
| 17 | } |
|
| 18 | ||
| 19 | /** |
|
| 20 | * @param Parameter $parameter |
|
| 21 | * @param string $serialized |
|
| 22 | * @return mixed |
|
| 23 | */ |
|
| 24 | public function inflate(Parameter $parameter, $serialized) { |
|
| 25 | return new Text($serialized); |
|
| 26 | } |
|
| 27 | ||
| 28 | /** |
|
| 29 | * @param Parameter $parameter |
|
| 30 | * @param Text $value |
|
| 31 | * @return string |
|
| 32 | */ |
|
| 33 | public function render(Parameter $parameter, $value) { |
|
| 34 | return (string)new Element('textarea', array_merge([ |
|
| 35 | 'name' => $parameter->getName(), |
|
| 36 | 'class' => 'form-control', |
|
| 37 | ], $parameter->isRequired() ? [ |
|
| 38 | 'required' => 'required' |
|
| 39 | ] : []), [ |
|
| 40 | $value ? $value->getContent() : null |
|
| 41 | ]); |
|
| 42 | } |
|
| 43 | ||
| 44 | /** |
|
| 45 | * @param Parameter $parameter |
|
| 46 | * @return array|\rtens\domin\delivery\web\Element[] |
|
| 47 | */ |
|
| 48 | public function headElements(Parameter $parameter) { |
|
| 49 | return []; |
|
| 50 | } |
|
| 51 | } |
|