cvs: pear /HTML_Menu/Menu ArrayRenderer.php DirectRenderer.php DirectTreeRenderer.php SigmaRenderer.php SigmaTreeRenderer.php
| From: | Alexey Borzov | Date: | Sun, 18 Jan 2004 17:35:52 +0000 |
| Subject: | cvs: pear /HTML_Menu/Menu ArrayRenderer.php DirectRenderer.php DirectTreeRenderer.php SigmaRenderer.php SigmaTreeRenderer.php | ||
| Groups: | php.pear.cvs | ||
| Request: | Send a blank email to pear-cvs+get-15763@lists.php.net to get a copy of this message | ||
avb Sun Jan 18 12:35:52 2004 EDT
Modified files:
/pear/HTML_Menu/Menu SigmaTreeRenderer.php SigmaRenderer.php
DirectTreeRenderer.php DirectRenderer.php
ArrayRenderer.php
Log:
Do not just take 'url' and 'title' from menu entries, process custom keys,
too.
Index: pear/HTML_Menu/Menu/SigmaTreeRenderer.php diff -u pear/HTML_Menu/Menu/SigmaTreeRenderer.php:1.1 pear/HTML_Menu/Menu/SigmaTreeRenderer.php:1.2 --- pear/HTML_Menu/Menu/SigmaTreeRenderer.php:1.1 Sat Jan 17 07:34:15 2004 +++ pear/HTML_Menu/Menu/SigmaTreeRenderer.php Sun Jan 18 12:35:52 2004 @@ -16,7 +16,7 @@ // | Authors: Alexey Borzov <avb@php.net> | // +----------------------------------------------------------------------+ // -// $Id: SigmaTreeRenderer.php,v 1.1 2004/01/17 12:34:15 avb Exp $ +// $Id: SigmaTreeRenderer.php,v 1.2 2004/01/18 17:35:52 avb Exp $ // require_once 'HTML/Menu/Renderer.php'; @@ -25,7 +25,7 @@ * HTML_Template_Sigma-based renderer for 'tree' and 'sitemap' type menus, * where menu level is represented by tag nesting. * - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * @author Alexey Borzov <avb@php.net> * @access public * @package HTML_Menu @@ -144,10 +144,11 @@ $blockName = $this->_prefix . $this->_typeNames[$type]; } - if ($this->_tpl->placeholderExists($this->_prefix . 'url', $blockName)) { - $this->_tpl->setVariable($this->_prefix . 'url', $node['url']); + foreach ($node as $k => $v) { + if ('sub' != $k && $this->_tpl->placeholderExists($this->_prefix . $k, $blockName)) { + $this->_tpl->setVariable($this->_prefix . $k, $v); + } } - $this->_tpl->setVariable($this->_prefix . 'title', $node['title']); $this->_tpl->parse($blockName); $this->_tpl->parse($this->_prefix . 'tree_loop'); Index: pear/HTML_Menu/Menu/SigmaRenderer.php diff -u pear/HTML_Menu/Menu/SigmaRenderer.php:1.1 pear/HTML_Menu/Menu/SigmaRenderer.php:1.2 --- pear/HTML_Menu/Menu/SigmaRenderer.php:1.1 Fri Sep 12 09:02:52 2003 +++ pear/HTML_Menu/Menu/SigmaRenderer.php Sun Jan 18 12:35:52 2004 @@ -16,7 +16,7 @@ // | Author: Alexey Borzov <avb@php.net> | // +----------------------------------------------------------------------+ // -// $Id: SigmaRenderer.php,v 1.1 2003/09/12 13:02:52 avb Exp $ +// $Id: SigmaRenderer.php,v 1.2 2004/01/18 17:35:52 avb Exp $ // require_once 'HTML/Menu/Renderer.php'; @@ -24,7 +24,7 @@ /** * The renderer that uses HTML_Template_Sigma instance for menu output. * - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * @author Alexey Borzov <avb@php.net> * @access public * @package HTML_Menu @@ -93,7 +93,7 @@ } } - function renderEntry(&$node, $level, $type) + function renderEntry($node, $level, $type) { if (in_array($this->_menuType, array('tree', 'sitemap', 'rows')) && $this->_tpl->blockExists($this->_prefix . ($level + 1) . '_' . $this->_typeNames[$type])) { @@ -110,10 +110,11 @@ $this->_tpl->parse($blockName . '_indent'); } } - if ($this->_tpl->placeholderExists($this->_prefix . 'url', $blockName)) { - $this->_tpl->setVariable($this->_prefix . 'url', $node['url']); + foreach ($node as $k => $v) { + if ('sub' != $k && $this->_tpl->placeholderExists($this->_prefix . $k, $blockName)) { + $this->_tpl->setVariable($this->_prefix . $k, $v); + } } - $this->_tpl->setVariable($this->_prefix . 'title', $node['title']); $this->_tpl->parse($blockName); if ('rows' == $this->_menuType && $this->_tpl->blockExists($this->_prefix . ($level + 1) . '_entry_loop')) { Index: pear/HTML_Menu/Menu/DirectTreeRenderer.php diff -u pear/HTML_Menu/Menu/DirectTreeRenderer.php:1.1 pear/HTML_Menu/Menu/DirectTreeRenderer.php:1.2 --- pear/HTML_Menu/Menu/DirectTreeRenderer.php:1.1 Tue Jan 13 10:53:43 2004 +++ pear/HTML_Menu/Menu/DirectTreeRenderer.php Sun Jan 18 12:35:52 2004 @@ -17,7 +17,7 @@ // | Uwe Mindrup <uwe@mindrup.de> | // +----------------------------------------------------------------------+ // -// $Id: DirectTreeRenderer.php,v 1.1 2004/01/13 15:53:43 avb Exp $ +// $Id: DirectTreeRenderer.php,v 1.2 2004/01/18 17:35:52 avb Exp $ // require_once 'HTML/Menu/Renderer.php'; @@ -28,7 +28,7 @@ * * Thanks to Uwe Mindrup for the idea and initial implementation. * - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * @author Alexey Borzov <avb@php.net> * @author Uwe Mindrup <uwe@mindrup.de> * @access public @@ -110,11 +110,14 @@ isset($this->_levelHtml[$level]) or $this->_levelHtml[$level] = ''; $this->_levelHtml[$level] .= $this->_itemTemplate[0] . $this->_itemHtml[$level] . $this->_itemTemplate[1]; } - $this->_itemHtml[$level] = str_replace( - array('{url}', '{title}'), - array($node['url'], $node['title']), - $this->_entryTemplates[$type] - ); + $keys = $values = array(); + foreach ($node as $k => $v) { + if ('sub' != $k) { + $keys[] = '{' . $k . '}'; + $values[] = $v; + } + } + $this->_itemHtml[$level] = str_replace($keys, $values, $this->_entryTemplates[$type]); } Index: pear/HTML_Menu/Menu/DirectRenderer.php diff -u pear/HTML_Menu/Menu/DirectRenderer.php:1.2 pear/HTML_Menu/Menu/DirectRenderer.php:1.3 --- pear/HTML_Menu/Menu/DirectRenderer.php:1.2 Wed Sep 10 10:13:13 2003 +++ pear/HTML_Menu/Menu/DirectRenderer.php Sun Jan 18 12:35:52 2004 @@ -18,7 +18,7 @@ // | Alexey Borzov <avb@php.net> | // +----------------------------------------------------------------------+ // -// $Id: DirectRenderer.php,v 1.2 2003/09/10 14:13:13 avb Exp $ +// $Id: DirectRenderer.php,v 1.3 2004/01/18 17:35:52 avb Exp $ // require_once 'HTML/Menu/Renderer.php'; @@ -28,7 +28,7 @@ * * Inspired by HTML_Menu 1.0 code * - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @author Ulf Wendel <ulf.wendel@phpdoc.de> * @author Alexey Borzov <avb@php.net> * @access public @@ -97,17 +97,19 @@ function renderEntry($node, $level, $type) { - $values = array($node['url'], $node['title']); + $keys = array('{indent}'); if ('tree' == $this->_menuType || 'sitemap' == $this->_menuType) { - $values[] = str_repeat(' ', $level); + $values = array(str_repeat(' ', $level)); } else { - $values[] = ''; + $values = array(''); } - $this->_rowHtml .= str_replace( - array('{url}', '{title}', '{indent}'), - $values, - $this->_entryTemplates[$type] - ); + foreach ($node as $k => $v) { + if ('sub' != $k) { + $keys[] = '{' . $k . '}'; + $values[] = $v; + } + } + $this->_rowHtml .= str_replace($keys, $values, $this->_entryTemplates[$type]); } Index: pear/HTML_Menu/Menu/ArrayRenderer.php diff -u pear/HTML_Menu/Menu/ArrayRenderer.php:1.1 pear/HTML_Menu/Menu/ArrayRenderer.php:1.2 --- pear/HTML_Menu/Menu/ArrayRenderer.php:1.1 Mon Sep 15 13:24:38 2003 +++ pear/HTML_Menu/Menu/ArrayRenderer.php Sun Jan 18 12:35:52 2004 @@ -16,7 +16,7 @@ // | Author: Alexey Borzov <avb@php.net> | // +----------------------------------------------------------------------+ // -// $Id: ArrayRenderer.php,v 1.1 2003/09/15 17:24:38 avb Exp $ +// $Id: ArrayRenderer.php,v 1.2 2004/01/18 17:35:52 avb Exp $ // require_once 'HTML/Menu/Renderer.php'; @@ -45,9 +45,11 @@ * 'title' => title element of menu entry * 'level' => entry's depth in the tree structure * 'type' => type of entry, one of HTML_MENU_ENTRY_* constants + * // if the nodes in the original menu array contained keys other + * // than 'url', 'title' and 'sub', they will be copied here, too * ) * - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * @author Alexey Borzov <avb@php.net> * @access public * @package HTML_Menu @@ -80,12 +82,10 @@ function renderEntry($node, $level, $type) { - $this->_menuAry[] = array( - 'url' => $node['url'], - 'title' => $node['title'], - 'level' => $level, - 'type' => $type - ); + unset($node['sub']); + $node['level'] = $level; + $node['type'] = $type; + $this->_menuAry[] = $node; }
Index: pear/HTML_Menu/Menu/SigmaTreeRenderer.php diff -u pear/HTML_Menu/Menu/SigmaTreeRenderer.php:1.1 pear/HTML_Menu/Menu/SigmaTreeRenderer.php:1.2 --- pear/HTML_Menu/Menu/SigmaTreeRenderer.php:1.1 Sat Jan 17 07:34:15 2004 +++ pear/HTML_Menu/Menu/SigmaTreeRenderer.php Sun Jan 18 12:35:52 2004 @@ -16,7 +16,7 @@ // | Authors: Alexey Borzov <avb@php.net> | // +----------------------------------------------------------------------+ // -// $Id: SigmaTreeRenderer.php,v 1.1 2004/01/17 12:34:15 avb Exp $ +// $Id: SigmaTreeRenderer.php,v 1.2 2004/01/18 17:35:52 avb Exp $ // require_once 'HTML/Menu/Renderer.php'; @@ -25,7 +25,7 @@ * HTML_Template_Sigma-based renderer for 'tree' and 'sitemap' type menus, * where menu level is represented by tag nesting. * - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * @author Alexey Borzov <avb@php.net> * @access public * @package HTML_Menu @@ -144,10 +144,11 @@ $blockName = $this->_prefix . $this->_typeNames[$type]; } - if ($this->_tpl->placeholderExists($this->_prefix . 'url', $blockName)) { - $this->_tpl->setVariable($this->_prefix . 'url', $node['url']); + foreach ($node as $k => $v) { + if ('sub' != $k && $this->_tpl->placeholderExists($this->_prefix . $k, $blockName)) { + $this->_tpl->setVariable($this->_prefix . $k, $v); + } } - $this->_tpl->setVariable($this->_prefix . 'title', $node['title']); $this->_tpl->parse($blockName); $this->_tpl->parse($this->_prefix . 'tree_loop'); Index: pear/HTML_Menu/Menu/SigmaRenderer.php diff -u pear/HTML_Menu/Menu/SigmaRenderer.php:1.1 pear/HTML_Menu/Menu/SigmaRenderer.php:1.2 --- pear/HTML_Menu/Menu/SigmaRenderer.php:1.1 Fri Sep 12 09:02:52 2003 +++ pear/HTML_Menu/Menu/SigmaRenderer.php Sun Jan 18 12:35:52 2004 @@ -16,7 +16,7 @@ // | Author: Alexey Borzov <avb@php.net> | // +----------------------------------------------------------------------+ // -// $Id: SigmaRenderer.php,v 1.1 2003/09/12 13:02:52 avb Exp $ +// $Id: SigmaRenderer.php,v 1.2 2004/01/18 17:35:52 avb Exp $ // require_once 'HTML/Menu/Renderer.php'; @@ -24,7 +24,7 @@ /** * The renderer that uses HTML_Template_Sigma instance for menu output. * - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * @author Alexey Borzov <avb@php.net> * @access public * @package HTML_Menu @@ -93,7 +93,7 @@ } } - function renderEntry(&$node, $level, $type) + function renderEntry($node, $level, $type) { if (in_array($this->_menuType, array('tree', 'sitemap', 'rows')) && $this->_tpl->blockExists($this->_prefix . ($level + 1) . '_' . $this->_typeNames[$type])) { @@ -110,10 +110,11 @@ $this->_tpl->parse($blockName . '_indent'); } } - if ($this->_tpl->placeholderExists($this->_prefix . 'url', $blockName)) { - $this->_tpl->setVariable($this->_prefix . 'url', $node['url']); + foreach ($node as $k => $v) { + if ('sub' != $k && $this->_tpl->placeholderExists($this->_prefix . $k, $blockName)) { + $this->_tpl->setVariable($this->_prefix . $k, $v); + } } - $this->_tpl->setVariable($this->_prefix . 'title', $node['title']); $this->_tpl->parse($blockName); if ('rows' == $this->_menuType && $this->_tpl->blockExists($this->_prefix . ($level + 1) . '_entry_loop')) { Index: pear/HTML_Menu/Menu/DirectTreeRenderer.php diff -u pear/HTML_Menu/Menu/DirectTreeRenderer.php:1.1 pear/HTML_Menu/Menu/DirectTreeRenderer.php:1.2 --- pear/HTML_Menu/Menu/DirectTreeRenderer.php:1.1 Tue Jan 13 10:53:43 2004 +++ pear/HTML_Menu/Menu/DirectTreeRenderer.php Sun Jan 18 12:35:52 2004 @@ -17,7 +17,7 @@ // | Uwe Mindrup <uwe@mindrup.de> | // +----------------------------------------------------------------------+ // -// $Id: DirectTreeRenderer.php,v 1.1 2004/01/13 15:53:43 avb Exp $ +// $Id: DirectTreeRenderer.php,v 1.2 2004/01/18 17:35:52 avb Exp $ // require_once 'HTML/Menu/Renderer.php'; @@ -28,7 +28,7 @@ * * Thanks to Uwe Mindrup for the idea and initial implementation. * - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * @author Alexey Borzov <avb@php.net> * @author Uwe Mindrup <uwe@mindrup.de> * @access public @@ -110,11 +110,14 @@ isset($this->_levelHtml[$level]) or $this->_levelHtml[$level] = ''; $this->_levelHtml[$level] .= $this->_itemTemplate[0] . $this->_itemHtml[$level] . $this->_itemTemplate[1]; } - $this->_itemHtml[$level] = str_replace( - array('{url}', '{title}'), - array($node['url'], $node['title']), - $this->_entryTemplates[$type] - ); + $keys = $values = array(); + foreach ($node as $k => $v) { + if ('sub' != $k) { + $keys[] = '{' . $k . '}'; + $values[] = $v; + } + } + $this->_itemHtml[$level] = str_replace($keys, $values, $this->_entryTemplates[$type]); } Index: pear/HTML_Menu/Menu/DirectRenderer.php diff -u pear/HTML_Menu/Menu/DirectRenderer.php:1.2 pear/HTML_Menu/Menu/DirectRenderer.php:1.3 --- pear/HTML_Menu/Menu/DirectRenderer.php:1.2 Wed Sep 10 10:13:13 2003 +++ pear/HTML_Menu/Menu/DirectRenderer.php Sun Jan 18 12:35:52 2004 @@ -18,7 +18,7 @@ // | Alexey Borzov <avb@php.net> | // +----------------------------------------------------------------------+ // -// $Id: DirectRenderer.php,v 1.2 2003/09/10 14:13:13 avb Exp $ +// $Id: DirectRenderer.php,v 1.3 2004/01/18 17:35:52 avb Exp $ // require_once 'HTML/Menu/Renderer.php'; @@ -28,7 +28,7 @@ * * Inspired by HTML_Menu 1.0 code * - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @author Ulf Wendel <ulf.wendel@phpdoc.de> * @author Alexey Borzov <avb@php.net> * @access public @@ -97,17 +97,19 @@ function renderEntry($node, $level, $type) { - $values = array($node['url'], $node['title']); + $keys = array('{indent}'); if ('tree' == $this->_menuType || 'sitemap' == $this->_menuType) { - $values[] = str_repeat(' ', $level); + $values = array(str_repeat(' ', $level)); } else { - $values[] = ''; + $values = array(''); } - $this->_rowHtml .= str_replace( - array('{url}', '{title}', '{indent}'), - $values, - $this->_entryTemplates[$type] - ); + foreach ($node as $k => $v) { + if ('sub' != $k) { + $keys[] = '{' . $k . '}'; + $values[] = $v; + } + } + $this->_rowHtml .= str_replace($keys, $values, $this->_entryTemplates[$type]); } Index: pear/HTML_Menu/Menu/ArrayRenderer.php diff -u pear/HTML_Menu/Menu/ArrayRenderer.php:1.1 pear/HTML_Menu/Menu/ArrayRenderer.php:1.2 --- pear/HTML_Menu/Menu/ArrayRenderer.php:1.1 Mon Sep 15 13:24:38 2003 +++ pear/HTML_Menu/Menu/ArrayRenderer.php Sun Jan 18 12:35:52 2004 @@ -16,7 +16,7 @@ // | Author: Alexey Borzov <avb@php.net> | // +----------------------------------------------------------------------+ // -// $Id: ArrayRenderer.php,v 1.1 2003/09/15 17:24:38 avb Exp $ +// $Id: ArrayRenderer.php,v 1.2 2004/01/18 17:35:52 avb Exp $ // require_once 'HTML/Menu/Renderer.php'; @@ -45,9 +45,11 @@ * 'title' => title element of menu entry * 'level' => entry's depth in the tree structure * 'type' => type of entry, one of HTML_MENU_ENTRY_* constants + * // if the nodes in the original menu array contained keys other + * // than 'url', 'title' and 'sub', they will be copied here, too * ) * - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * @author Alexey Borzov <avb@php.net> * @access public * @package HTML_Menu @@ -80,12 +82,10 @@ function renderEntry($node, $level, $type) { - $this->_menuAry[] = array( - 'url' => $node['url'], - 'title' => $node['title'], - 'level' => $level, - 'type' => $type - ); + unset($node['sub']); + $node['level'] = $level; + $node['type'] = $type; + $this->_menuAry[] = $node; }