Documentación GVHIDRA 3.1.5
Referencia de la Clase PHPTreeMenu
Diagrama de herencias de PHPTreeMenu
LayersMenuCommon

Métodos públicos

 PHPTreeMenu ()
 setDirroot ($dirroot)
 setPHPTreeMenuSeparator ($phpTreeMenuSeparator)
 setPHPTreeMenuDefaultExpansion ($phpTreeMenuDefaultExpansion)
 setPHPTreeMenuImagesType ($phpTreeMenuImagesType)
 setPHPTreeMenuTheme ($phpTreeMenuTheme)
 newPHPTreeMenu ($menu_name= '')
 getPHPTreeMenu ($menu_name)
 printPHPTreeMenu ($menu_name)

Campos de datos

 $phpTreeMenuSeparator
 $phpTreeMenuDefaultExpansion
 $phpTreeMenuImagesType
 $phpTreeMenuTheme
 $_phpTreeMenu

Descripción detallada

Definición en la línea 17 del archivo phptreemenu.inc.php.


Documentación de las funciones miembro

getPHPTreeMenu ( menu_name)

Method that returns the code of the requested PHP Tree Menu public

Parámetros:
string$menu_namethe name of the menu whose PHP Tree Menu code has to be returned
Devuelve:
string

Definición en la línea 429 del archivo phptreemenu.inc.php.

{
        return $this->_phpTreeMenu[$menu_name];
}
newPHPTreeMenu ( menu_name = '')

Method to prepare a new PHP Tree Menu.

This method processes items of a menu and parameters submitted through GET (i.e. nodes to be expanded) to prepare and return the corresponding Tree Menu code.

public

Parámetros:
string$menu_namethe name of the menu whose items have to be processed
Devuelve:
string

Definición en la línea 127 del archivo phptreemenu.inc.php.

