summaryrefslogtreecommitdiffstats
path: root/library/SSRS/Object
diff options
context:
space:
mode:
authorArron Woods <aw@chartblocks.com>2015-05-20 16:06:53 +0100
committerArron Woods <aw@chartblocks.com>2015-05-20 16:06:53 +0100
commit35c2d9628cc4f3faacaf85403606b727b0466cc0 (patch)
tree9a16f39539403ad27be4346094b7b5849df1b64c /library/SSRS/Object
parent482ce747db34349ba131b9b01bc77b18ab6168c9 (diff)
downloadphp-ssrs-35c2d9628cc4f3faacaf85403606b727b0466cc0.zip
php-ssrs-35c2d9628cc4f3faacaf85403606b727b0466cc0.tar.gz
php-ssrs-35c2d9628cc4f3faacaf85403606b727b0466cc0.tar.bz2
ReplacementRoot hack and resource rendering
Diffstat (limited to 'library/SSRS/Object')
-rwxr-xr-xlibrary/SSRS/Object/RenderStream.php5
-rwxr-xr-xlibrary/SSRS/Object/ReportOutput.php23
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) {