]> git.llucax.com Git - software/bife/web.git/blobdiff - index.php
Added preliminary (ugly) syntax highlight for HTML and XBF files throw GNU
[software/bife/web.git] / index.php
index 862cc1ff244c9ae438a3b370ca844b4dedba88ff..b1dfc0389aae7baa44d62f5289a4c96994ce6591 100644 (file)
--- a/index.php
+++ b/index.php
@@ -27,8 +27,6 @@
 //
 
 // Inicialization {{{
-#ini_set('include_path', '../src:../../hit/src:../../bife/src:'.
-#    ini_get('include_path'));
 umask('002');
 require_once 'HTML/Template/HIT.php';
 require_once 'BIFE/Parser.php';
@@ -36,17 +34,30 @@ require_once 'BIFE/Translate.php';
 // }}}
 
 // Selects the file to view {{{
-$file = (@$_SERVER['PATH_INFO'] and ($_SERVER['PATH_INFO'] != '/'))
-    ? ".{$_SERVER['PATH_INFO']}"
-    : 'index.xbf';
+if (@$_SERVER['PATH_INFO']) {
+    $file = $_SERVER['PATH_INFO'];
+    // If it ends with a slash it's a directory so we add index.xbf.
+    if (substr($_SERVER['PATH_INFO'], strlen($_SERVER['PATH_INFO'])-1) == '/') {
+        $file .= 'index.xbf';
+    }
+} else {
+    $file = 'index.xbf';
+}
 // }}}
 
 // Looks if we want to show the source {{{
 if (@$_REQUEST['S']) {
     if (@$_REQUEST['B']) {
         // We want to see the BIFE file source.
-        echo '<PRE>';
-        echo htmlentities(join('', file($file)));
+        exec('enscript -q -p - -Ehtml --language=html --color '
+            . escapeshellarg($file), $buffer);
+        $buffer = join("\n", $buffer);
+        $buffer = strstr($buffer, '<PRE>');
+        $buffer = substr($buffer, 0, strpos($buffer, '</PRE>'));
+        $buffer = str_replace(array('<FONT COLOR="', '</FONT>'),
+            array('<SPAN style="color: ', '</SPAN>'), $buffer);
+        echo $buffer;
+        #echo htmlentities(join('', file($file)));
     } else {
         // We want to see the php file source.
         highlight_file($_SERVER['SCRIPT_FILENAME']);
@@ -60,7 +71,24 @@ $template =& new HTML_Template_HIT('templates');
 $parser   =& new BIFE_Parser('BIFE_Translate');
 $page     =& $parser->parseFile($file);
 $parser->__destruct();
-echo $page->render($template);
+// We now see if we want to show the HTML output
+if (@$_REQUEST['H']) {
+        $f = fopen("$file.tmp.html", 'w');
+        fputs($f, $page->render($template));
+        fclose($f);
+        exec('enscript -q -p - -Ehtml --language=html --color '
+            . escapeshellarg("$file.tmp.html"), $buffer);
+        unlink("$file.tmp.html");
+        $buffer = join("\n", $buffer);
+        $buffer = strstr($buffer, '<PRE>');
+        $buffer = substr($buffer, 0, strpos($buffer, '</PRE>'));
+        $buffer = str_replace(array('<FONT COLOR="', '</FONT>'),
+            array('<SPAN style="color: ', '</SPAN>'), $buffer);
+        echo $buffer;
+    //echo '<PRE>' . htmlentities($page->render($template)) . '</PRE>';
+} else {
+    echo $page->render($template);
+}
 // }}}
 
 ?>