diff options
Diffstat (limited to 'library/SSRS/Object')
-rwxr-xr-x | library/SSRS/Object/RenderStream.php | 5 | ||||
-rwxr-xr-x | library/SSRS/Object/ReportOutput.php | 23 |
2 files changed, 27 insertions, 1 deletions
diff --git a/library/SSRS/Object/RenderStream.php b/library/SSRS/Object/RenderStream.php index 02cbb33..7b10725 100755 --- a/library/SSRS/Object/RenderStream.php +++ b/library/SSRS/Object/RenderStream.php @@ -14,6 +14,11 @@ class RenderStream extends ObjectAbstract { } } + public function send() { + header('Content-Type: ' . $this->MimeType); + echo $this->Result; + } + public function __toString() { return $this->Result; } 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) { |