--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/includes/wikiengine/Render/Xhtml.php Wed Jun 13 16:07:17 2007 -0400
@@ -0,0 +1,112 @@
+<?php
+// vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4:
+/**
+ * Format class for the Xhtml rendering
+ *
+ * PHP versions 4 and 5
+ *
+ * @category Text
+ * @package Text_Wiki
+ * @author Paul M. Jones <pmjones@php.net>
+ * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
+ * @version CVS: $Id: Xhtml.php,v 1.9 2006/02/10 22:31:50 toggg Exp $
+ * @link http://pear.php.net/package/Text_Wiki
+ */
+
+/**
+ * Format class for the Xhtml rendering
+ *
+ * @category Text
+ * @package Text_Wiki
+ * @author Paul M. Jones <pmjones@php.net>
+ * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
+ * @version Release: @package_version@
+ * @link http://pear.php.net/package/Text_Wiki
+ */
+class Text_Wiki_Render_Xhtml extends Text_Wiki_Render {
+
+ var $conf = array(
+ 'translate' => HTML_ENTITIES,
+ 'quotes' => ENT_COMPAT,
+ 'charset' => 'ISO-8859-1'
+ );
+
+ function pre()
+ {
+ $this->wiki->source = $this->textEncode($this->wiki->source);
+ }
+
+ function post()
+ {
+ return;
+ }
+
+
+ /**
+ * Method to render text
+ *
+ * @access public
+ * @param string $text the text to render
+ * @return rendered text
+ *
+ */
+
+ function textEncode($text)
+ {
+ // attempt to translate HTML entities in the source.
+ // get the config options.
+ $type = $this->getConf('translate', HTML_ENTITIES);
+ $quotes = $this->getConf('quotes', ENT_COMPAT);
+ $charset = $this->getConf('charset', 'ISO-8859-1');
+
+ // have to check null and false because HTML_ENTITIES is a zero
+ if ($type === HTML_ENTITIES) {
+
+ // keep a copy of the translated version of the delimiter
+ // so we can convert it back.
+ $new_delim = htmlentities($this->wiki->delim, $quotes, $charset);
+
+ // convert the entities. we silence the call here so that
+ // errors about charsets don't pop up, per counsel from
+ // Jan at Horde. (http://pear.php.net/bugs/bug.php?id=4474)
+ $text = @htmlentities(
+ $text,
+ $quotes,
+ $charset
+ );
+
+ // Mod for Enano: undo any HTML cleaning - we will take care of this ourselves
+ $text = str_replace(Array('<', '>', '"', '&', '''),
+ Array('<', '>', '"', '&', "'" ),
+ $text);
+
+ // re-convert the delimiter
+ $text = str_replace(
+ $new_delim, $this->wiki->delim, $text
+ );
+
+ } elseif ($type === HTML_SPECIALCHARS) {
+
+ // keep a copy of the translated version of the delimiter
+ // so we can convert it back.
+ $new_delim = htmlspecialchars($this->wiki->delim, $quotes,
+ $charset);
+
+ // convert the entities. we silence the call here so that
+ // errors about charsets don't pop up, per counsel from
+ // Jan at Horde. (http://pear.php.net/bugs/bug.php?id=4474)
+ $text = @htmlspecialchars(
+ $text,
+ $quotes,
+ $charset
+ );
+
+ // re-convert the delimiter
+ $text = str_replace(
+ $new_delim, $this->wiki->delim, $text
+ );
+ }
+ return $text;
+ }
+}
+?>