From 616338c17e9eabc6355e27694c9e49f1f4586055 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Sun, 10 May 2015 15:00:18 +0200 Subject: provide ability to create submenus --- include/menu.php | 20 +++++++++++++++++++- mod/mitem.php | 12 ++++++++++-- view/css/bootstrap-red.css | 5 +++++ view/css/widgets.css | 4 ---- view/tpl/menuedit.tpl | 1 + view/tpl/mitemedit.tpl | 5 +++++ view/tpl/photos_upload.tpl | 2 +- view/tpl/usermenu.tpl | 9 ++++++--- 8 files changed, 47 insertions(+), 11 deletions(-) diff --git a/include/menu.php b/include/menu.php index a2e91f7ed..84ea78f00 100644 --- a/include/menu.php +++ b/include/menu.php @@ -29,17 +29,33 @@ function menu_render($menu, $class='', $edit = false, $var = '') { if(! $menu) return ''; + $uid = local_channel(); + $menu_list = menu_list($uid); + + foreach($menu_list as $menus) { + if($menus['menu_name'] != $menu['menu']['menu_name']) + $menu_names[] = $menus['menu_name']; + } + for($x = 0; $x < count($menu['items']); $x ++) { + if(in_array($menu['items'][$x]['mitem_link'], $menu_names)) { + $m = menu_fetch($menu['items'][$x]['mitem_link'],local_channel(), get_observer_hash()); + $submenu = menu_render($m, 'dropdown-menu', $edit = false, $var = array('wrap' => 'none')); + $menu['items'][$x]['submenu'] = $submenu; + } + if($menu['items'][$x]['mitem_flags'] & MENU_ITEM_ZID) $menu['items'][$x]['mitem_link'] = zid($menu['items'][$x]['mitem_link']); + if($menu['items'][$x]['mitem_flags'] & MENU_ITEM_NEWWIN) $menu['items'][$x]['newwin'] = '1'; + $menu['items'][$x]['mitem_desc'] = bbcode($menu['items'][$x]['mitem_desc']); } $wrap = (($var['wrap'] === 'none') ? false : true); - return replace_macros(get_markup_template('usermenu.tpl'),array( + $ret = replace_macros(get_markup_template('usermenu.tpl'),array( '$menu' => $menu['menu'], '$class' => $class, '$edit' => (($edit) ? t("Edit") : ''), @@ -47,6 +63,8 @@ function menu_render($menu, $class='', $edit = false, $var = '') { '$items' => $menu['items'], '$wrap' => $wrap )); + + return $ret; } diff --git a/mod/mitem.php b/mod/mitem.php index 06c66a323..333568eec 100644 --- a/mod/mitem.php +++ b/mod/mitem.php @@ -124,6 +124,13 @@ function mitem_content(&$a) { $m = menu_fetch($a->data['menu']['menu_name'],$uid,$ob_hash); $a->data['menu_item'] = $m; + $menu_list = menu_list($uid); + + foreach($menu_list as $menus) { + if($menus['menu_name'] != $m['menu']['menu_name']) + $menu_names[] = $menus['menu_name']; + } + $perm_defaults = array( 'allow_cid' => $channel['channel_allow_cid'], 'allow_gid' => $channel['channel_allow_gid'], @@ -152,14 +159,15 @@ function mitem_content(&$a) { '$permdesc' => t("\x28click to open/close\x29"), '$aclselect' => populate_acl($perm_defaults,false), '$mitem_desc' => array('mitem_desc', t('Link Name'), '', 'Visible name of the link','*'), - '$mitem_link' => array('mitem_link', t('Link Target'), '', 'URL of the link', '*'), + '$mitem_link' => array('mitem_link', t('Link Target or Submenu'), '', 'Enter URL of the link or select a menu name to create a submenu', '*', 'list="menu-names"'), '$usezid' => array('usezid', t('Use RedMatrix magic-auth if available'), true, ''), '$newwin' => array('newwin', t('Open link in new window'), false,''), '$mitem_order' => array('mitem_order', t('Order in list'),'0',t('Higher numbers will sink to bottom of listing')), '$submit' => t('Submit and finish'), '$submit_more' => t('Submit and continue'), '$display' => $display, - '$lockstate' => $lockstate + '$lockstate' => $lockstate, + '$menu_names' => $menu_names )); $o .= replace_macros(get_markup_template('mitemlist.tpl'),array( diff --git a/view/css/bootstrap-red.css b/view/css/bootstrap-red.css index 1d3c329ec..c6d99e7ae 100644 --- a/view/css/bootstrap-red.css +++ b/view/css/bootstrap-red.css @@ -56,6 +56,11 @@ nav .navbar-toggle { /* nav overrides end */ + +aside .nav-pills > li > a { + padding: 6px 10px; +} + .dropdown-menu img { float: left; width: 32px; diff --git a/view/css/widgets.css b/view/css/widgets.css index 566dd2b8a..0a901b1f9 100644 --- a/view/css/widgets.css +++ b/view/css/widgets.css @@ -7,10 +7,6 @@ margin-top: 0px; } -.widget .nav-pills > li > a { - padding: 6px 10px; -} - .widget-input { width: 100%; border-top-right-radius: 0px; diff --git a/view/tpl/menuedit.tpl b/view/tpl/menuedit.tpl index b3704e86e..da3172434 100644 --- a/view/tpl/menuedit.tpl +++ b/view/tpl/menuedit.tpl @@ -19,6 +19,7 @@ {{/if}} {{include file="field_input.tpl" field=$menu_name}} {{include file="field_input.tpl" field=$menu_desc}} + {{include file="field_checkbox.tpl" field=$menu_bookmark}}