From 17f49a9bc71d88c9b3e2f31a161f3689c136ac16 Mon Sep 17 00:00:00 2001 From: xue <> Date: Fri, 1 Dec 2006 12:28:55 +0000 Subject: merge from 3.0 branch till 1531. --- framework/Web/TAssetManager.php | 32 ++++++++++++++++++++++ framework/Web/UI/TControl.php | 2 -- framework/Web/UI/WebControls/TDataBoundControl.php | 4 +-- 3 files changed, 34 insertions(+), 4 deletions(-) (limited to 'framework/Web') diff --git a/framework/Web/TAssetManager.php b/framework/Web/TAssetManager.php index 04933bfa..fa43b7d7 100644 --- a/framework/Web/TAssetManager.php +++ b/framework/Web/TAssetManager.php @@ -178,6 +178,38 @@ class TAssetManager extends TModule } } + /** + * Returns the published path of a file path. + * This method does not perform any publishing. It merely tells you + * if the file path is published, where it will go. + * @param string directory or file path being published + * @return string the published file path + */ + public function getPublishedPath($path) + { + $path=realpath($path); + if(is_file($path)) + return $this->_basePath.'/'.$this->hash(dirname($path)).'/'.basename($path); + else + return $this->_basePath.'/'.$this->hash($path); + } + + /** + * Returns the URL of a published file path. + * This method does not perform any publishing. It merely tells you + * if the file path is published, what the URL will be to access it. + * @param string directory or file path being published + * @return string the published URL for the file path + */ + public function getPublishedUrl($path) + { + $path=realpath($path); + if(is_file($path)) + return $this->_baseUrl.'/'.$this->hash(dirname($path)).'/'.basename($path); + else + return $this->_baseUrl.'/'.$this->hash($path); + } + /** * Generate a CRC32 hash for the directory path. Collisions are higher * than MD5 but generates a much smaller hash string. diff --git a/framework/Web/UI/TControl.php b/framework/Web/UI/TControl.php index 7e49e7ce..a0242d54 100644 --- a/framework/Web/UI/TControl.php +++ b/framework/Web/UI/TControl.php @@ -1234,8 +1234,6 @@ class TControl extends TApplicationComponent implements IRenderable, IBindable { if($this->_stagegetTemplateControl())===null) - $context=$this; if(isset($this->_rf[self::RF_ADAPTER])) $this->_rf[self::RF_ADAPTER]->onLoad(null); else diff --git a/framework/Web/UI/WebControls/TDataBoundControl.php b/framework/Web/UI/WebControls/TDataBoundControl.php index 599bdef2..79175288 100644 --- a/framework/Web/UI/WebControls/TDataBoundControl.php +++ b/framework/Web/UI/WebControls/TDataBoundControl.php @@ -218,7 +218,7 @@ abstract class TDataBoundControl extends TWebControl public function setCurrentPageIndex($value) { if(($value=TPropertyValue::ensureInteger($value))<0) - throw new TInvalidDataValueException('databoundcontrol_currentpageindex_invalid',get_class($this)); + $value=0; $this->setViewState('CurrentPageIndex',$value,0); } @@ -337,7 +337,7 @@ abstract class TDataBoundControl extends TWebControl $ds->setDataSource($data); $this->setViewState('PageCount',$ds->getPageCount()); if($ds->getCurrentPageIndex()>=$ds->getPageCount()) - throw new TInvalidDataValueException('databoundcontrol_currentpageindex_invalid',get_class($this)); + $ds->setCurrentPageIndex($ds->getPageCount()-1); $this->performDataBinding($ds); } else -- cgit v1.2.3