Hola Insignia, si entiendo lo que me dices, pero bueno no me funciona aun asi, lo que pasa esque yo baje un menu pero tu defines los padres e hijos, entonces ese lo estoy tratando de hacer con base de datos entonces te paso el original para que tengas una vision mas clara, y muchisimas gracias por tu ayuda..
<?php
/*
|---------------------------------------------------------------
| CREDITS
|---------------------------------------------------------------
|
| http://www.cssplay.co.uk/ for the best free css menus
| http://www.famfamfam.com/lab/icons/silk/ for the icons
|
*/
error_reporting ( E_ALL );
$menu = array
(
1 => array
(
'text' => 'Articles',
'class' => 'articles',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 0
),
2 => array
(
'text' => 'Users',
'class' => 'users',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 0
),
3 => array
(
'text' => 'Groups',
'class' => 'groups',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 0
),
4 => array
(
'text' => 'Settings',
'class' => 'settings',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 0
),
5 => array
(
'text' => 'Add new',
'class' => 'add_article',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 1
),
6 => array
(
'text' => 'Categories',
'class' => 'categories',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 1
),
7 => array
(
'text' => 'Add new',
'class' => 'add_user',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 2
),
8 => array
(
'text' => 'Delete',
'class' => 'delete',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 1
),
9 => array
(
'text' => 'Show',
'class' => 'show',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 2
),
10 => array
(
'text' => 'Last created',
'class' => 'last',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 9
),
11 => array
(
'text' => 'First created',
'class' => 'first',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 9
),
12 => array
(
'text' => 'All',
'class' => 'all',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 9
),
13 => array
(
'text' => 'None',
'class' => 'none',
'link' => '#',
'show_condition'=> TRUE,
'parent' => 9
)
);
function build_menu ( $menu )
{
$out = '<div class="container4">' . "
";
$out .= ' <div class="menu4">' . "
";
$out .= "
".'<ul>' . "
";
for ( $i = 1; $i <= count ( $menu ); $i++ )
{
if ( is_array ( $menu [ $i ] ) ) {//must be by construction but let's keep the errors home
if ( $menu [ $i ] [ 'show_condition' ] && $menu [ $i ] [ 'parent' ] == 0 ) {//are we allowed to see this menu?
$out .= '<li class="' . $menu [ $i ] [ 'class' ] . '"><a href="' . $menu [ $i ] [ 'link' ] . '">';
$out .= $menu [ $i ] [ 'text' ];
$out .= '</a>';
$out .= get_childs ( $menu, $i );
$out .= '</li>' . "
";
}
}
else {
die ( sprintf ( 'menu nr %s must be an array', $i ) );
}
}
$out .= '</ul>'."
";
$out .= "
" . '</div>';
return $out . "
" . '</div>';
}
function get_childs ( $menu, $el_id )
{
$has_subcats = FALSE;
$out = '';
$out .= "
".' <ul>' . "
";
for ( $i = 1; $i <= count ( $menu ); $i++ )
{
if ( $menu [ $i ] [ 'show_condition' ] && $menu [ $i ] [ 'parent' ] == $el_id ) {//are we allowed to see this menu?
$has_subcats = TRUE;
$add_class = ( get_childs ( $menu, $i ) != FALSE ) ? ' subsubl' : '';
$out .= ' <li class="' . $menu [ $i ] [ 'class' ] . $add_class . '"><a href="' . $menu [ $i ] [ 'link' ] . '">';
$out .= $menu [ $i ] [ 'text' ];
$out .= '</a>';
$out .= get_childs ( $menu, $i );
$out .= '</li>' . "
";
}
}
$out .= ' </ul>'."
";
return ( $has_subcats ) ? $out : FALSE;
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dynamic PHP/CSS menu by roScripts</title>
<link href="css/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div style="width:700px;margin:100px auto">
<h2>Dynamic PHP/CSS menu by <a href="http://www.roscripts.com" title="programming articles and tutorials" target="_blank">roScripts</a></h2>
<?= build_menu ( $menu ) ?>
</div>
</body>
</html>