From 364fc9f1638e67dad2c289b4d365753a5d06ac05 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 25 Feb 2014 20:58:20 -0800 Subject: comanche: provide an option to add a menu class for different theming choices on some menus (e.g. horizontal, tabbed, etc.) --- include/comanche.php | 15 ++++++++++++--- include/menu.php | 3 ++- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/comanche.php b/include/comanche.php index 7d7e0e70c..f02190ee5 100644 --- a/include/comanche.php +++ b/include/comanche.php @@ -79,10 +79,10 @@ function comanche_parser(&$a,$s) { } -function comanche_menu($name) { +function comanche_menu($name,$class = '') { $a = get_app(); $m = menu_fetch($name,$a->profile['profile_uid'],get_observer_hash()); - return menu_render($m); + return menu_render($m,$class); } function comanche_replace_region($match) { @@ -152,13 +152,22 @@ function comanche_widget($name,$text) { function comanche_region(&$a,$s) { - $cnt = preg_match_all("/\[menu\](.*?)\[\/menu\]/ism", $s, $matches, PREG_SET_ORDER); if($cnt) { foreach($matches as $mtch) { $s = str_replace($mtch[0],comanche_menu(trim($mtch[1])),$s); } } + + // menu class e.g. [menu=horizontal]my_menu[/menu] or [menu=tabbed]my_menu[/menu] + // allows different menu renderings to be applied + + $cnt = preg_match_all("/\[menu=(.*?)\](.*?)\[\/menu\]/ism", $s, $matches, PREG_SET_ORDER); + if($cnt) { + foreach($matches as $mtch) { + $s = str_replace($mtch[0],comanche_menu(trim($mtch[2]),$match[1]),$s); + } + } $cnt = preg_match_all("/\[block\](.*?)\[\/block\]/ism", $s, $matches, PREG_SET_ORDER); if($cnt) { foreach($matches as $mtch) { diff --git a/include/menu.php b/include/menu.php index 2f1719d0b..4b0a11f10 100644 --- a/include/menu.php +++ b/include/menu.php @@ -24,7 +24,7 @@ function menu_fetch($name,$uid,$observer_xchan) { return null; } -function menu_render($menu, $edit = false) { +function menu_render($menu, $class='', $edit = false) { if(! $menu) return ''; @@ -38,6 +38,7 @@ function menu_render($menu, $edit = false) { return replace_macros(get_markup_template('usermenu.tpl'),array( '$menu' => $menu['menu'], + '$class' => $class, '$edit' => (($edit) ? t("Edit") : ''), '$items' => $menu['items'] )); -- cgit v1.2.3