<?php
// vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker:
/**
 * Presenta menu principal
 * 
 * Basado en fuentes y documentación del paquete de Pear HTML_Menu_Renderer
 *
 * PHP version 5
 *
 * @category  SIVeL
 * @package   SIVeL
 * @author    Vladimir Támara <vtamara@pasosdeJesus.org>
 * @copyright 2004 Dominio público. Sin garantías.
 * @license   http://creativecommons.org/licenses/publicdomain/ Dominio Público. Sin garantías.
 * @version   $Id: PresentaMenuPrincipal.php,v 1.12 2009/05/02 03:15:45 vtamara Exp $
 * @link      http://sivel.sf.net
*/

/**
 * Generador de un menu HTML_Menu
 */
require_once 'HTML/Menu/Renderer.php';


/**
 * Generador de un menu HTML_Menu
 *
 * @category SIVeL
 * @package  SIVeL
 * @author   Vladimir Támara <vtamara@pasosdeJesus.org>
 * @license  http://creativecommons.org/licenses/publicdomain/ Dominio Público.
 * @link     http://sivel.sf.net/tec
 */
class PresentaMenuPrincipal extends HTML_Menu_Renderer
{

    /**
     * HTML generado para el menu
     * @var string
     */
    var $_html = '';

   /**
    * Termina el menú
    * 
    * @param int $level profundidad actual en la estructura de árbol
    *
    * @return void
    */
    function finishMenu($level)
    {
        $this->_html = "<ul class='nav'>" . $this->_html."</ul></ul>";
    }


   /**
    * Completa el nivel del árbol (para los tipos 'tree' y 'sitemap')
    *  
    * @param int $level profundidad actual en la estructura de árbol
    *
    * @return void
    */
    function finishLevel($level)
    {
    }


   /**
    * Completa fila en el menú
    *
    * @param int $level profundidad actual en la estructura de árbol
    *
    * @return void
    */
    function finishRow($level)
    {
    }


   /**
    * Genera el elmento del menú
    *
    * @param array $node  Elmento que se genera
    * @param int   $level profundidad actual en la estructura de árbol
    * @param int   $type  Tipo de elmento (una constante HTML_MENU_ENTRY_* )
    *
    * @return void
    */
    function renderEntry($node, $level, $type)
    {
        if ($level == 0 && $this->_html != '') {
            $this->_html .= "</ul></li>";
        }
        $this->_html .= "<li>";
        if ($level == 0) {
            $this->_html .= "<strong>";
        } else {
            $this->_html .= "<a href='" . $node['url'] . "'>";
        }
        $this->_html .= $node['title'];
        if ($level == 0) {
            $this->_html .= "</strong>";
            $this->_html .= "<ul>\n";
        } else {
            $this->_html .= "</a>";
            $this->_html .= "</li>\n";
        }
    }

     /**
      * Retorna el HTML del menu generado
      *
      * @return string
      */
    function toHtml()
    {
        return $this->_html;
    } 

}

?>
