diff options
author | Arron Woods <aw@chartblocks.com> | 2015-05-20 16:06:53 +0100 |
---|---|---|
committer | Arron Woods <aw@chartblocks.com> | 2015-05-20 16:06:53 +0100 |
commit | 35c2d9628cc4f3faacaf85403606b727b0466cc0 (patch) | |
tree | 9a16f39539403ad27be4346094b7b5849df1b64c /library/SSRS/Object/ReportOutput.php | |
parent | 482ce747db34349ba131b9b01bc77b18ab6168c9 (diff) | |
download | php-ssrs-35c2d9628cc4f3faacaf85403606b727b0466cc0.zip php-ssrs-35c2d9628cc4f3faacaf85403606b727b0466cc0.tar.gz php-ssrs-35c2d9628cc4f3faacaf85403606b727b0466cc0.tar.bz2 |
ReplacementRoot hack and resource rendering
Diffstat (limited to 'library/SSRS/Object/ReportOutput.php')
-rwxr-xr-x | library/SSRS/Object/ReportOutput.php | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/library/SSRS/Object/ReportOutput.php b/library/SSRS/Object/ReportOutput.php index 70d7928..7522edd 100755 --- a/library/SSRS/Object/ReportOutput.php +++ b/library/SSRS/Object/ReportOutput.php @@ -4,9 +4,15 @@ namespace SSRS\Object; use SSRS\Report; use SSRS\Report\CachedStreamResource; +use SSRS\Object\ExecutionInfo; class ReportOutput extends ObjectAbstract { + public function __construct($data = null, ExecutionInfo $executionInfo = null) { + parent::__construct($data); + $this->executionInfo = $executionInfo; + } + public function preCacheStreams(Report $report, $localCachePath, $format = 'HTML4.0') { $this->verifyCachePath($localCachePath); @@ -42,8 +48,23 @@ class ReportOutput extends ObjectAbstract { exit(0); } + public function resultClean() { + $output = (string) $this->Result; + $clean = $this->convertReplacementRootUrls($output); + + return $clean; + } + + protected function convertReplacementRootUrls($output) { + $executionId = ($this->executionInfo) ? $this->executionInfo->getExecutionId() : null; + + return preg_replace_callback('#href="//php-ssrs//([^\?]+)([^"]+)"#', function($results) use($executionId) { + return 'href="' . html_entity_decode(urldecode($results[2])) . '&executionId=' . $executionId . '"'; + }, $output); + } + public function __toString() { - return (string) $this->Result; + return $this->resultClean(); } protected function verifyCachePath($path) { |