diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/comanche.php | 15 | ||||
-rw-r--r-- | include/menu.php | 3 |
2 files changed, 14 insertions, 4 deletions
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'] )); |