[prev in list] [next in list] [prev in thread] [next in thread]
List: php-doc-cvs
Subject: [DOC-CVS] svn: /phd/trunk/phpdotnet/phd/Package/Pear/ Web.php
From: Moacir_de_Oliveira_Miranda_JĂșnior <moacir () php ! net>
Date: 2009-08-31 13:26:14
Message-ID: svn-moacir-1251725174-287920-850423292 () svn ! php ! net
[Download RAW message or body]
moacir Mon, 31 Aug 2009 13:26:14 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=287920
Log:
Fixing prev/next/toc links
* Methods createPrev and createNext removed
* Using the Format::getPrevious and Format::getNext
* method createChildren created to use in the toc
Changed paths:
U phd/trunk/phpdotnet/phd/Package/Pear/Web.php
Modified: phd/trunk/phpdotnet/phd/Package/Pear/Web.php
===================================================================
--- phd/trunk/phpdotnet/phd/Package/Pear/Web.php 2009-08-31 13:20:58 UTC (rev 287919)
+++ phd/trunk/phpdotnet/phd/Package/Pear/Web.php 2009-08-31 13:26:14 UTC (rev 287920)
@@ -42,19 +42,42 @@
// Fetch the siblings information
$toc = array();
- $siblings = Format::getChildrens($parent);
+ $siblingIDs = Format::getChildrens($parent);
+ $siblings = array();
+ foreach ($siblingIDs as $sid) {
+ $siblings[$sid] = array(
+ "filename" => Format::getFilename($sid),
+ "parent" => Format::getParent($sid),
+ "sdesc" => Format::getShortDescription($sid),
+ "ldesc" => Format::getLongDescription($sid),
+ "children" => $this->createChildren($sid),
+ );
+ }
foreach ((array)$siblings as $sibling => $array) {
$toc[] = array($sibling.$ext, empty($array["sdesc"]) ? $array["ldesc"] : $array["sdesc"]);
}
+ $prev = $next = array(null, null);
+ if ($prevID = Format::getPrevious($id)) {
+ $prev = array(
+ Format::getFilename($prevID).$ext,
+ Format::getLongDescription($prevID),
+ );
+ }
+ if ($nextID = Format::getNext($id)) {
+ $next = array(
+ Format::getFilename($nextID).$ext,
+ Format::getLongDescription($nextID),
+ );
+ }
// Build the PEAR navigation table
$nav = array(
'home' => array('index' . $ext, $this->title),
- 'prev' => $this->createPrev($id, $parent, $siblings),
- 'next' => $this->createNext($id, $parent, $siblings),
+ 'prev' => $prev,
+ 'next' => $next,
'up' => array($this->getFilename($parent).$ext, Format::getLongDescription($parent)),
'toc' => $toc
- );
+ );
return "<?php \n" .
"sendManualHeaders(\"UTF-8\", \"{$this->lang}\");\n" .
"setupNavigation(" . var_export($nav, true) . ");\n" .
@@ -85,104 +108,20 @@
. '); ?>';
}
- /**
- * Create the previous page link information
- *
- * @param string $id ID of the page
- * @param string $parent ID of the parent element
- * @param array $siblings array of siblings
- *
- * @return array(0=>filename,1=>description)
- */
- protected function createPrev($id, $parent, $siblings)
- {
- if (!isset($siblings[$id]) || $parent == 'ROOT') {
- return array(null, null);
+ protected function createChildren($id) {
+ if (!Format::getChildrens($id)) {
+ return array();
}
- $ext = '.' .$this->ext;
-
- // Seek to $id
- while (list($tmp,) = each($siblings)) {
- if ($tmp == $id) {
- // Set the internal pointer back to $id
- if (prev($siblings) === false) {
- end($siblings);
- }
- break;
- }
+ $children = array($id => array(
+ "filename" => Format::getFilename($id),
+ "parent" => Format::getParent($id),
+ "sdesc" => Format::getShortDescription($id),
+ "ldesc" => Format::getLongDescription($id),
+ ));
+ foreach (Format::getChildrens($id) as $child) {
+ $children["children"] = $this->createChildren($child);
}
- $tmp = prev($siblings);
- if ($tmp) {
- while (!empty($tmp["children"])) {
- $tmp = end($tmp["children"]);
- }
- return array(
- $tmp["filename"].$ext,
- htmlspecialchars(empty($tmp["sdesc"]) ? $tmp["ldesc"] : $tmp["sdesc"])
- );
- break;
- }
-
- return array(Format::getFilename($parent).$ext, Format::getLongDescription($parent, false));
}
-
- /**
- * Create the next page link information
- *
- * @param string $id ID of the page
- * @param string $parent ID of the parent element
- * @param array $siblings array of siblings
- *
- * @return array(0=>filename,1=>description)
- */
- 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"]);
- return array(
- $tmp["filename"].$ext,
- htmlspecialchars(empty($tmp["sdesc"]) ? $tmp["ldesc"] : $tmp["sdesc"])
- );
- }
- do {
- if (!isset($siblings[$id])) {
- break;
- }
-
- // Seek to $id
- while (list($tmp,) = each($siblings)) {
- if ($tmp == $id) {
- break;
- }
- }
-
- $tmp = current($siblings);
- prev($siblings); // Reset the internal pointer to previous pos
- if ($tmp) {
- $next = array(
- $tmp["filename"].$ext,
- htmlspecialchars(empty($tmp["sdesc"]) ? $tmp["ldesc"] : $tmp["sdesc"])
- );
- break;
- }
-
- // We are the end element in this chapter
- $grandpa = Format::getParent($parent);
- if (!$grandpa || $grandpa == "ROOT") {
- // There is no next relative
- break;
- }
-
- $siblings = Format::getChildrens($grandpa);
- $id = $parent;
- $parent = $grandpa;
- } while (true);
- return $next;
- }
-
}
/*
--
PHP Documentation Commits Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic