From 3126610fdab66c4e83de00d36a762af30199238d Mon Sep 17 00:00:00 2001
From: xue <>
Date: Thu, 29 Dec 2005 12:20:57 +0000
Subject: Modified TTextHighlighter so that it can highlight its body content
including output of its child controls. Modified ViewSource to make use of
TTextHighlighter.
---
.../protected/controls/TTextHighlighter.php | 25 +++++++++++-----------
demos/quickstart/protected/pages/ViewSource.page | 2 +-
demos/quickstart/protected/pages/ViewSource.php | 23 +++++++++++++++++---
framework/IO/TTextWriter.php | 8 ++++++-
4 files changed, 41 insertions(+), 17 deletions(-)
diff --git a/demos/quickstart/protected/controls/TTextHighlighter.php b/demos/quickstart/protected/controls/TTextHighlighter.php
index 19b54ad2..b89e5274 100644
--- a/demos/quickstart/protected/controls/TTextHighlighter.php
+++ b/demos/quickstart/protected/controls/TTextHighlighter.php
@@ -2,6 +2,8 @@
require_once(dirname(__FILE__).'/Highlighter/geshi.php');
+Prado::using('System.IO.TTextWriter');
+
/**
* ${classname}
*
@@ -51,18 +53,17 @@ class TTextHighlighter extends TWebControl
$this->setViewState('Entities', TPropertyValue::ensureBoolean($value), false);
}
- /**
- * Parse the body string using GeSHi to highlight the contents.
- */
- public function addParsedObject($object)
+ protected function onPreRender($writer)
{
- if(is_string($object))
- {
- $this->registerTextHighlightStyleSheet();
- $this->getControls()->add($this->getTextHighlight($object));
- }
- else
- $this->getControls()->add($object);
+ parent::onPreRender($writer);
+ $this->registerTextHighlightStyleSheet();
+ }
+
+ protected function renderContents($writer)
+ {
+ $textWriter=new TTextWriter;
+ parent::renderContents(new THtmlWriter($textWriter));
+ $writer->write($this->highlightText($textWriter->flush()));
}
/**
@@ -83,7 +84,7 @@ class TTextHighlighter extends TWebControl
* @param string text to highlight.
* @return string highlighted text.
*/
- protected function getTextHighlight($text)
+ protected function highlightText($text)
{
if(!$this->getEnableEntities())
$text = html_entity_decode($text);
diff --git a/demos/quickstart/protected/pages/ViewSource.page b/demos/quickstart/protected/pages/ViewSource.page
index 3c175c80..21ddafa8 100644
--- a/demos/quickstart/protected/pages/ViewSource.page
+++ b/demos/quickstart/protected/pages/ViewSource.page
@@ -10,7 +10,7 @@