一个为网站添加多个、数据库驱动的菜单的Laravel 4包
github.com/FbF/Laravel-Navigation
源代码
问题
安装: 442
依赖者: 0
建议者: 0
安全: 0
星星: 14
观察者: 11
分支: 6
开放问题: 6
Requires
Requires (Dev)
None
Suggests
Provides
Conflicts
Replaces
MIT 291a45a18f08bf3b62512e58338560750353b39b
This package is not auto-updated.
Last update: 2024-09-24 01:12:33 UTC
一个为网站添加多个、数据库驱动的分层菜单的Laravel 4包
包含
菜单可以是传统的嵌套列表样式(例如,多个嵌套的
一旦你在数据库中设置了层次结构,你可以配置多个菜单从单个层次结构生成。不同的菜单可以包括相同的节点,但用于你网站的不同的页面,或同一页面的不同位置。
对于每个菜单,你可以控制
菜单项自动包含有用的CSS类,以实现常见的样式增强,例如
将以下内容添加到你的composer.json文件中
"fbf/laravel-navigation": "dev-master"
运行
composer update
将以下内容添加到app/config/app.php中
'Fbf\LaravelNavigation\LaravelNavigationServiceProvider'
发布配置
php artisan config:publish fbf/laravel-navigation
运行迁移
php artisan migrate --package="fbf/laravel-navigation"
确保在配置文件中正确设置了导航types。请参阅配置文件以获取完整示例
types
运行种子(这将为你的每个导航types创建根节点)
php artisan db:seed --class="Fbf\LaravelNavigation\NavItemsTableSeeder"
在数据库中构建你的菜单,或者如果你使用的是FrozenNode的Laravel Administrator,请参阅下面的信息
该包包含一个视图生成器,你可以将其附加到你的应用中的任何视图。例如
// app/routes.php View::composer('layouts.master', 'Fbf\LaravelNavigation\NavigationComposer');
这负责生成你的菜单数据。
现在,为了渲染菜单,你只需在你的视图中做以下操作
{{ $MainNavigation }}
这将渲染'Main'菜单。如果你配置了另一个名为'Footer'的菜单,你将通过在视图中添加以下内容来渲染它
{{ $FooterNavigation }}
基本上,你在配置文件中设置的任何types,该类型的菜单都位于一个名为"< type >Navigation"的视图变量中。
如果您需要在视图文件中输出菜单,但已将composer附加到布局中,例如,您想在pages.view视图文件中渲染侧边菜单,由于composer尚未执行,$SidebarNavigation变量将不可用,它会在主布局渲染时执行,这发生在您的视图之后。在这种情况下,只需将composer也附加到pages.view视图和布局中。视图composer不会再次创建它们。例如:
View::composer(array( 'layouts.master', 'laravel-pages::page', ), 'Fbf\LaravelNavigation\NavigationComposer');
提供了一个示例配置文件,您可以在将其发布到您的应用程序后对其进行修改,以满足您的应用程序导航需求。
除了列出的选项外,您还可以为每个菜单传递以下任何选项
protected $defaultOptions = array( 'from_depth' => 1, 'from_item_id' => null, 'max_depth' => null, 'root_element' => 'div', 'root_element_class' => 'menu', 'root_element_type_class_prefix' => 'menu--', 'list_element' => 'ul', 'root_list_class' => '', 'current_item_content_element' => 'span', 'item_content_depth_prefix' => '..', 'item_element' => 'li', 'item_class' => '', 'active_child_class' => 'menu--item__selected-child', 'active_class' => 'menu--item__selected', 'first_class' => 'menu--item__first', 'last_class' => 'menu--item__last', 'has_children_class' => 'menu--item__has-children', );
您可以使用frozennode的出色Laravel Administrator包来管理您的页面。
http://administrator.frozennode.com/docs/installation
提供了适用于NavItem模型的现成模型配置文件(navigation.php),包括用于在层次结构中重新排序节点的自定义操作,位于包的src/config/administrator目录中,您可以将其复制到app/config/administrator目录(或管理员配置文件中设置的model_config_path)。
NavItem
navigation.php
src/config/administrator
app/config/administrator
model_config_path