[b]Voorbeeld MySQL code[/b]:
CREATE TABLE menu (
id INT(11) NOT NULL auto_increment,
naam VARCHAR(255) NOT NULL,
pagina VARCHAR(255) NOT NULL,
view TINYINT(1) NOT NULL,
level VARCHAR(255) NOT NULL,
PRIMARY KEY(id)
)TYPE=MyISAM;

INSERT INTO menu (naam, pagina, view, level) VALUES ('Begin', '?pagina=begin', 0, 0);
INSERT INTO menu (naam, pagina, view, level) VALUES ('Aanmelden', '?pagina=leden/aanmelden', 2, 0);
INSERT INTO menu (naam, pagina, view, level) VALUES ('Inloggen', '?pagina=leden/inloggen', 2, 0);
INSERT INTO menu (naam, pagina, view, level) VALUES ('Uitloggen', '?pagina=leden/uitloggen', 1, 0);
INSERT INTO menu (naam, pagina, view, level) VALUES ('Admin menu', '?pagina=admin/index', 3, 'crew');

[b]Voorbeeld menu code[/b]:
<?PHP
$iLevel = 0;
include "function.menu.php";
$sQuery = "SELECT * FROM menu";
if(!$rResult = MySQL_Query($sQuery))
{
	echo "MySQL Error: ".MySQL_Error()."<br />";
	echo "MySQL Errno: ".MySQL_Errno()."<br />";
	echo "Bestand: ".__FILE__."<br />";
	echo "Regel nr: ".__LINE__;
} else
{
	while($aFetch = MySQL_Fetch_Assoc($rResult))
	{
		if(menuToegang($aFetch['level'], $aFetch['view'], $iLevel))
		{
			echo '<a href="'.$aFetch['pagina'].'">'.$aFetch['naam'].'</a><br />';
		}
	}
}
?>

[b]function.menu.php[/b]:
<?PHP
/**
 * @date   07-05-2006 20:00
 * @param    integer   iLevel
 * @param    integer   iView
 * @param    integer   iUserLevel
 * @return   boolean
 * @author   Rensjuh <rensjuh@gmail.com>
**/
function menuToegang($iLevel, $iView, $iUserLevel="")
{
  $bView = FALSE;
  if($iView == 0)
  {
    $bView = TRUE;
  } else if($iView == 1)
  {
    $bView = (IsSet($_SESSION['id']) && Is_Numeric($_SESSION['id']));
  } else if($iView == 2)
  {
    $bView = (!IsSet($_SESSION['id']) || !Is_Numeric($_SESSION['id']));
  } else if($iView == 3)
  {
    if(ereg(",", $iLevel))
    {
      $aLevel = explode(",", $iLevel);
      $bView = ((In_Array($iUserLevel, $aLevel)) || ($iLevel == "crew" && $iUserLevel != 0));
    } else
    {
      $bView = (($iUserLevel == $iLevel) || ($iLevel == "crew" && $iUserLevel != 0));
    }
  } else
  {
    $bView = FALSE;
  }
  return $bView;
}
?>

[b]Bitwise versie (FangorN zijn idee)[/b]:
<?PHP
/**
 * @date   07-05-2006 20:00
 * @param    integer   iLevel
 * @param    integer   iView
 * @param    integer   iUserLevel
 * @return   boolean
 * @author   Rensjuh <rensjuh@gmail.com>
**/
function menuToegang($iLevel, $iView, $iUserLevel="")
{
  $bView = FALSE;
  if($iView == 0)
  {
    $bView = TRUE;
  } else if($iView == 1)
  {
    $bView = (IsSet($_SESSION['id']) && Is_Numeric($_SESSION['id']));
  } else if($iView == 2)
  {
    $bView = (!IsSet($_SESSION['id']) || !Is_Numeric($_SESSION['id']));
  } else if($iView == 3)
  {
    if($iLevel == "crew" && $iUserLevel != 0)
    {
      $bView = TRUE;
    } else
    {
      $bView = ($iLevel & $iUserLevel);
    }
  } else
  {
    $bView = FALSE;
  }
  return $bView;
}
?>