From bf996f7247133c536511c23b6ad30aa222bfd6d9 Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Wed, 15 Apr 2015 21:29:19 +0200 Subject: Initial commit --- include/classes/class.bigpipe.php | 79 ++++++++++++++++++++++++++++++++++++ include/classes/class.pagelet.php | 84 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100755 include/classes/class.bigpipe.php create mode 100755 include/classes/class.pagelet.php (limited to 'include/classes') diff --git a/include/classes/class.bigpipe.php b/include/classes/class.bigpipe.php new file mode 100755 index 0000000..1edefc8 --- /dev/null +++ b/include/classes/class.bigpipe.php @@ -0,0 +1,79 @@ + $Pagelet->getID(), + 'RESOURCES' => ['CSS' => $Pagelet->getCSSFiles(), 'JS' => $Pagelet->getJSFiles(), 'JS_CODE' => removeLineBreaksAndTabs($Pagelet->getJSCode())] + ]; + + if($last) { + $data['IS_LAST'] = true; + } + + echo ''."\n"; + echo ''."\n\n"; + } + + #==================================================================================================== + # Sendet den Output-Buffer so weit wie möglich in Richtung User + #==================================================================================================== + public static function flushOutputBuffer() { + ob_flush(); flush(); + } + + #==================================================================================================== + # Alle Pagelets an Client schicken + #==================================================================================================== + public static function render($async = FALSE) { + self::flushOutputBuffer(); + + $i = 0; + + ksort(self::$pagelets); + + foreach(array_reverse(self::$pagelets) as $priority => $pagelets) { + foreach($pagelets as $Pagelet) { + if(!self::isEnabled()) { + if($Pagelet->getJSCode()) { + echo ''."\n"; + } + + foreach($Pagelet->getCSSFiles() as $CSSFile) { + echo ''."\n"; + } + + foreach($Pagelet->getJSFiles() as $JSFile) { + echo ''."\n"; + } + } + + else { + self::pageletResponse($Pagelet, $async, (self::$count === ++$i)); + self::flushOutputBuffer(); + } + } + } + } +} \ No newline at end of file diff --git a/include/classes/class.pagelet.php b/include/classes/class.pagelet.php new file mode 100755 index 0000000..c1f211a --- /dev/null +++ b/include/classes/class.pagelet.php @@ -0,0 +1,84 @@ +ID = 'P'.++self::$count; + BigPipe::addPagelet($this, $priority); + } + + #==================================================================================================== + # ID zurückgeben + #==================================================================================================== + public function getID() { + return $this->ID; + } + + #==================================================================================================== + # HTML-Code zurückgeben + #==================================================================================================== + public function getHTML() { + return $this->HTML; + } + + #==================================================================================================== + # CSS-Ressourcen zurückgeben + #==================================================================================================== + public function getCSSFiles() { + return $this->CSSFiles; + } + + #==================================================================================================== + # JS-Ressourcen zurückgeben + #==================================================================================================== + public function getJSFiles() { + return $this->JSFiles; + } + + #==================================================================================================== + # JS-Code zurückgeben + #==================================================================================================== + public function getJSCode() { + return $this->JSCode; + } + + #==================================================================================================== + # HTML-Code hinzufügen + #==================================================================================================== + public function addHTML($HTML) { + $this->HTML .= $HTML; + } + + #==================================================================================================== + # CSS-Ressource hinzufügen + #==================================================================================================== + public function addCSS($file) { + $this->CSSFiles[] = $file; + } + + #==================================================================================================== + # JS-Ressource hinzufügen + #==================================================================================================== + public function addJS($file) { + $this->JSFiles[] = $file; + } + + #==================================================================================================== + # JS-Code hinzufügen + #==================================================================================================== + public function addJSCode($code) { + $this->JSCode .= $code; + } + + #==================================================================================================== + # Magische Methode: __toString() + #==================================================================================================== + public function __toString() { + return '
'.((!BigPipe::isEnabled()) ? $this->getHTML() : NULL).'
'; + } +} \ No newline at end of file -- cgit v1.2.3