Ik probeer breadcrumbs te maken van uit een hiƫrarchisch menu.
Maar ik weet niet hoe ik moet beginnen zijn er mensen hier die me een klein opzetje kunnen geven van uit deze class van het menu.
<?php
class J_Menu {
public function __construct($dB, $Page_name, $Style_1 = "", $Style_2 = "", $Rights = "") {
$this->db = $dB;
$this->page_name = $Page_name;
$this->url = new j_Rewrite();
}
function getMenus($menu_id) {
$html = "";
$aclData = new J_Acl($this->db);
$menus = $this->db->selectData('cms_menus', 'menu_id="' . $menu_id . '" AND menu_tld="' . $_SESSION['languages_id'] . '"');
if ($menus[0]->menu_published == 1) {
if ($menus[0]->menu_permissions == 'public') {
$Permission = true;
} else {
$Permission = $aclData->hasPermission($menus[0]->menu_permissions);
}
if (($Permission == true)) {
if ($this->page_name == $menus[0]->menu_view_on OR $menus[0]->menu_view_on == 'all') {
$html .= $this->getMenuItems($menu_id);
}
}
} else {
$html .= "";
}
return $html;
}
function dbitems($menu_id) {
$rows = array();
foreach ($this->db->selectData('cms_menu_items', 'menu_items_menu_id="' . $menu_id . '" AND menu_items_tld="' . $_SESSION['languages_id'] . '"', '*', 'sort ASC') AS $menu_items) {
$rows[] = array('menu_items_id' => $menu_items->menu_items_id, 'menu_items_title' => $menu_items->menu_items_title, 'menu_items_link' => $menu_items->menu_items_link, 'menu_items_parent_id' => $menu_items->menu_items_parent_id, 'menu_items_permissions' => $menu_items->menu_items_permissions, 'menu_items_published' => $menu_items->menu_items_published);
}
return $rows;
}
function getMenuItems($menu_id) {
foreach ($this->dbitems($menu_id) as $item)
$children[$item['menu_items_parent_id']][] = $item;
$html = '';
$root = 0;
$loop = !empty($children[$root]);
$parent = $root;
$stack = array();
$aclData = new J_Acl($this->db);
$html .= '<ul>';
while ($loop && (($option = each($children[$parent])) || ($parent > $root))) {
if (!$option) {
$parent = array_pop($stack);
$html .= '</ul>' . "\n" . '</li>' . "\n"; //closing a submenu
$counter = 0;
} else if (!empty($children[$option['value']['menu_items_id']])) {
if ($option['value']['menu_items_published'] == 1) {
if ($option['value']['menu_items_permissions'] == 'public') {
$Permission = true;
} else {
$Permission = $aclData->hasPermission($option['value']['menu_items_permissions']);
}
$html .= '<li>';
if ($option['value']['menu_items_link'] != NULL) {
$html .="<a ";
if ($option['value']['menu_items_link'] == $this->page_name) {
$html .= 'class="active"';
}
// $active = ($option['value']['menu_item_link'] == $this->options['current_path']) ? true : false;
$html .= 'href="' . $option['value']['menu_items_link'] . '">' . $option['value']['menu_items_title'] . "</a>\n";
} else {
$html .= $option['value']['menu_items_title'];
}
$html .= '<ul class="submenu">' . "\n";
array_push($stack, $option['value']['menu_items_parent_id']);
$parent = $option['value']['menu_items_id'];
}
} else {
if ($option['value']['menu_items_published'] == 1) {
if ($option['value']['menu_items_permissions'] == 'public') {
$Permission = true;
} else {
$Permission = $aclData->hasPermission($option['value']['menu_items_permissions']);
}
if (($Permission == true)) {
$html .= '<li>';
if ($option['value']['menu_items_link'] != NULL) {
$html .="<a ";
if ($option['value']['menu_items_link'] == $this->page_name) {
$html .= 'class="active"';
}
// $active = ($option['value']['menu_item_link'] == $this->options['current_path']) ? true : false;
$html .= ' href="' . $option['value']['menu_items_link'] . '">' . $option['value']['menu_items_title'] . '</a>';
} else {
$html .= $option['value']['menu_items_title'];
}
$html .='</li>' . "\n";
}
}
}
}
$html .= '</ul>';
return $html;
}
}
?>