{
        $protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
        $this_host = (isset($_SERVER['HTTP_HOST'])) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
        if (isset($_SERVER['SCRIPT_NAME'])) {
                $me = $_SERVER['SCRIPT_NAME'];
        } elseif (isset($_SERVER['REQUEST_URI'])) {
                $me = $_SERVER['REQUEST_URI'];
        } elseif (isset($_SERVER['PHP_SELF'])) {
                $me = $_SERVER['PHP_SELF'];
        } elseif (isset($_SERVER['PATH_INFO'])) {
                $me = $_SERVER['PATH_INFO'];
        }
        $url = $protocol . $this_host . $me;
        $query = '';
        reset($_GET);
        while (list($key, $value) = each($_GET)) {
                if ($key != 'p' && $value != '') {
                        $query .= '&' . $key . '=' . $value;
                }
        }
        if ($query != '') {
                $query = '?' . substr($query, 5) . '&p=';
        } else {
                $query = '?p=';
        }
        $p = (isset($_GET['p'])) ? $_GET['p'] : $this->phpTreeMenuDefaultExpansion;

/* ********************************************************* */
/* Based on TreeMenu 1.1 by Bjorge Dijkstra (bjorge@gmx.net) */
/* ********************************************************* */
        $this->_phpTreeMenu[$menu_name] = '';

        $img_collapse                   = $this->imgwww . $this->phpTreeMenuTheme . 'tree_collapse.' . $this->phpTreeMenuImagesType;
        $alt_collapse                   = '--';
        $img_collapse_corner            = $this->imgwww . $this->phpTreeMenuTheme . 'tree_collapse_corner.' . $this->phpTreeMenuImagesType;
        $alt_collapse_corner            = '--';
        $img_collapse_corner_first      = $this->imgwww . $this->phpTreeMenuTheme . 'tree_collapse_corner_first.' . $this->phpTreeMenuImagesType;
        $alt_collapse_corner_first      = '--';
        $img_collapse_first             = $this->imgwww . $this->phpTreeMenuTheme . 'tree_collapse_first.' . $this->phpTreeMenuImagesType;
        $alt_collapse_first             = '--';
        $img_corner                     = $this->imgwww . $this->phpTreeMenuTheme . 'tree_corner.' . $this->phpTreeMenuImagesType;
        $alt_corner                     = '`-';
        $img_expand                     = $this->imgwww . $this->phpTreeMenuTheme . 'tree_expand.' . $this->phpTreeMenuImagesType;
        $alt_expand                     = '+-';
        $img_expand_corner              = $this->imgwww . $this->phpTreeMenuTheme . 'tree_expand_corner.' . $this->phpTreeMenuImagesType;
        $alt_expand_corner              = '+-';
        $img_expand_corner_first        = $this->imgwww . $this->phpTreeMenuTheme . 'tree_expand_corner_first.' . $this->phpTreeMenuImagesType;
        $alt_expand_corner_first        = '+-';
        $img_expand_first               = $this->imgwww . $this->phpTreeMenuTheme . 'tree_expand_first.' . $this->phpTreeMenuImagesType;
        $alt_expand_first               = '+-';
        $img_folder_closed              = $this->imgwww . $this->phpTreeMenuTheme . 'tree_folder_closed.' . $this->phpTreeMenuImagesType;
        $alt_folder_closed              = '->';
        $img_folder_open                = $this->imgwww . $this->phpTreeMenuTheme . 'tree_folder_open.' . $this->phpTreeMenuImagesType;
        $alt_folder_open                = '->';
        $img_leaf                       = $this->imgwww . $this->phpTreeMenuTheme . 'tree_leaf.' . $this->phpTreeMenuImagesType;
        $alt_leaf                       = '->';
        $img_space                      = $this->imgwww . $this->phpTreeMenuTheme . 'tree_space.' . $this->phpTreeMenuImagesType;
        $alt_space                      = '  ';
        $img_split                      = $this->imgwww . $this->phpTreeMenuTheme . 'tree_split.' . $this->phpTreeMenuImagesType;
        $alt_split                      = '|-';
        $img_split_first                = $this->imgwww . $this->phpTreeMenuTheme . 'tree_split_first.' . $this->phpTreeMenuImagesType;
        $alt_split_first                = '|-';
        $img_vertline                   = $this->imgwww . $this->phpTreeMenuTheme . 'tree_vertline.' . $this->phpTreeMenuImagesType;
        $alt_vertline                   = '| ';

        for ($i=$this->_firstItem[$menu_name]; $i<=$this->_lastItem[$menu_name]; $i++) {
                $expand[$i] = 0;
                $visible[$i] = 0;
                $this->tree[$i]['last_item'] = 0;
        }
        for ($i=0; $i<=$this->_maxLevel[$menu_name]; $i++) {
                $levels[$i] = 0;
        }

        // Get numbers of nodes to be expanded
        if ($p != '') {
                $explevels = explode($this->phpTreeMenuSeparator, $p);
                $explevels_count = count($explevels);
                for ($i=0; $i<$explevels_count; $i++) {
                        $expand[$explevels[$i]] = 1;
                }
        }

        // Find last nodes of subtrees
        $last_level = $this->_maxLevel[$menu_name];
        for ($i=$this->_lastItem[$menu_name]; $i>=$this->_firstItem[$menu_name]; $i--) {
                if ($this->tree[$i]['level'] < $last_level) {
                        for ($j=$this->tree[$i]['level']+1; $j<=$this->_maxLevel[$menu_name]; $j++) {
                                $levels[$j] = 0;
                        }
                }
                if ($levels[$this->tree[$i]['level']] == 0) {
                        $levels[$this->tree[$i]['level']] = 1;
                        $this->tree[$i]['last_item'] = 1;
                } else {
                        $this->tree[$i]['last_item'] = 0;
                }
                $last_level = $this->tree[$i]['level'];
        }

        // Determine visible nodes
        // all root nodes are always visible
        for ($i=$this->_firstItem[$menu_name]; $i<=$this->_lastItem[$menu_name]; $i++) {
                if ($this->tree[$i]['level'] == 1) {
                        $visible[$i] = 1;
                }
        }
        if (isset($explevels)) {
                for ($i=0; $i<$explevels_count; $i++) {
                        $n = $explevels[$i];
                        if ($n >= $this->_firstItem[$menu_name] && $n <= $this->_lastItem[$menu_name] && $visible[$n] == 1 && $expand[$n] == 1) {
                                $j = $n + 1;
                                while ($j<=$this->_lastItem[$menu_name] && $this->tree[$j]['level']>$this->tree[$n]['level']) {
                                        if ($this->tree[$j]['level'] == $this->tree[$n]['level']+1) {
                                                $visible[$j] = 1;
                                        }
                                        $j++;
                                }
                        }
                }
        }

        // Output nicely formatted tree
        for ($i=0; $i<$this->_maxLevel[$menu_name]; $i++) {
                $levels[$i] = 1;
        }
        $max_visible_level = 0;
        for ($cnt=$this->_firstItem[$menu_name]; $cnt<=$this->_lastItem[$menu_name]; $cnt++) {
                if ($visible[$cnt]) {
                        $max_visible_level = max($max_visible_level, $this->tree[$cnt]['level']);
                }
        }
        for ($cnt=$this->_firstItem[$menu_name]; $cnt<=$this->_lastItem[$menu_name]; $cnt++) {
                if ($this->tree[$cnt]['text'] == '---') {
                        continue;       // separators are significant only for layers-based menus
                }

                if (isset($this->tree[$cnt]['selected']) && $this->tree[$cnt]['selected']) {
                        $linkstyle = 'phplmselected';
                } else {
                        $linkstyle = 'phplm';
                }

                if ($visible[$cnt]) {
                        $this->_phpTreeMenu[$menu_name] .= '<div class="treemenudiv">' . "\n"; 

                        // vertical lines from higher levels
                        for ($i=0; $i<$this->tree[$cnt]['level']-1; $i++) {
                                if ($levels[$i] == 1) {
                                        $img = $img_vertline;
                                        $alt = $alt_vertline;
                                } else {
                                        $img = $img_space;
                                        $alt = $alt_space;
                                }
                                $this->_phpTreeMenu[$menu_name] .= '<img align="top" border="0" class="imgs" src="' . $img . '" alt="' . $alt . '" />';
                        }

                        $not_a_leaf = $cnt<$this->_lastItem[$menu_name] && $this->tree[$cnt+1]['level']>$this->tree[$cnt]['level'];

                        if ($not_a_leaf) {
                                // Create expand/collapse parameters
                                $params = '';
                                for ($i=$this->_firstItem[$menu_name]; $i<=$this->_lastItem[$menu_name]; $i++) {
                                        if ($expand[$i] == 1 && $cnt!= $i || ($expand[$i] == 0 && $cnt == $i)) {
                                                $params .= $this->phpTreeMenuSeparator . $i;
                                        }
                                }
                                if ($params != '') {
                                        $params = substr($params, 1);
                                }
                        }

                        if ($this->tree[$cnt]['last_item'] == 1) {
                        // corner at end of subtree or t-split
                                if ($not_a_leaf) {
                                        if ($expand[$cnt] == 0) {
                                                if ($cnt == $this->_firstItem[$menu_name]) {
                                                        $img = $img_expand_corner_first;
                                                        $alt = $alt_expand_corner_first;
                                                } else {
                                                        $img = $img_expand_corner;
                                                        $alt = $alt_expand_corner;
                                                }
                                        } else {
                                                if ($cnt == $this->_firstItem[$menu_name]) {
                                                        $img = $img_collapse_corner_first;
                                                        $alt = $alt_collapse_corner_first;
                                                } else {
                                                        $img = $img_collapse_corner;
                                                        $alt = $alt_collapse_corner;
                                                }
                                        }
                                        $this->_phpTreeMenu[$menu_name] .= '<a name="' . $cnt . '" class="' . $linkstyle . '" href="' . $url . $query . $params . '#' . $cnt . '"><img align="top" border="0" class="imgs" src="' . $img . '" alt="' . $alt . '" /></a>';
                                } else {
                                        $this->_phpTreeMenu[$menu_name] .= '<img align="top" border="0" class="imgs" src="' . $img_corner . '" alt="' . $alt_corner . '" />';
                                }
                                $levels[$this->tree[$cnt]['level']-1] = 0;
                        } else {
                                if ($not_a_leaf) {
                                        if ($expand[$cnt] == 0) {
                                                if ($cnt == $this->_firstItem[$menu_name]) {
                                                        $img = $img_expand_first;
                                                        $alt = $alt_expand_first;
                                                } else {
                                                        $img = $img_expand;
                                                        $alt = $alt_expand;
                                                }
                                        } else {
                                                if ($cnt == $this->_firstItem[$menu_name]) {
                                                        $img = $img_collapse_first;
                                                        $alt = $alt_collapse_first;
                                                } else {
                                                        $img = $img_collapse;
                                                        $alt = $alt_collapse;
                                                }
                                        }
                                        $this->_phpTreeMenu[$menu_name] .= '<a name="' . $cnt . '" class="' . $linkstyle . '" href="' . $url . $query . $params . '#' . $cnt . '"><img align="top" border="0" class="imgs" src="' . $img . '" alt="' . $alt . '" /></a>';
                                } else {
                                        if ($cnt == $this->_firstItem[$menu_name]) {
                                                $img = $img_split_first;
                                                $alt = $alt_split_first;
                                        } else {
                                                $img = $img_split;
                                                $alt = $alt_split;
                                        }
                                        $this->_phpTreeMenu[$menu_name] .= '<img align="top" border="0" class="imgs" src="' . $img . '" alt="' . $alt . '" />';
                                }
                                $levels[$this->tree[$cnt]['level']-1] = 1;
                        }

                        if ($this->tree[$cnt]['parsed_href'] == '' || $this->tree[$cnt]['parsed_href'] == '#') {
                                $a_href_open_img = '';
                                $a_href_close_img = '';
                                $a_href_open = '<a class="phplmnormal">';
                                $a_href_close = '</a>';
                        } else {
                                $a_href_open_img = '<a href="' . $this->tree[$cnt]['parsed_href'] . '"' . $this->tree[$cnt]['parsed_title'] . $this->tree[$cnt]['parsed_target'] . '>';
                                $a_href_close_img = '</a>';
                                $a_href_open = '<a href="' . $this->tree[$cnt]['parsed_href'] . '"' . $this->tree[$cnt]['parsed_title'] . $this->tree[$cnt]['parsed_target'] . ' class="' . $linkstyle . '">';
                                $a_href_close = '</a>';
                        }

                        if ($not_a_leaf) {
                                if ($expand[$cnt] == 1) {
                                        $img = $img_folder_open;
                                        $alt = $alt_folder_open;
                                } else {
                                        $img = $img_folder_closed;
                                        $alt = $alt_folder_closed;
                                }
                                $this->_phpTreeMenu[$menu_name] .= $a_href_open_img . '<img align="top" border="0" class="imgs" src="' . $img . '" alt="' . $alt . '" />' . $a_href_close_img;
                        } else {
                                if ($this->tree[$cnt]['parsed_icon'] != '') {
                                        $this->_phpTreeMenu[$menu_name] .= $a_href_open_img . '<img align="top" border="0" src="' . $this->tree[$cnt]['parsed_icon'] . '" width="' . $this->tree[$cnt]['iconwidth'] . '" height="' . $this->tree[$cnt]['iconheight'] . '" alt="' . $alt_leaf . '" />' . $a_href_close_img;
                                } else {
                                        $this->_phpTreeMenu[$menu_name] .= $a_href_open_img . '<img align="top" border="0" class="imgs" src="' . $img_leaf . '" alt="' . $alt_leaf . '" />' . $a_href_close_img;
                                }
                        }

                        // output item text
                        $foobar = $max_visible_level - $this->tree[$cnt]['level'] + 1;
                        if ($foobar > 1) {
                                $colspan = ' colspan="' . $foobar . '"';
                        } else {
                                $colspan = '';
                        }
                        $this->_phpTreeMenu[$menu_name] .= '&nbsp;' . $a_href_open . $this->tree[$cnt]['parsed_text'] . $a_href_close . "\n";
                        $this->_phpTreeMenu[$menu_name] .= '</div>' . "\n";
                }
        }
/* ********************************************************* */

/*
        $this->_phpTreeMenu[$menu_name] =
        '<div class="phplmnormal">' . "\n" .
        $this->_phpTreeMenu[$menu_name] .
        '</div>' . "\n";
*/
        // Some (old) browsers do not support the "white-space: nowrap;" CSS property...
        $this->_phpTreeMenu[$menu_name] =
        '<table cellspacing="0" cellpadding="0" border="0">' . "\n" .
        '<tr>' . "\n" .
        '<td class="phplmnormal" nowrap="nowrap">' . "\n" .
        $this->_phpTreeMenu[$menu_name] .
        '</td>' . "\n" .
        '</tr>' . "\n" .
        '</table>' . "\n";

        return $this->_phpTreeMenu[$menu_name];
}

