From f65a7202bf0c48e487aa8ec21115b709c69d8118 Mon Sep 17 00:00:00 2001 From: xue <> Date: Wed, 29 Nov 2006 13:00:49 +0000 Subject: fixed #471. --- HISTORY | 1 + framework/Web/TAssetManager.php | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/HISTORY b/HISTORY index bcff6c72..2cf40d5c 100644 --- a/HISTORY +++ b/HISTORY @@ -6,6 +6,7 @@ BUG: TTableCell should render   only when Text is not set and there's no ch BUG: global state was not saved when redirect() is invoked (Qiang) BUG: TPager would not display if it was invisible previously (Qiang) ENH: Ticket#446 - Added TMetaTagCollection.getMetaTagByID method (Qiang) +ENH: Ticket#471 - Added methods in TAssetManager to expose published path and URL (Qiang) CHG: Ticket#437 - __autoload is replaced by spl_autoload_register (Qiang) CHG: Ticket#454 - Redundant PHP Version Check (Qiang) CHG: Ticket#460 - Validators will not perform validation if parents are disabled (Qiang) diff --git a/framework/Web/TAssetManager.php b/framework/Web/TAssetManager.php index aa2919a0..190ee5ac 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. -- cgit v1.2.3