iliaa           Mon May 24 16:42:43 2004 EDT

  Modified files:              
    /livedocs   livedoc.php 
  Log:
  Optimizations: path #2.
  
  
http://cvs.php.net/diff.php/livedocs/livedoc.php?r1=1.104&r2=1.105&ty=u
Index: livedocs/livedoc.php
diff -u livedocs/livedoc.php:1.104 livedocs/livedoc.php:1.105
--- livedocs/livedoc.php:1.104  Mon May 24 16:23:05 2004
+++ livedocs/livedoc.php        Mon May 24 16:42:43 2004
@@ -18,7 +18,7 @@
 // | Generate an HTML version of a phpdoc/docbook page on the fly         |
 // +----------------------------------------------------------------------+
 //
-// $Id: livedoc.php,v 1.104 2004/05/24 20:23:05 iliaa Exp $
+// $Id: livedoc.php,v 1.105 2004/05/24 20:42:43 iliaa Exp $
 
 define('LIVEDOC_SOURCE', dirname(__FILE__));
 include LIVEDOC_SOURCE . '/common.php';
@@ -304,18 +304,14 @@
                /* now collect their values */
                $entities_to_find = array_unique($matches[1]);
                $ents = implode("','", $entities_to_find);
-               $q = sqlite_query($idx, "SELECT entid, value from ents where entid in 
('" . $ents . "')");
-               if (!$q) {
-                       break;
-               }
-
-               while ($r = sqlite_fetch_array($q, SQLITE_NUM)) {
-                       $entities['&' . $r[0] . ';'] = $r[1];
+               $r = sqlite_array_query($idx, "SELECT entid, value from ents where 
entid in ('" . $ents . "')", SQLITE_NUM);
+               if ($r) {
+                       foreach ($r as $v) {
+                               $entities['&' . $v[0] . ';'] = $v[1];
+                       }
+                       /* substitute */
+                       $data = strtr($data, $entities);
                }
-
-               /* substitute */
-               $data = strtr($data, $entities);
-
        } while ($sanity++ < 5);
 
        return $data;
@@ -433,9 +429,8 @@
         * by using entities as much as possible */
        if (isset($special[$nodeid])) {
                /* Check for the entity value */
-               $q = sqlite_query($GLOBALS['idx'], "SELECT * FROM ents WHERE entid = 
'$special[$nodeid]'");
-               if ($q && $r = sqlite_fetch_array($q, SQLITE_NUM)) {
-                       return $r[1];
+               if (($r = sqlite_single_query($GLOBALS['idx'], "SELECT entid FROM ents 
WHERE entid = '$special[$nodeid]'"))) {
+                       return $r;
                } else { /* It's not an entity, let's just return it then */
                        return $special[$nodeid];
                }
@@ -448,18 +443,10 @@
 
        /* It's not, so we try to resolve it from the DB */
        $safeid = sqlite_escape_string($nodeid);
-       $q = sqlite_query($GLOBALS['idx'], "SELECT title from idents where 
id='$safeid'");
-
-       if ($q && $r = sqlite_fetch_array($q, SQLITE_NUM)) {
-               $ids[$nodeid] = $r[0];
-               return $r[0];
-       } elseif (isset($GLOBALS['fb_idx'])) {
-               $q = sqlite_query($GLOBALS['fb_idx'], "SELECT title from idents where 
id='$safeid'");
-
-               if ($q && $r = sqlite_fetch_array($q, SQLITE_NUM)) {
-                       $ids[$nodeid] = $r[0];
-                       return $r[0];
-               }
+       if (($ids[$nodeid] = sqlite_single_query($GLOBALS['idx'], "SELECT title from 
idents where id='$safeid'"))) {
+               return $ids[$nodeid];
+       } else if (isset($GLOBALS['fb_idx']) && ($ids[$nodeid] = 
sqlite_single_query($GLOBALS['fb_idx'], "SELECT title from idents where 
id='$safeid'"))) {
+               return $ids[$nodeid];
        }
        return null;
 }
@@ -512,30 +499,27 @@
 function do_contents($id, $level) 
 {
        global $lang;
-       $q = "SELECT id, docbook_id FROM toc WHERE parent_id = $id";
-       $r = sqlite_query($GLOBALS['idx'], $q);
-       $ret = "<ul>";
-       while ($r && $row = sqlite_fetch_array($r, SQLITE_NUM)) {
-               $ret .= "<li>";
-
-               $title = lookup_title($row[1]);
-               if (empty($title)) {
-                       $title = $row[1]. ' [?]';
-                       $ret .= $title;
-               } else {
-                       $url = generate_url_for_id($lang, $row[1]);
-                       $ret .= "<a href='$url'>$title</a>";
-               }
 
-               if (($level < 2 && substr($row[1], 0, 3) != 'ref') || $level < 1) {
-                       $ret .= do_contents($row[0], $level + 1);
+       if (($r = sqlite_array_query($GLOBALS['idx'], "SELECT id, docbook_id FROM toc 
WHERE parent_id = ".$id, SQLITE_NUM))) {
+               foreach($r as $row) {
+                       $ret .= "<li>";
+
+                       if (!($title = lookup_title($row[1]))) {
+                               $ret .= $row[1]. ' [?]';
+                       } else {
+                               $ret .= "<a href='".generate_url_for_id($lang, 
$row[1])."'>".$title."</a>";
+                       }
+
+                       if (($level < 2 && strcmp($row[1], 'ref')) ||  $level < 1) {
+                               $ret .= do_contents($row[0], $level + 1);
+                       }
+                       $ret .= "</li>\n";
                }
-               $ret .= "</li>\n";
-       }
-       if ($ret == '<ul>') {
-               return '';
+
+               return "<ul>" . $ret . "</ul>\n";
        }
-       return $ret .= "</ul>\n";
+
+       return '';
 }
 
 function handle_include($node) 

Reply via email to