protected function addAttributesToRender($writer) { parent::addAttributesToRender($writer); if ($this->getTextMode() === TTextBoxMode::SingleLine) { if ($this->mask !== "") { $page = $this->getPage(); $isEnabled = $this->getEnabled(true); if ($isEnabled && $page->getClientSupportsJavaScript() && $this->getEnableClientScript()) { $JSFile = $this->publishAsset('assets/MaskedTextBox.js'); $writer->addAttribute('id', $this->getClientID()); $csm = $page->getClientScript(); if (!$csm->isScriptFileRegistered('MaskedTextBox')) { $csm->registerScriptFile('MaskedTextBox', $JSFile); } $this->getPage()->getClientScript()->registerPostBackControl('MaskedTextBox', $this->getPostBackOptions()); } if (strlen($this->getMask()) > 0) { $writer->addAttribute('maxlength', strlen($this->getMask())); } } } }
/** * Ensure that the ID attribute is rendered and registers the javascript code * for initializing the active control. Also registers language specific global * settings for the first used date picker. */ protected function addAttributesToRender($writer) { $cs = $this->getPage()->getClientScript(); if (self::$_first) { $code = "jQuery(document).ready(function(){jQuery.datepicker.setDefaults(jQuery.datepicker.regional['{$this->getCurrentCulture()}']);});"; $cs->registerEndScript(sprintf('%08X', crc32($code)), $code); self::$_first = false; } parent::addAttributesToRender($writer); $options = TJavascript::encode($this->getOptions()->toArray()); $code = "jQuery('#" . $this->getWidgetID() . "')." . $this->getWidget() . "(" . $options . ");"; $cs->registerEndScript(sprintf('%08X', crc32($code)), $code); }