Prado\Web\UI\WebControls\TTextBox::addAttributesToRender PHP Method

addAttributesToRender() protected method

This method overrides the parent implementation with additional textbox specific attributes.
protected addAttributesToRender ( $writer )
    protected function addAttributesToRender($writer)
    {
        $page = $this->getPage();
        $page->ensureRenderInForm($this);
        if (($uid = $this->getUniqueID()) !== '') {
            $writer->addAttribute('name', $uid);
        }
        if (($textMode = $this->getTextMode()) === TTextBoxMode::MultiLine) {
            if (($rows = $this->getRows()) <= 0) {
                $rows = self::DEFAULT_ROWS;
            }
            if (($cols = $this->getColumns()) <= 0) {
                $cols = self::DEFAULT_COLUMNS;
            }
            $writer->addAttribute('rows', "{$rows}");
            $writer->addAttribute('cols', "{$cols}");
            if (!$this->getWrap()) {
                $writer->addAttribute('wrap', 'off');
            }
        } else {
            switch ($textMode) {
                case TTextBoxMode::Password:
                    $writer->addAttribute('type', 'password');
                    break;
                case TTextBoxMode::Color:
                    $writer->addAttribute('type', 'color');
                    break;
                case TTextBoxMode::Date:
                    $writer->addAttribute('type', 'date');
                    break;
                case TTextBoxMode::Datetime:
                    $writer->addAttribute('type', 'datetime');
                    break;
                case TTextBoxMode::DatetimeLocal:
                    $writer->addAttribute('type', 'datetime-local');
                    break;
                case TTextBoxMode::Email:
                    $writer->addAttribute('type', 'email');
                    break;
                case TTextBoxMode::Month:
                    $writer->addAttribute('type', 'month');
                    break;
                case TTextBoxMode::Number:
                    $writer->addAttribute('type', 'number');
                    break;
                case TTextBoxMode::Range:
                    $writer->addAttribute('type', 'range');
                    break;
                case TTextBoxMode::Search:
                    $writer->addAttribute('type', 'search');
                    break;
                case TTextBoxMode::Tel:
                    $writer->addAttribute('type', 'tel');
                    break;
                case TTextBoxMode::Time:
                    $writer->addAttribute('type', 'time');
                    break;
                case TTextBoxMode::Url:
                    $writer->addAttribute('type', 'url');
                    break;
                case TTextBoxMode::Week:
                    $writer->addAttribute('type', 'week');
                    break;
                case TTextBoxMode::SingleLine:
                default:
                    $writer->addAttribute('type', 'text');
                    break;
            }
            if (($text = $this->getText()) !== '' && ($textMode !== TTextBoxMode::Password || $this->getPersistPassword())) {
                $writer->addAttribute('value', $text);
            }
            if (($act = $this->getAutoCompleteType()) !== 'None') {
                if ($act === 'Disabled') {
                    $writer->addAttribute('autocomplete', 'off');
                } else {
                    if ($act === 'Search') {
                        $writer->addAttribute('vcard_name', 'search');
                    } else {
                        if ($act === 'HomeCountryRegion') {
                            $writer->addAttribute('vcard_name', 'HomeCountry');
                        } else {
                            if ($act === 'BusinessCountryRegion') {
                                $writer->addAttribute('vcard_name', 'BusinessCountry');
                            } else {
                                if (strpos($act, 'Business') === 0) {
                                    $act = 'Business' . '.' . substr($act, 8);
                                } else {
                                    if (strpos($act, 'Home') === 0) {
                                        $act = 'Home' . '.' . substr($act, 4);
                                    }
                                }
                                $writer->addAttribute('vcard_name', 'vCard.' . $act);
                            }
                        }
                    }
                }
            }
            if (($cols = $this->getColumns()) > 0) {
                $writer->addAttribute('size', "{$cols}");
            }
            if (($maxLength = $this->getMaxLength()) > 0) {
                $writer->addAttribute('maxlength', "{$maxLength}");
            }
        }
        if ($this->getReadOnly()) {
            $writer->addAttribute('readonly', 'readonly');
        }
        $isEnabled = $this->getEnabled(true);
        if (!$isEnabled && $this->getEnabled()) {
            // in this case parent will not render 'disabled'
            $writer->addAttribute('disabled', 'disabled');
        }
        if ($isEnabled && $this->getEnableClientScript() && ($this->getAutoPostBack() || $textMode === TTextBoxMode::SingleLine) && $page->getClientSupportsJavaScript()) {
            $this->renderClientControlScript($writer);
        }
        parent::addAttributesToRender($writer);
    }

Usage Example

Example #1
0
 /**
  * Adds attribute name-value pairs to renderer.
  * This method overrides the parent implementation by registering
  * additional javacript code.
  * @param THtmlWriter the writer used for the rendering purpose
  */
 protected function addAttributesToRender($writer)
 {
     if ($this->getEnableVisualEdit() && $this->getEnabled(true)) {
         $writer->addAttribute('id', $this->getClientID());
         $this->registerEditorClientScript($writer);
     }
     parent::addAttributesToRender($writer);
 }
All Usage Examples Of Prado\Web\UI\WebControls\TTextBox::addAttributesToRender