From 0bd9fe0b11013423a17ebaabb22482bee38d8f0f Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Tue, 21 Apr 2015 10:05:26 +0200 Subject: rework and hopefully improve webpage menu creation workflow --- mod/menu.php | 82 ++++++++++----------- mod/mitem.php | 145 ++++++++++++++++++++------------------ view/css/mod_menu.css | 14 +++- view/css/mod_mitem.css | 16 +++-- view/theme/redbasic/css/style.css | 6 +- view/tpl/field_input.tpl | 4 +- view/tpl/menuedit.tpl | 48 +++++++------ view/tpl/menulist.tpl | 42 +++++++---- view/tpl/mitemedit.tpl | 61 ++++++++-------- view/tpl/mitemlist.tpl | 38 ++++++---- view/tpl/usermenu.tpl | 2 +- 11 files changed, 258 insertions(+), 200 deletions(-) diff --git a/mod/menu.php b/mod/menu.php index 4153f1ac0..0dbbfde9c 100644 --- a/mod/menu.php +++ b/mod/menu.php @@ -37,7 +37,7 @@ function menu_post(&$a) { $_REQUEST['menu_id'] = intval(argv(1)); $r = menu_edit($_REQUEST); if($r) { - info( t('Menu updated.') . EOL); + //info( t('Menu updated.') . EOL); goaway(z_root() . '/mitem/' . $menu_id . (($a->is_sys) ? '?f=&sys=1' : '')); } else @@ -46,7 +46,7 @@ function menu_post(&$a) { else { $r = menu_create($_REQUEST); if($r) { - info( t('Menu created.') . EOL); + //info( t('Menu created.') . EOL); goaway(z_root() . '/mitem/' . $r . (($a->is_sys) ? '?f=&sys=1' : '')); } else @@ -70,8 +70,10 @@ function menu_content(&$a) { return ''; } - if(argc() == 1) { + + + // list menus $x = menu_list($uid); if($x) { @@ -80,14 +82,26 @@ function menu_content(&$a) { } } + $create = replace_macros(get_markup_template('menuedit.tpl'), array( + '$menu_name' => array('menu_name', t('Menu Name'), '', t('Unique name (not visible on webpage) - required'), '*'), + '$menu_desc' => array('menu_desc', t('Menu Title'), '', t('Visible on webpage - leave empty for no title'), ''), + '$menu_bookmark' => array('menu_bookmark', t('Allow Bookmarks'), 0 , t('Menu may be used to store saved bookmarks'), array(t('No'), t('Yes'))), + '$submit' => t('Submit and proceed'), + '$sys' => $a->is_sys, + '$display' => 'none' + )); + $o = replace_macros(get_markup_template('menulist.tpl'),array( - '$title' => t('Manage Menus'), + '$title' => t('Menus'), + '$create' => $create, '$menus' => $x, + '$nametitle' => t('Menu Name'), + '$desctitle' => t('Menu Title'), '$edit' => t('Edit'), '$drop' => t('Drop'), '$new' => t('New'), '$bmark' => t('Bookmarks allowed'), - '$hintnew' => t('Create a new menu'), + '$hintnew' => t('Create'), '$hintdrop' => t('Delete this menu'), '$hintcontent' => t('Edit menu contents'), '$hintedit' => t('Edit this menu'), @@ -98,50 +112,38 @@ function menu_content(&$a) { } - if(argc() > 1) { - if(argv(1) === 'new') { - $o = replace_macros(get_markup_template('menuedit.tpl'), array( - '$header' => t('New Menu'), - '$menu_name' => array('menu_name', t('Menu name'), '', t('Must be unique, only seen by you'), '*'), - '$menu_desc' => array('menu_desc', t('Menu title'), '', t('Menu title as seen by others'), ''), - '$menu_bookmark' => array('menu_bookmark', t('Allow bookmarks'), 0 , t('Menu may be used to store saved bookmarks'), ''), - '$submit' => t('Create'), - '$sys' => $a->is_sys - )); - - return $o; - } + if(intval(argv(1))) { - elseif(intval(argv(1))) { - $m = menu_fetch_id(intval(argv(1)),$uid); - if(! $m) { - notice( t('Menu not found.') . EOL); - return ''; - } if(argc() == 3 && argv(2) == 'drop') { $r = menu_delete_id(intval(argv(1)),$uid); - if($r) - info( t('Menu deleted.') . EOL); - else + if(!$r) notice( t('Menu could not be deleted.'). EOL); goaway(z_root() . '/menu' . (($a->is_sys) ? '?f=&sys=1' : '')); } - else { - $o = replace_macros(get_markup_template('menuedit.tpl'), array( - '$header' => t('Edit Menu'), - '$menu_id' => intval(argv(1)), - '$hintedit' => t('Add or remove entries to this menu'), - '$editcontents' => t('Edit menu contents'), - '$menu_name' => array('menu_name', t('Menu name'), $m['menu_name'], t('Must be unique, only seen by you'), '*'), - '$menu_desc' => array('menu_desc', t('Menu title'), $m['menu_desc'], t('Menu title as seen by others'), ''), - '$menu_bookmark' => array('menu_bookmark', t('Allow bookmarks'), (($m['menu_flags'] & MENU_BOOKMARK) ? 1 : 0), t('Menu may be used to store saved bookmarks'), ''), - '$menu_system' => (($m['menu_flags'] & MENU_SYSTEM) ? 1 : 0), - '$submit' => t('Modify') - )); - return $o; + + $m = menu_fetch_id(intval(argv(1)),$uid); + + if(! $m) { + notice( t('Menu not found.') . EOL); + return ''; } + + $o = replace_macros(get_markup_template('menuedit.tpl'), array( + '$header' => t('Edit Menu'), + '$menu_id' => intval(argv(1)), + '$hintedit' => t('Add or remove entries to this menu'), + '$editcontents' => t('Edit menu contents'), + '$menu_name' => array('menu_name', t('Menu name'), $m['menu_name'], t('Must be unique, only seen by you'), '*'), + '$menu_desc' => array('menu_desc', t('Menu title'), $m['menu_desc'], t('Menu title as seen by others'), ''), + '$menu_bookmark' => array('menu_bookmark', t('Allow bookmarks'), (($m['menu_flags'] & MENU_BOOKMARK) ? 1 : 0), t('Menu may be used to store saved bookmarks'), ''), + '$menu_system' => (($m['menu_flags'] & MENU_SYSTEM) ? 1 : 0), + '$submit' => t('Modify') + )); + + return $o; + } else { notice( t('Not found.') . EOL); diff --git a/mod/mitem.php b/mod/mitem.php index b561ec7d6..cce5bcbe3 100644 --- a/mod/mitem.php +++ b/mod/mitem.php @@ -41,14 +41,17 @@ function mitem_post(&$a) { return; } - - if(! $a->data['menu']) return; $channel = $a->get_channel(); + if(!$_REQUEST['mitem_desc'] || !$_REQUEST['mitem_link']) { + notice( t('Unable to create element.') . EOL); + return; + } + $_REQUEST['mitem_channel_id'] = $uid; $_REQUEST['menu_id'] = $a->data['menu']['menu_id']; @@ -64,7 +67,7 @@ function mitem_post(&$a) { $_REQUEST['mitem_id'] = $mitem_id; $r = menu_edit_item($_REQUEST['menu_id'],$uid,$_REQUEST); if($r) { - info( t('Menu element updated.') . EOL); + //info( t('Menu element updated.') . EOL); goaway(z_root() . '/mitem/' . $_REQUEST['menu_id'] . (($a->is_sys) ? '?f=&sys=1' : '')); } else @@ -74,8 +77,13 @@ function mitem_post(&$a) { else { $r = menu_add_item($_REQUEST['menu_id'],$uid,$_REQUEST); if($r) { - info( t('Menu element added.') . EOL); - goaway(z_root() . '/mitem/' . $_REQUEST['menu_id'] . (($a->is_sys) ? '?f=&sys=1' : '')); + //info( t('Menu element added.') . EOL); + if($_REQUEST['submit']) { + goaway(z_root() . '/menu' . (($a->is_sys) ? '?f=&sys=1' : '')); + } + if($_REQUEST['submit-more']) { + goaway(z_root() . '/mitem/' . $_REQUEST['menu_id'] . '?f=&display=block' . (($a->is_sys) ? '&sys=1' : '') ); + } } else notice( t('Unable to add menu element.') . EOL); @@ -84,6 +92,7 @@ function mitem_post(&$a) { + } @@ -115,28 +124,58 @@ function mitem_content(&$a) { $m = menu_fetch($a->data['menu']['menu_name'],$uid,$ob_hash); $a->data['menu_item'] = $m; - if(argc() == 2) { $r = q("select * from menu_item where mitem_menu_id = %d and mitem_channel_id = %d order by mitem_order asc, mitem_desc asc", intval($a->data['menu']['menu_id']), intval($uid) ); + $perm_defaults = array( + 'allow_cid' => $channel['channel_allow_cid'], + 'allow_gid' => $channel['channel_allow_gid'], + 'deny_cid' => $channel['channel_deny_cid'], + 'deny_gid' => $channel['channel_deny_gid'] + ); + + if($_GET['display']) { + $display = $_GET['display']; + } + else { + $display = (($r) ? 'none' : 'block'); + } + + $create = replace_macros(get_markup_template('mitemedit.tpl'), array( + '$menu_id' => $a->data['menu']['menu_id'], + '$permissions' => t('Menu Item Permissions'), + '$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', '*'), + '$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 + )); $o .= replace_macros(get_markup_template('mitemlist.tpl'),array( - '$title' => t('Manage Menu Elements'), - '$menuname' => $a->data['menu']['menu_name'], - '$menudesc' => $a->data['menu']['menu_desc'], - '$edmenu' => t('Edit menu'), - '$menu_id' => $a->data['menu']['menu_id'], - '$mlist' => $r, - '$edit' => t('Edit element'), - '$drop' => t('Drop element'), - '$new' => t('New element'), - '$hintmenu' => t('Edit this menu container'), - '$hintnew' => t('Add menu element'), - '$hintdrop' => t('Delete this menu item'), - '$hintedit' => t('Edit this menu item') + '$title' => t('Menu:'), + '$create' => $create, + '$nametitle' => t('Link Name'), + '$targettitle' => t('Link Target'), + '$menuname' => $a->data['menu']['menu_name'], + '$menudesc' => $a->data['menu']['menu_desc'], + '$edmenu' => t('Edit menu'), + '$menu_id' => $a->data['menu']['menu_id'], + '$mlist' => $r, + '$edit' => t('Edit element'), + '$drop' => t('Drop element'), + '$new' => t('New element'), + '$hintmenu' => t('Edit this menu container'), + '$hintnew' => t('Add menu element'), + '$hintdrop' => t('Delete this menu item'), + '$hintedit' => t('Edit this menu item') )); return $o; @@ -145,38 +184,13 @@ function mitem_content(&$a) { if(argc() > 2) { - if(argv(2) === 'new') { + if(intval(argv(2))) { - $perm_defaults = array( - 'allow_cid' => $channel['channel_allow_cid'], - 'allow_gid' => $channel['channel_allow_gid'], - 'deny_cid' => $channel['channel_deny_cid'], - 'deny_gid' => $channel['channel_deny_gid'] - ); - - $o = replace_macros(get_markup_template('mitemedit.tpl'), array( - '$header' => t('New Menu Element'), - '$menu_id' => $a->data['menu']['menu_id'], - '$permissions' => t('Menu Item Permissions'), - '$permdesc' => t("\x28click to open/close\x29"), - '$aclselect' => populate_acl($perm_defaults,false), - '$mitem_desc' => array('mitem_desc', t('Link text'), '', '','*'), - '$mitem_link' => array('mitem_link', t('URL of link'), '', '', '*'), - '$usezid' => array('usezid', t('Use RedMatrix magic-auth if available'), true, ''), - '$newwin' => array('newwin', t('Open link in new window'), false,''), -// permissions go here - '$mitem_order' => array('mitem_order', t('Order in list'),'0',t('Higher numbers will sink to bottom of listing')), - '$submit' => t('Create') - )); - return $o; - } - - - elseif(intval(argv(2))) { $m = q("select * from menu_item where mitem_id = %d and mitem_channel_id = %d limit 1", intval(argv(2)), intval($uid) ); + if(! $m) { notice( t('Menu item not found.') . EOL); goaway(z_root() . '/menu'. (($a->is_sys) ? '?f=&sys=1' : '')); @@ -193,27 +207,24 @@ function mitem_content(&$a) { goaway(z_root() . '/mitem/' . $mitem['mitem_menu_id'] . (($a->is_sys) ? '?f=&sys=1' : '')); } - else { - - // edit menu item - - $o = replace_macros(get_markup_template('mitemedit.tpl'), array( - '$header' => t('Edit Menu Element'), - '$menu_id' => $a->data['menu']['menu_id'], - '$permissions' => t('Menu Item Permissions'), - '$permdesc' => t("\x28click to open/close\x29"), - '$aclselect' => populate_acl($mitem,false), - '$mitem_id' => intval(argv(2)), - '$mitem_desc' => array('mitem_desc', t('Link text'), $mitem['mitem_desc'], '','*'), - '$mitem_link' => array('mitem_link', t('URL of link'), $mitem['mitem_link'], '', '*'), - '$usezid' => array('usezid', t('Use RedMatrix magic-auth if available'), (($mitem['mitem_flags'] & MENU_ITEM_ZID) ? 1 : 0), ''), - '$newwin' => array('newwin', t('Open link in new window'), (($mitem['mitem_flags'] & MENU_ITEM_NEWWIN) ? 1 : 0),''), -// permissions go here - '$mitem_order' => array('mitem_order', t('Order in list'),$mitem['mitem_order'],t('Higher numbers will sink to bottom of listing')), - '$submit' => t('Modify') - )); - return $o; - } + + // edit menu item + $o = replace_macros(get_markup_template('mitemedit.tpl'), array( + '$header' => t('Edit Menu Element'), + '$menu_id' => $a->data['menu']['menu_id'], + '$permissions' => t('Menu Item Permissions'), + '$permdesc' => t("\x28click to open/close\x29"), + '$aclselect' => populate_acl($mitem,false), + '$mitem_id' => intval(argv(2)), + '$mitem_desc' => array('mitem_desc', t('Link text'), $mitem['mitem_desc'], '','*'), + '$mitem_link' => array('mitem_link', t('URL of link'), $mitem['mitem_link'], '', '*'), + '$usezid' => array('usezid', t('Use RedMatrix magic-auth if available'), (($mitem['mitem_flags'] & MENU_ITEM_ZID) ? 1 : 0), ''), + '$newwin' => array('newwin', t('Open link in new window'), (($mitem['mitem_flags'] & MENU_ITEM_NEWWIN) ? 1 : 0),''), + '$mitem_order' => array('mitem_order', t('Order in list'),$mitem['mitem_order'],t('Higher numbers will sink to bottom of listing')), + '$submit' => t('Submit') + )); + + return $o; } } } diff --git a/view/css/mod_menu.css b/view/css/mod_menu.css index 6123ea56b..930bd834d 100644 --- a/view/css/mod_menu.css +++ b/view/css/mod_menu.css @@ -1,3 +1,11 @@ -#menulist > li { - margin-top: 15px; -} \ No newline at end of file +#menu-list-table { + width: 100%; +} + +#menu-list-table th:nth-child(2){ + white-space: nowrap; +} + +.menu-list-tool { + padding: 7px 10px; +} diff --git a/view/css/mod_mitem.css b/view/css/mod_mitem.css index 3a33ae955..0718096e9 100644 --- a/view/css/mod_mitem.css +++ b/view/css/mod_mitem.css @@ -1,11 +1,13 @@ -.menu-item-list { - list-style-type: none; +#mitem-list-table { + width: 100%; } -.mitem-edit { - margin-right: 15px; +#mitem-list-table th:nth-child(1), +#mitem-list-table td:nth-child(1){ + padding: 7px 3px 7px 10px; + white-space: nowrap; } -.menu-item-list li { - margin-bottom: 15px; -} \ No newline at end of file +.mitem-list-tool { + padding: 7px 10px; +} diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index 8c9eddd3b..ece73d213 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -1102,8 +1102,6 @@ nav .acpopup { .required { color: #ff0000; - font-size: 1.8rem; - margin-left: 5px; } @@ -1934,7 +1932,9 @@ nav .dropdown-menu { background-color: $item_colour; } -[id^="webpage-list-item-"]:hover td { +[id^="webpage-list-item-"]:hover td, +[id^="menu-list-item-"]:hover td, +[id^="mitem-list-item-"]:hover td { background-color: $item_colour; } diff --git a/view/tpl/field_input.tpl b/view/tpl/field_input.tpl index 4dfa83699..128bbfbe1 100755 --- a/view/tpl/field_input.tpl +++ b/view/tpl/field_input.tpl @@ -1,6 +1,6 @@
- - {{if $field.4}} {{$field.4}} {{/if}} + + {{$field.3}}
diff --git a/view/tpl/menuedit.tpl b/view/tpl/menuedit.tpl index 9ea184269..b3704e86e 100644 --- a/view/tpl/menuedit.tpl +++ b/view/tpl/menuedit.tpl @@ -1,24 +1,28 @@ - -

{{$header}}

- -{{if $menu_id}} -{{$editcontents}} -{{/if}} - -