%PDF- %PDF-
Direktori : /www/varak.net/losik.varak.net/vendor/nette/forms/src/Forms/Controls/ |
Current File : /www/varak.net/losik.varak.net/vendor/nette/forms/src/Forms/Controls/TextInput.php |
<?php /** * This file is part of the Nette Framework (https://nette.org) * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare(strict_types=1); namespace Nette\Forms\Controls; use Nette; use Nette\Forms\Form; /** * Single line text input control. */ class TextInput extends TextBase { /** * @param string|object $label */ public function __construct($label = null, ?int $maxLength = null) { parent::__construct($label); $this->control->maxlength = $maxLength; $this->setOption('type', 'text'); } public function loadHttpData(): void { $this->setValue($this->getHttpData(Form::DataLine)); } /** * Changes control's type attribute. * @return static */ public function setHtmlType(string $type) { $this->control->type = $type; return $this; } /** * @deprecated use setHtmlType() * @return static */ public function setType(string $type) { return $this->setHtmlType($type); } public function getControl(): Nette\Utils\Html { return parent::getControl()->addAttributes([ 'value' => $this->control->type === 'password' ? $this->control->value : $this->getRenderedValue(), 'type' => $this->control->type ?: 'text', ]); } /** @return static */ public function addRule($validator, $errorMessage = null, $arg = null) { foreach ($this->getRules() as $rule) { if (!$rule->canExport() && !$rule->branch) { return parent::addRule($validator, $errorMessage, $arg); } } if ($this->control->type === null && in_array($validator, [Form::Email, Form::URL, Form::Integer], true)) { $types = [Form::Email => 'email', Form::URL => 'url', Form::Integer => 'number']; $this->control->type = $types[$validator]; } elseif ( in_array($validator, [Form::Min, Form::Max, Form::Range], true) && in_array($this->control->type, ['number', 'range', 'datetime-local', 'datetime', 'date', 'month', 'week', 'time'], true) ) { if ($validator === Form::Min) { $range = [$arg, null]; } elseif ($validator === Form::Max) { $range = [null, $arg]; } else { $range = $arg; } if (isset($range[0]) && is_scalar($range[0])) { $this->control->min = isset($this->control->min) ? max($this->control->min, $range[0]) : $range[0]; } if (isset($range[1]) && is_scalar($range[1])) { $this->control->max = isset($this->control->max) ? min($this->control->max, $range[1]) : $range[1]; } } elseif ( $validator === Form::Pattern && is_scalar($arg) && in_array($this->control->type, [null, 'text', 'search', 'tel', 'url', 'email', 'password'], true) ) { $this->control->pattern = $arg; } return parent::addRule($validator, $errorMessage, $arg); } }