From 946fcb4e9c247943710c79fbe22566b4d9dffcef Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 11 Aug 2013 00:44:53 +0400 Subject: [PATCH 1/3] Menu: add individual css class for menu item --- plugins/box/menu/menu.admin.php | 8 ++++++++ plugins/box/menu/menu.plugin.php | 4 ++-- plugins/box/menu/views/backend/add.view.php | 4 ++++ plugins/box/menu/views/backend/edit.view.php | 4 ++++ plugins/box/menu/views/frontend/index.view.php | 9 ++++++++- storage/database/menu.table.xml | 4 ++-- 6 files changed, 28 insertions(+), 5 deletions(-) diff --git a/plugins/box/menu/menu.admin.php b/plugins/box/menu/menu.admin.php index ce6076db..7d62fde1 100644 --- a/plugins/box/menu/menu.admin.php +++ b/plugins/box/menu/menu.admin.php @@ -53,6 +53,7 @@ public static function main() $menu_item_name = $item['name']; $menu_item_link = $item['link']; $menu_item_category = $item['category']; + $menu_item_class = $item['class']; $menu_item_target = $item['target']; $menu_item_order = $item['order']; @@ -68,6 +69,7 @@ public static function main() if (Request::post('menu_item_name')) $menu_item_name = Request::post('menu_item_name'); else $menu_item_name = $item['name']; if (Request::post('menu_item_link')) $menu_item_link = Request::post('menu_item_link'); else $menu_item_link = $item['link']; if (Request::post('menu_item_category')) $menu_item_category = Request::post('menu_item_category'); else $menu_item_category = $item['category']; + if (Request::post('menu_item_class')) $menu_item_class = Request::post('menu_item_class'); else $menu_item_class = $item['class']; if (Request::post('menu_item_target')) $menu_item_target = Request::post('menu_item_target'); else $menu_item_target = $item['target']; if (Request::post('menu_item_order')) $menu_item_order = Request::post('menu_item_order'); else $menu_item_order = $item['order']; @@ -80,6 +82,7 @@ public static function main() array('name' => Request::post('menu_item_name'), 'link' => Request::post('menu_item_link'), 'category' => Security::safeName(Request::post('menu_item_category'), '-', true), + 'class' => Request::post('menu_item_class'), 'target' => Request::post('menu_item_target'), 'order' => Request::post('menu_item_order'))); @@ -95,6 +98,7 @@ public static function main() ->assign('menu_item_name', $menu_item_name) ->assign('menu_item_link', $menu_item_link) ->assign('menu_item_category', $menu_item_category) + ->assign('menu_item_class', $menu_item_class) ->assign('menu_item_target', $menu_item_target) ->assign('menu_item_order', $menu_item_order) ->assign('menu_item_target_array', $menu_item_target_array) @@ -114,6 +118,7 @@ public static function main() $menu_item_name = ''; $menu_item_link = ''; $menu_item_category = ''; + $menu_item_class = ''; $menu_item_target = ''; $menu_item_order = ''; $errors = array(); @@ -131,6 +136,7 @@ public static function main() if (Request::post('menu_item_name')) $menu_item_name = Request::post('menu_item_name'); else $menu_item_name = ''; if (Request::post('menu_item_link')) $menu_item_link = Request::post('menu_item_link'); else $menu_item_link = ''; if (Request::post('menu_item_category')) $menu_item_category = Request::post('menu_item_category'); else $menu_item_category = $current_category; + if (Request::post('menu_item_class')) $menu_item_class = Request::post('menu_item_class'); else $menu_item_class = ''; if (Request::post('menu_item_target')) $menu_item_target = Request::post('menu_item_target'); else $menu_item_target = ''; if (Request::post('menu_item_order')) $menu_item_order = Request::post('menu_item_order'); else $menu_item_order = ''; @@ -142,6 +148,7 @@ public static function main() MenuAdmin::$menu->insert(array('name' => Request::post('menu_item_name'), 'link' => Request::post('menu_item_link'), 'category' => Security::safeName(Request::post('menu_item_category'), '-', true), + 'class' => Request::post('menu_item_class'), 'target' => Request::post('menu_item_target'), 'order' => Request::post('menu_item_order'))); @@ -156,6 +163,7 @@ public static function main() ->assign('menu_item_name', $menu_item_name) ->assign('menu_item_link', $menu_item_link) ->assign('menu_item_category', $menu_item_category) + ->assign('menu_item_class', $menu_item_class) ->assign('menu_item_target', $menu_item_target) ->assign('menu_item_order', $menu_item_order) ->assign('menu_item_target_array', $menu_item_target_array) diff --git a/plugins/box/menu/menu.plugin.php b/plugins/box/menu/menu.plugin.php index 3152fd77..ab1c4959 100644 --- a/plugins/box/menu/menu.plugin.php +++ b/plugins/box/menu/menu.plugin.php @@ -48,10 +48,10 @@ public static function get($category = '') // Display view View::factory('box/menu/views/frontend/index') - ->assign('items', $menu->select('[category="'.$category.'"]', 'all', null, array('id', 'name', 'link', 'target', 'order', 'category'), 'order', 'ASC')) + ->assign('items', $menu->select('[category="'.$category.'"]', 'all', null, array('id', 'name', 'link', 'target', 'class', 'order', 'category'), 'order', 'ASC')) ->assign('uri', Uri::segments()) ->assign('defpage', Option::get('defaultpage')) ->display(); - } + } diff --git a/plugins/box/menu/views/backend/add.view.php b/plugins/box/menu/views/backend/add.view.php index 787512a4..2de72104 100644 --- a/plugins/box/menu/views/backend/add.view.php +++ b/plugins/box/menu/views/backend/add.view.php @@ -26,6 +26,10 @@ Form::label('menu_item_category', __('Item category', 'menu')). Form::input('menu_item_category', $menu_item_category, array('class' => 'input-xlarge')) ); + echo ( + Form::label('menu_item_class', __('CSS class', 'menu')). + Form::input('menu_item_class', $menu_item_class, array('class' => 'input-xlarge')) + ); ?> 'input-xlarge')) ); + echo ( + Form::label('menu_item_class', __('CSS class', 'menu')). + Form::input('menu_item_class', $menu_item_class, array('class' => 'input-xlarge')) + ); ?> '.''.$item['name'].''.''; + if($item['class'] !== '') { + if($li_active !== '') { + $li_active = ' class="active '.$item['class'].'"'; + } else { + $li_active = ' class="'.$item['class'].'"'; + } + } + echo ''.''.$item['name'].''.''; $anchor_active = ''; $li_active = ''; $target = ''; diff --git a/storage/database/menu.table.xml b/storage/database/menu.table.xml index 9d539709..23f0038a 100644 --- a/storage/database/menu.table.xml +++ b/storage/database/menu.table.xml @@ -1,2 +1,2 @@ - -3130152dec4dHomehome12b8f8bb4dafUsersusers2 + +3130152dec4dHomehome12b8f8bb4dafUsersusers2 \ No newline at end of file From 5486898820f48d459be53f125897e69b566eaac5 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 11 Aug 2013 01:02:09 +0400 Subject: [PATCH 2/3] Menu: add custom text after item menu --- plugins/box/menu/menu.plugin.php | 22 +++++++++++++++---- .../box/menu/views/frontend/index.view.php | 8 ++++++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/plugins/box/menu/menu.plugin.php b/plugins/box/menu/menu.plugin.php index ab1c4959..df6a39ea 100644 --- a/plugins/box/menu/menu.plugin.php +++ b/plugins/box/menu/menu.plugin.php @@ -39,19 +39,33 @@ class Menu /** * Get menu * - * @param string $category Category name + * @param string $category Category name + * @param array $after_text Text after item menu */ - public static function get($category = '') + public static function get($category = '', $after_text = '') + { + echo Menu::getAsString($category, $after_text); + } + + /** + * Get menu as string + * + * @param string $category Category name + * @param array $after_text Text after item menu + * @return string + */ + public static function getAsString($category = '', $after_text = '') { // Get menu table $menu = new Table('menu'); // Display view - View::factory('box/menu/views/frontend/index') + return View::factory('box/menu/views/frontend/index') ->assign('items', $menu->select('[category="'.$category.'"]', 'all', null, array('id', 'name', 'link', 'target', 'class', 'order', 'category'), 'order', 'ASC')) ->assign('uri', Uri::segments()) ->assign('defpage', Option::get('defaultpage')) - ->display(); + ->assign('after_text_array', $after_text) + ->render(); } } diff --git a/plugins/box/menu/views/frontend/index.view.php b/plugins/box/menu/views/frontend/index.view.php index 4d0a64fc..c9a74a6d 100644 --- a/plugins/box/menu/views/frontend/index.view.php +++ b/plugins/box/menu/views/frontend/index.view.php @@ -3,6 +3,7 @@ $anchor_active = ''; $li_active = ''; $target = ''; + $after_text = ''; if (count($items) > 0) { foreach ($items as $item) { @@ -44,6 +45,10 @@ } if($item['class'] !== '') { + if(array_key_exists($item['class'], $after_text_array)) { + $after_text = $after_text_array[$item['class']]; + } + if($li_active !== '') { $li_active = ' class="active '.$item['class'].'"'; } else { @@ -51,9 +56,10 @@ } } - echo ''.''.$item['name'].''.''; + echo ''.''.$item['name'].''.$after_text.''; $anchor_active = ''; $li_active = ''; $target = ''; + $after_text = ''; } } From 2632aef555f0ad94b8d6e949663e54f81e1528d6 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 11 Aug 2013 01:12:22 +0400 Subject: [PATCH 3/3] Menu: fix link --- plugins/box/menu/views/frontend/index.view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/box/menu/views/frontend/index.view.php b/plugins/box/menu/views/frontend/index.view.php index c9a74a6d..27029d0c 100644 --- a/plugins/box/menu/views/frontend/index.view.php +++ b/plugins/box/menu/views/frontend/index.view.php @@ -11,7 +11,7 @@ $item['link'] = Html::toText($item['link']); $item['name'] = Html::toText($item['name']); - $pos = strpos($item['link'], 'http://'); + $pos = strpos($item['link'], 'http://') || ($item['link'] !== '' && $item['link']{0} == '#'); if ($pos === false) { $link = Option::get('siteurl').$item['link']; } else {