private function getClass(Parameter $parameter) { /** @var ClassType $type */ $type = $parameter->getType(); $class = $type->getClass(); return $class; }
/** * @param Parameter $parameter * @param string $serialized * @return mixed * @throws \Exception */ public function inflate(Parameter $parameter, $serialized) { if (!$parameter->getType()->is(intval($serialized))) { throw new \Exception("[{$serialized}] is not in range " . $parameter->getType()); } return (int) $serialized; }
/** * @param Parameter $parameter * @param File|null $file * @return string */ protected function renderImagePreservation(Parameter $parameter, File $file = null) { if ($file === null) { return ''; } return (string) new Element('p', [], [new Element('input', ['type' => 'hidden', 'name' => $parameter->getName() . '[name]', 'value' => $file->getName()]), new Element('input', ['type' => 'hidden', 'name' => $parameter->getName() . '[type]', 'value' => $file->getType()]), new Element('input', ['type' => 'hidden', 'name' => $parameter->getName() . '[data]', 'value' => base64_encode($file->getContent())]), (new FileRenderer())->render($file)]); }
/** * @param Parameter $parameter * @return EnumerationType */ private function getType(Parameter $parameter) { $type = $parameter->getType(); if (!$type instanceof EnumerationType) { throw new \InvalidArgumentException("[{$type}] must be an EnumerationType"); } return $type; }
private function getTypes(Parameter $parameter) { $type = $parameter->getType(); if (!$type instanceof MultiType) { throw new \InvalidArgumentException("[{$type}] must be a MultiType"); } return $type->getTypes(); }
private function getInnerParameter(Parameter $parameter) { $type = $parameter->getType(); if (!$type instanceof NullableType) { throw new \InvalidArgumentException("[{$type}] is not a NullableType"); } return new Parameter($parameter->getName() . '-value', $type->getType()); }
protected function renderComboBox(Parameter $parameter, $value, $fieldNameSuffix = '', $options = []) { $id = str_replace(['[', ']'], '-', $parameter->getName()); $optionsString = json_encode($options); $children = $this->renderOptions($parameter, (string) $value); $children[] = new Element('script', [], ["\n \$(function(){\n \$('#{$id}').combobox({$optionsString});\n });\n "]); return (string) new Element('select', ['name' => $parameter->getName() . $fieldNameSuffix, 'id' => $id, 'class' => 'form-control combobox'], $children); }
private function getClass(Parameter $parameter) { $type = $parameter->getType(); if (!$type instanceof ClassType) { throw new \InvalidArgumentException("[{$type}] is not a ClassType"); } return $type->getClass(); }
/** * @param Parameter $parameter * @return string */ private function getType(Parameter $parameter) { switch (get_class($parameter->getType())) { case IntegerType::class: return 'number'; default: return 'text'; } }
/** * @param Parameter $parameter * @param string $serialized * @return \DateInterval */ public function inflate(Parameter $parameter, $serialized) { if (!$serialized) { return $parameter->isRequired() ? new \DateInterval('P0D') : null; } $days = intval($serialized['d']); $hours = intval($serialized['h']); $minutes = intval($serialized['i']); return new \DateInterval("P{$days}DT{$hours}H{$minutes}M"); }
/** * @param Parameter $parameter * @param mixed $value * @return string */ public function render(Parameter $parameter, $value) { /** @var RangeType $range */ $range = $parameter->getType(); $min = $range->getMin(); $max = $range->getMax(); $step = $range->getStep(); $value = is_null($value) ? $min : (int) $value; $name = $parameter->getName(); $id = str_replace(['[', ']'], ['-', ''], $name); return (string) new Element('div', ['class' => 'form-group', 'id' => $id], [new Element('div', ['class' => 'slider']), new Element('input', ['class' => 'amount form-control', 'type' => 'number', 'name' => $name, 'value' => $value]), new Element('script', [], ["\$(function() {\n \$('#{$id} .slider').slider({\n range: 'min',\n value: {$value},\n min: {$min},\n max: {$max},\n step: {$step},\n slide: function(event, ui) {\n \$('#{$id} .amount').val(ui.value);\n }\n });\n });"])]); }
/** * @param Parameter $parameter * @param string $serialized * @return mixed */ public function inflate(Parameter $parameter, $serialized) { switch (get_class($parameter->getType())) { case LongType::class: case IntegerType::class: return (int) $serialized; case DoubleType::class: return (double) $serialized; case FloatType::class: return (double) $serialized; default: return (string) $serialized; } }
/** * @param Parameter $parameter * @return string * @throws \Exception */ public function read(Parameter $parameter) { $prompt = $parameter->getName(); if ($parameter->isRequired()) { $prompt = $prompt . '*'; } $field = $this->getField($parameter); $description = $field->getDescription($parameter); if ($description !== null) { $prompt .= ' ' . $description; } $value = $this->console->read($prompt . ': '); while ($parameter->isRequired() && !$value) { $value = $this->console->read($prompt . ': '); } return $value; }
/** * @param Parameter $parameter * @return bool */ public function handles(Parameter $parameter) { return $parameter->getType() == new BooleanType(); }
/** * @param Parameter $parameter * @return boolean */ public function has(Parameter $parameter) { return $this->request->files->has($parameter->getName()) || $this->request->get($parameter->getName(), '__NOPEDINOPE__') != '__NOPEDINOPE__'; }
/** * @param Parameter $parameter * @param string $suffix * @return Parameter */ private function makeInnerParameter(Parameter $parameter, $suffix = '') { /** @var ArrayType $type */ $type = $parameter->getType(); return new Parameter($parameter->getName() . $suffix, $type->getItemType()); }
/** * @param Parameter $parameter * @param Color $value * @return string */ public function render(Parameter $parameter, $value) { return (string) new Element('input', array_merge(['type' => 'color', 'name' => $parameter->getName(), 'value' => $value ? $value->asHex() : ''], $parameter->isRequired() ? ['required' => 'required'] : [])); }
private function get(Parameter $parameter, $array) { if (isset($array[$parameter->getName()])) { return $array[$parameter->getName()]; } return null; }
private function lineParameter(Parameter $parameter, $lineNumber) { return new Parameter($parameter->getName() . '-' . $lineNumber, $parameter->getType()); }
/** * @param Parameter $parameter * @return mixed The serialized paramater */ public function read(Parameter $parameter) { return $this->console->getOption($parameter->getName()); }
/** * @param Parameter $parameter * @return boolean */ public function has(Parameter $parameter) { return $this->console->hasOption($parameter->getName()); }
/** * @param Parameter $parameter * @return array|\rtens\domin\delivery\web\Element[] */ public function headElements(Parameter $parameter) { $action = $this->actions->getAction($parameter->getName()); $headElements = [self::descriptionCode()]; foreach ($action->parameters() as $parameter) { $field = $this->fields->getField($parameter); if ($field instanceof WebField) { $headElements = array_merge($headElements, $field->headElements($parameter)); } } return $headElements; }
/** * @param Parameter $parameter * @return boolean */ public function has(Parameter $parameter) { return array_key_exists($parameter->getName(), $this->parameters); }
/** * @param Parameter $parameter * @param mixed $value * @return string */ public function render(Parameter $parameter, $value) { return implode('', [new Element('input', ['type' => 'hidden', 'name' => $parameter->getName(), 'value' => 0]), new Element('input', array_merge(['class' => 'boolean-switch', 'type' => 'checkbox', 'name' => $parameter->getName(), 'value' => 1], $value ? ['checked' => 'checked'] : []))]); }
/** * @param Parameter $parameter * @param Text $value * @return string */ public function render(Parameter $parameter, $value) { return (string) new Element('textarea', array_merge(['name' => $parameter->getName(), 'class' => 'form-control'], $parameter->isRequired() ? ['required' => 'required'] : []), [$value ? $value->getContent() : null]); }
private function makePropertyParameter(Parameter $parameter, Property $property) { return new Parameter($parameter->getName() . '[' . $property->name() . ']', $property->type(), $property->isRequired()); }
/** * @param Parameter $parameter * @return bool */ public function handles(Parameter $parameter) { return $parameter->getType() == new ClassType(\DateInterval::class); }
/** * @param Parameter $parameter * @param null|\DateTimeInterface $value * @return string */ public function render(Parameter $parameter, $value) { return (string) new Element('div', ['class' => 'input-group date datetimepicker', 'style' => 'width: 100%;'], [new Element('span', ['class' => 'input-group-addon', 'onclick' => "\$(this).closest('.datetimepicker').datetimepicker(dateTimePickerSettings); \$(this).siblings('.hidden').toggleClass('hidden'); \$(this).remove(); return false;"], [new Element('span', ['class' => 'glyphicon glyphicon-calendar', 'style' => 'opacity: 0.5'])]), new Element('span', ['class' => 'input-group-addon hidden'], [new Element('span', ['class' => 'glyphicon glyphicon-calendar'])]), new Element('input', array_merge(['type' => 'text', 'name' => $parameter->getName(), 'class' => 'form-control', 'value' => $value ? $this->serialize($value) : null], $parameter->isRequired() ? ['required' => 'required'] : []))]); }
/** * @param Parameter $parameter * @return bool */ public function handles(Parameter $parameter) { return $parameter->getType() == new ClassType(File::class); }
/** * @param Parameter $parameter * @return boolean */ public function has(Parameter $parameter) { return $this->request->getArguments()->has($parameter->getName()); }