bjori           Fri Aug 17 09:17:43 2007 UTC

  Modified files:              
    /phd/themes/php     phpweb.php 
  Log:
  Refactor the next/prev page generation into their own methods
  
  
http://cvs.php.net/viewvc.cgi/phd/themes/php/phpweb.php?r1=1.6&r2=1.7&diff_format=u
Index: phd/themes/php/phpweb.php
diff -u phd/themes/php/phpweb.php:1.6 phd/themes/php/phpweb.php:1.7
--- phd/themes/php/phpweb.php:1.6       Thu Aug 16 18:36:28 2007
+++ phd/themes/php/phpweb.php   Fri Aug 17 09:17:43 2007
@@ -1,5 +1,5 @@
 <?php
-/*  $Id: phpweb.php,v 1.6 2007/08/16 18:36:28 bjori Exp $ */
+/*  $Id: phpweb.php,v 1.7 2007/08/17 09:17:43 bjori Exp $ */
 
 class phpweb extends phpdotnet implements PhDTheme {
     protected $streams = array();
@@ -75,61 +75,8 @@
             $incl = 'include_once "./toc/' .$parent. '.inc";';
             $up = array($this->getFilename($parent).$ext, 
PhDHelper::getDescription($parent, true));
 
-            // {{{ Create the "next" link
-            if (!empty($siblings[$id]["children"])) {
-                $tmp = reset($siblings[$id]["children"]);
-                $next = array($tmp["filename"].$ext, (empty($tmp["ldesc"]) ? 
$tmp["sdesc"] : $tmp["ldesc"]));
-            } else {
-                // don't overwrite these variables
-                $tid = $id;
-                $tsiblings = $siblings;
-                $tparent = $parent;
-                do {
-                    if (!isset($tsiblings[$tid])) {
-                        break;
-                    }
-
-                    // Seek to $tid
-                    in_array($tsiblings[$tid], $tsiblings, false, true) or 
die(var_export(debug_backtrace(), true) ."\n$tid\n$tparent"); // This should 
*never* happen
-                    $tmp = next($tsiblings);
-                    prev($tsiblings); // Reset the internal pointer to 
previous pos
-                    if ($tmp) {
-                        $next = array($tmp["filename"].$ext, 
(empty($tmp["sdesc"]) ? $tmp["ldesc"] : $tmp["sdesc"]));
-                        break;
-                    }
-
-                    // We are the end element in this chapter
-                    $tgrandpa = PhDHelper::getParent($tparent);
-                    if (!$tgrandpa || $tgrandpa == "ROOT") {
-                        // There is no next relative
-                        break;
-                    }
-
-                    $tsiblings  = PhDHelper::getChildren($tgrandpa);
-                    $tid = $tparent;
-                    $tparent = $tgrandpa;
-                } while(true);
-            } // }}}
-
-            // {{{ Create the "previous" link
-            do {
-                if (!isset($siblings[$id])) {
-                    break;
-                }
-
-                // Seek to $id
-                in_array($siblings[$id], $siblings, false, true);
-                $tmp = prev($siblings);
-                if ($tmp) {
-                    while (!empty($tmp["children"])) {
-                        $tmp = end($tmp["children"]);
-                    }
-                    $prev = array($tmp["filename"].$ext, (empty($tmp["sdesc"]) 
? $tmp["ldesc"] : $tmp["sdesc"]));
-                    break;
-                }
-
-                $prev = array(PhDHelper::getFilename($parent).$ext, 
PhDHelper::getDescription($parent, false));
-            } while(false); // }}}
+            $prev = $this->createPrev($id, $parent, $siblings);
+            $next = $this->createNext($id, $parent, $siblings);
         }
 
         $setup = array(
@@ -158,6 +105,70 @@
     public function footer($id) {
         return "<?php manual_footer(); ?>";
     }
+    protected function createPrev($id, $parent, $siblings) {
+        $ext = '.' .$this->ext;
+        $prev = array(null, null);
+        // {{{ Create the "previous" link
+        do {
+            if (!isset($siblings[$id])) {
+                break;
+            }
+
+            // Seek to $id
+            in_array($siblings[$id], $siblings, false, true);
+            $tmp = prev($siblings);
+            if ($tmp) {
+                while (!empty($tmp["children"])) {
+                    $tmp = end($tmp["children"]);
+                }
+                $prev = array($tmp["filename"].$ext, (empty($tmp["sdesc"]) ? 
$tmp["ldesc"] : $tmp["sdesc"]));
+                break;
+            }
+
+            $prev = array(PhDHelper::getFilename($parent).$ext, 
PhDHelper::getDescription($parent, false));
+        } while(false); // }}}
+        return $prev;
+    }
+    protected function createNext($id, $parent, $siblings) {
+        $ext = '.' .$this->ext;
+        $next = array(null, null);
+        // {{{ Create the "next" link
+        if (!empty($siblings[$id]["children"])) {
+            $tmp = reset($siblings[$id]["children"]);
+            $next = array($tmp["filename"].$ext, (empty($tmp["ldesc"]) ? 
$tmp["sdesc"] : $tmp["ldesc"]));
+        } else {
+            // don't overwrite these variables
+            $tid = $id;
+            $tsiblings = $siblings;
+            $tparent = $parent;
+            do {
+                if (!isset($tsiblings[$tid])) {
+                    break;
+                }
+
+                // Seek to $tid
+                in_array($tsiblings[$tid], $tsiblings, false, true) or 
die(var_export(debug_backtrace(), true) ."\n$tid\n$tparent"); // This should 
*never* happen
+                $tmp = next($tsiblings);
+                prev($tsiblings); // Reset the internal pointer to previous pos
+                if ($tmp) {
+                    $next = array($tmp["filename"].$ext, (empty($tmp["sdesc"]) 
? $tmp["ldesc"] : $tmp["sdesc"]));
+                    break;
+                }
+
+                // We are the end element in this chapter
+                $tgrandpa = PhDHelper::getParent($tparent);
+                if (!$tgrandpa || $tgrandpa == "ROOT") {
+                    // There is no next relative
+                    break;
+                }
+
+                $tsiblings  = PhDHelper::getChildren($tgrandpa);
+                $tid = $tparent;
+                $tparent = $tgrandpa;
+            } while(true);
+        } // }}}
+        return $next;
+    }
     public function __destruct() {
         copy("php/manual.php", "php/index.php");
     }

Reply via email to