From aec092c914fb4a78fbc46361839822928694aca4 Mon Sep 17 00:00:00 2001 From: ctrlaltca <> Date: Mon, 28 May 2012 06:56:42 +0000 Subject: Patch for #404 --- framework/Web/UI/WebControls/THtmlArea.php | 39 +++++++++++++----------------- 1 file changed, 17 insertions(+), 22 deletions(-) (limited to 'framework/Web/UI') diff --git a/framework/Web/UI/WebControls/THtmlArea.php b/framework/Web/UI/WebControls/THtmlArea.php index 22f8e5f5..b73e03d7 100644 --- a/framework/Web/UI/WebControls/THtmlArea.php +++ b/framework/Web/UI/WebControls/THtmlArea.php @@ -349,9 +349,6 @@ class THtmlArea extends TTextBox public function onPreRender($param) { parent::onPreRender($param); - $this->loadJavascriptLibrary(); - if($this->getEnableCompression()) - $this->preLoadCompressedScript(); } /** @@ -389,31 +386,22 @@ class THtmlArea extends TTextBox return self::$_themes; } - protected function preLoadCompressedScript() + protected function getCompressionOptions() { - $scripts = $this->getPage()->getClientScript(); - $key = 'prado:THtmlArea:compressed'; - if(!$scripts->isBeginScriptRegistered($key)) - { - $options['plugins'] = implode(',', $this->getAvailablePlugins()); - $options['themes'] = implode(',', $this->getAvailableThemes()); - $options['languages'] = $this->getLanguageSuffix($this->getCulture()); - $options['disk_cache'] = true; - $options['debug'] = false; - $js = TJavaScript::encode($options,true,true); - $script = "if(typeof(tinyMCE_GZ)!='undefined'){ tinyMCE_GZ.init({$js}); }"; - if ($this->getPage()->getIsCallback()) - $script.= 'tinymce.dom.Event._pageInit();'; - $scripts->registerEndScript($key, $script); - } + return array( + 'plugins' => implode(',', $this->getAvailablePlugins()), + 'themes' => implode(',', $this->getAvailableThemes()), + 'languages' => $this->getLanguageSuffix($this->getCulture()), + 'disk_cache' => true, + 'debug' => false + ); } protected function loadJavascriptLibrary() { $scripts = $this->getPage()->getClientScript(); - if(!$scripts->isScriptFileRegistered('prado:THtmlArea')) - $scripts->registerScriptFile('prado:THtmlArea', $this->getScriptUrl()); $scripts->registerPradoScript('htmlarea'); + $scripts->registerScriptFile('prado:THtmlArea', $this->getScriptUrl()); } /** @@ -421,8 +409,15 @@ class THtmlArea extends TTextBox */ protected function registerEditorClientScript($writer) { + $this->loadJavascriptLibrary(); $scripts = $this->getPage()->getClientScript(); - $options = TJavaScript::encode($this->getEditorOptions(),true,true); // Force encoding of empty strings + $options = array( + 'EditorOptions' => $this->getEditorOptions() + ); + if($this->getEnableCompression()) + $options['CompressionOptions'] = $this->getCompressionOptions(); + + $options = TJavaScript::encode($options,true,true); $script = "new Prado.WebUI.THtmlArea($options)"; $scripts->registerEndScript('prado:THtmlArea'.$this->ClientID,$script); } -- cgit v1.2.3