The constructor method; it initializates some variables

Devuelve:
void

Definición en la línea 55 del archivo phptreemenu.inc.php.

{
        $this->LayersMenuCommon();

        $this->phpTreeMenuSeparator = '|';
        $this->phpTreeMenuDefaultExpansion = '';
        $this->phpTreeMenuImagesType = 'png';
        $this->phpTreeMenuTheme = '';
        $this->_phpTreeMenu = array();
}
printPHPTreeMenu ( menu_name)

Method that prints the code of the requested PHP Tree Menu public

Parámetros:
string$menu_namethe name of the menu whose PHP Tree Menu code has to be printed
Devuelve:
void

Definición en la línea 441 del archivo phptreemenu.inc.php.

{
        print $this->_phpTreeMenu[$menu_name];
}
setDirroot ( dirroot)

The method to set the dirroot directory public

Devuelve:
boolean

Definición en la línea 71 del archivo phptreemenu.inc.php.

{
        return $this->setDirrootCommon($dirroot);
}
setPHPTreeMenuDefaultExpansion ( phpTreeMenuDefaultExpansion)

The method to set the default value of the expansion string for the PHP Tree Menu public

Devuelve:
void

Definición en la línea 91 del archivo phptreemenu.inc.php.

{
        $this->phpTreeMenuDefaultExpansion = $phpTreeMenuDefaultExpansion;
}
setPHPTreeMenuImagesType ( phpTreeMenuImagesType)

