waynestate/parse-menu
最新稳定版本:1.2.2
Composer 安装命令:
composer require waynestate/parse-menu
包简介
Parse menus from the Wayne State University API
README 文档
README
Parse menus from the Wayne State University API
Installation
To install this library, run the command below and you will get the latest version
composer require waynestate/parse-menu
Usage
Create the object
# start.php
use Waynestate\Menuitems\ParseMenu;
...
$parseMenu = new ParseMenu;
Make an API call for the menu
# controller.php
try {
// Pull a specific menu from the API for a site
$params = array(
'site_id' => 1,
'menu_id' => 2,
'ttl' => TTL,
);
$menus = $api->sendRequest('cms.menuitems.listing', $params);
// Menu config
$menu_config = array(
'page_selected' => 1,
);
// Get a final array to display the main menu
$main_menu = $parseMenu->parse($menus[2], $menu_config);
// Get the breadcrumbs from the parsed menu $main_menu
$breadcrumbs = array();
if(count($site_menu['meta']['path']) > 0) {
$breadcrumbs = $parseMenu->getBreadCrumbs($main_menu);
// Add the site root crumb
$root_crumb = [
'display_name' => 'Home',
'relative_url' => '/',
];
$breadcrumbs = $parseMenu->prependBreadCrumb($breadcrumbs, $root_crumb);
}
// Just display the first level in the header
$top_menu_config = array(
'display_levels' => 1,
);
// Parse the existing menu with the specific top_menu config
$top_menu = $parseMenu->parse($main_menu, $top_menu_config);
} catch (Exception $e) {
echo 'Caught exception: '. $e->getMessage(). "\n";
}
Return values
$main_menu['meta'] = [
'has_selected' => boolean, // default: false
'has_submenu' => boolean, // default: false
'depth' => integer, // default: 0
'path' => array, // default: array()
]
$main_menu['menu'] = [
// Array of the menu
]
$breadcrumbs = [
// Sequential array of individual breadcrumbs in order based on the $main_menu['meta']['path']
]
Config Options
'page_selected' = Page ID for selection path (optional)
'skip_levels' = Number of levels to skip from the root (requires page_selected)
'display_levels' = Number of levels to display from the root (requires page_selected, if > 1)
'full_menu' = Return the full menu regardless if there is a page selected (boolean, default: false)
TODO: 'show_levels' = Number of levels to display from the leaf (requires page_selected)
TODO: 'add_home' = Add 'Home' as the first menu item (this may not be needed)
Exceptions
InvalidDisplayLevelsException = If 'display_levels' > 1 and no 'page_selected' found
Tests
phpunit
Code Coverage
phpunit --coverage-html ./coverage
统计信息
- 总下载量: 34.23k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-09-12