diff options
-rw-r--r-- | include/menu.php | 39 | ||||
-rw-r--r-- | mod/menu.php | 4 |
2 files changed, 43 insertions, 0 deletions
diff --git a/include/menu.php b/include/menu.php index 5c0811437..40ea2b0f4 100644 --- a/include/menu.php +++ b/include/menu.php @@ -24,6 +24,45 @@ function menu_fetch($name,$uid,$observer_xchan) { return null; } +function menu_element($menu) { + + $arr = array(); + $arr['type'] = 'menu'; + $arr['name'] = $menu['menu_name']; + $arr['desc'] = $menu['menu_desc']; + $arr['baseurl'] = z_root(); + if($menu['menu_flags']) { + $arr['flags'] = array(); + if($menu['menu_flags'] & MENU_BOOKMARK) + $arr['flags'][] = 'bookmark'; + if($menu['menu_flags'] & MENU_SYSTEM) + $arr['flags'][] = 'system'; + } + if($menu['items']) { + $arr['items'] = array(); + foreach($menu['items'] as $it) { + $entry = array(); + $entry['link'] = str_replace(z_root(),'[baseurl]',$it['mitem_link']); + $entry['desc'] = $it['mitem_desc']; + $entry['order'] = $it['mitem_order']; + if($it['mitem_flags']) { + $entry['flags'] = array(); + if($it['mitem_flags'] & MENU_ITEM_ZID) + $entry['flags'][] = 'zid'; + if($it['mitem_flags'] & MENU_ITEM_NEWWIN) + $entry['flags'][] = 'new-window'; + if($it['mitem_flags'] & MENU_ITEM_CHATROOM) + $entry['flags'][] = 'chatroom'; + } + $arr['items'][] = $entry; + } + } + + return $arr; +} + + + function menu_render($menu, $class='', $edit = false, $var = '') { if(! $menu) diff --git a/mod/menu.php b/mod/menu.php index 0dbbfde9c..7714b8021 100644 --- a/mod/menu.php +++ b/mod/menu.php @@ -78,6 +78,10 @@ function menu_content(&$a) { $x = menu_list($uid); if($x) { for($y = 0; $y < count($x); $y ++) { + $m = menu_fetch($x[$y]['menu_name'],$uid,get_observer_hash()); + if($m) + $x[$y]['element'] = '[element]' . base64url_encode(json_encode(menu_element($m))) . '[/element]'; + $x[$y]['bookmark'] = (($x[$y]['menu_flags'] & MENU_BOOKMARK) ? true : false); } } |