The method to set the type of images used for the Tree Menu public

Devuelve:
void

Definición en la línea 101 del archivo phptreemenu.inc.php.

{
        $this->phpTreeMenuImagesType = $phpTreeMenuImagesType;
}
setPHPTreeMenuSeparator ( phpTreeMenuSeparator)

The method to set the value of separator for the Tree Menu query string public

Devuelve:
void

Definición en la línea 81 del archivo phptreemenu.inc.php.

{
        $this->phpTreeMenuSeparator = $phpTreeMenuSeparator;
}
setPHPTreeMenuTheme ( phpTreeMenuTheme)

The method to set the prefix for filenames of images of a theme public

Devuelve:
void

Definición en la línea 111 del archivo phptreemenu.inc.php.

{
        $this->phpTreeMenuTheme = $phpTreeMenuTheme;
}

Documentación de los campos

$_phpTreeMenu

Definición en la línea 49 del archivo phptreemenu.inc.php.

$phpTreeMenuDefaultExpansion

Definición en la línea 31 del archivo phptreemenu.inc.php.

$phpTreeMenuImagesType

Definición en la línea 37 del archivo phptreemenu.inc.php.

$phpTreeMenuSeparator

Definición en la línea 25 del archivo phptreemenu.inc.php.

$phpTreeMenuTheme

Definición en la línea 43 del archivo phptreemenu.inc.php.


La documentación para esta clase fue generada a partir del siguiente fichero: