diff options
| author | xue <> | 2006-06-11 22:01:52 +0000 | 
|---|---|---|
| committer | xue <> | 2006-06-11 22:01:52 +0000 | 
| commit | f30c38fcc9d6cdfa7aafa5078a58645192c11974 (patch) | |
| tree | 51817c56b7295386e90fea5bf0f9fbd776a84bff /framework/Web/UI/TClientScriptManager.php | |
| parent | 233ad780df391ed4af569929c30a1370d2b440ef (diff) | |
Prado js files are not rendered at the beginning of the form
Diffstat (limited to 'framework/Web/UI/TClientScriptManager.php')
| -rw-r--r-- | framework/Web/UI/TClientScriptManager.php | 95 | 
1 files changed, 30 insertions, 65 deletions
diff --git a/framework/Web/UI/TClientScriptManager.php b/framework/Web/UI/TClientScriptManager.php index cab4d288..a4644e26 100644 --- a/framework/Web/UI/TClientScriptManager.php +++ b/framework/Web/UI/TClientScriptManager.php @@ -72,9 +72,9 @@ class TClientScriptManager extends TApplicationComponent  	 */  	private $_registeredPradoScripts=array();  	/** -	 * @var array registered PRADO script files +	 * @var array published PRADO script files  	 */ -	private $_registeredPradoFiles=array(); +	private $_publishedPradoFiles=array();  	/**  	 * Client-side javascript library dependencies  	 * @var array @@ -119,24 +119,24 @@ class TClientScriptManager extends TApplicationComponent  		$this->registerPradoScriptInternal($name);  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerPradoScript',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerPradoScript',$params);  	}  	private function registerPradoScriptInternal($name)  	{  		if(!isset($this->_registeredPradoScripts[$name]))  		{ -			$this->_registeredPradoScripts[$name]=true; -			if(!isset(self::$_pradoScripts[$name])) +			if(isset(self::$_pradoScripts[$name])) +				$this->_registeredPradoScripts[$name]=true; +			else  				throw new TInvalidOperationException('csmanager_pradoscript_invalid',$name);  			$basePath=Prado::getFrameworkPath().'/'.self::SCRIPT_PATH;  			foreach(self::$_pradoScripts[$name] as $script)  			{ -				if(!isset($this->_registeredPradoFiles[$script])) +				if(!isset($this->_publishedPradoFiles[$script]))  				{  					$this->publishFilePath($basePath.'/'.$script.'.js'); -					$this->_registeredPradoFiles[$script]=false; +					$this->_publishedPradoFiles[$script]=true;  				}  			}  		} @@ -144,15 +144,7 @@ class TClientScriptManager extends TApplicationComponent  	protected function renderPradoScripts($writer)  	{ -		$files=''; -		foreach($this->_registeredPradoFiles as $file=>$rendered) -		{ -			if(!$rendered) -			{ -				$files.=','.$file; -				$this->_registeredPradoFiles[$file]=true; -			} -		} +		$files=implode(',',array_keys($this->_publishedPradoFiles));  		if($files!=='')  		{  			$basePath=Prado::getFrameworkPath().'/'.self::SCRIPT_PATH; @@ -189,8 +181,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->registerPradoScriptInternal('ajax');  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerCallbackControl',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerCallbackControl',$params);  	}  	/** @@ -211,8 +202,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->registerPradoScriptInternal('prado');  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerPostBackControl',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerPostBackControl',$params);  	}  	/** @@ -230,8 +220,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->registerPradoScriptInternal('prado');  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerDefaultButton',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerDefaultButton',$params);  	}  	/** @@ -244,8 +233,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->_endScripts['prado:focus']='Prado.Focus.setFocus("'.TJavaScript::quoteString($target).'");';  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerFocusControl',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerFocusControl',$params);  	}  	/** @@ -271,8 +259,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->_styleSheetFiles[$key]=$url;  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerStyleSheetFile',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerStyleSheetFile',$params);  	}  	/** @@ -285,8 +272,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->_styleSheets[$key]=$css;  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerStyleSheet',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerStyleSheet',$params);  	}  	/** @@ -299,8 +285,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->_headScriptFiles[$key]=$url;  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerHeadScriptFile',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerHeadScriptFile',$params);  	}  	/** @@ -313,8 +298,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->_headScripts[$key]=$script;  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerHeadScript',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerHeadScript',$params);  	}  	/** @@ -327,8 +311,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->_scriptFiles[$key]=$url;  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerScriptFile',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerScriptFile',$params);  	}  	/** @@ -341,8 +324,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->_beginScripts[$key]=$script;  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerBeginScript',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerBeginScript',$params);  	}  	/** @@ -355,8 +337,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->_endScripts[$key]=$script;  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerEndScript',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerEndScript',$params);  	}  	/** @@ -370,8 +351,7 @@ class TClientScriptManager extends TApplicationComponent  		$this->_hiddenFields[$name]=$value;  		$params=func_get_args(); -		foreach($this->_page->getCachingStack() as $item) -			$item->registerAction('Page.ClientScript','registerHiddenField',$params); +		$this->_page->registerCachingAction('Page.ClientScript','registerHiddenField',$params);  	}  	/** @@ -488,17 +468,8 @@ class TClientScriptManager extends TApplicationComponent  	public function renderScriptFiles($writer)  	{  		$this->renderPradoScripts($writer); -		$files=array(); -		foreach($this->_scriptFiles as $key=>$file) -		{ -			if($file!==true) -			{ -				$files[]=$file; -				$this->_scriptFiles[$key]=true; -			} -		} -		if(!empty($files)) -			$writer->write(TJavaScript::renderScriptFiles($files)); +		if(!empty($this->_scriptFiles)) +			$writer->write(TJavaScript::renderScriptFiles($this->_scriptFiles));  	}  	/** @@ -525,20 +496,14 @@ class TClientScriptManager extends TApplicationComponent  		$str='';  		foreach($this->_hiddenFields as $name=>$value)  		{ -			if($value!==true) +			if(is_array($value))  			{ -				if(is_array($value)) -				{ -					foreach($value as $v) -						$str.='<input type="hidden" name="'.$name.'[]" id="'.$name.'" value="'.THttpUtility::htmlEncode($value)."\" />\n"; -				} -				else -				{ -					$str.='<input type="hidden" name="'.$name.'" id="'.$name.'" value="'.THttpUtility::htmlEncode($value)."\" />\n"; -				} -				// set hidden field value to true to indicate this field is rendered -				// Note, hidden field rendering is invoked twice (at the beginning and ending of TForm) -				$this->_hiddenFields[$name]=true; +				foreach($value as $v) +					$str.='<input type="hidden" name="'.$name.'[]" id="'.$name.'" value="'.THttpUtility::htmlEncode($value)."\" />\n"; +			} +			else +			{ +				$str.='<input type="hidden" name="'.$name.'" id="'.$name.'" value="'.THttpUtility::htmlEncode($value)."\" />\n";  			}  		}  		if($str!=='')  | 
