radotch / cakephp-menu-manager
CakePHP 的菜单管理插件
1.1.1
2018-12-19 07:33 UTC
Requires
- cakephp/cakephp: ^3.5
Requires (Dev)
- phpunit/phpunit: ^5.7.14|^6.0
This package is auto-updated.
Last update: 2024-09-29 05:08:23 UTC
README
要求
- php >= 5.6.x (recomended >= 7.1)
- cakephp ^3.5
用于测试
- phpunit ^5.7.14|^6.x
功能
- 创建菜单
- 创建与菜单关联的菜单链接
- 菜单链接具有树形结构。这使得创建下拉菜单、手风琴或其他特定类型的菜单变得容易。
- 菜单链接位置
- 翻译
安装
您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。
推荐的安装方法是
composer require radotch/cakephp-menu-manager
加载插件
要在 Application.php 文件的 bootstrap() 方法中加载插件,请添加以下行
$this->addPlugin('MenuManager', ['autoload' => true, 'routes' => true]);
或者您可以使用对象方式
$plugin = new \MenuManager\Plugin(array $config = [])
->disable('bootstrap')
->enable('routes');
$this->addPlugin($plugin)
3.6.0 之前使用以下方法
Plugin::load('MenuManager', ['autoload' => true, 'routes' => true]);
现在您可以使用 MenuManager 插件了。
迁移
一旦插件可用,执行迁移以创建所需的表
$ path/to/project> bin/cake migrations migrate --plugin MenuManager
注意:如果 i18n 表已存在,迁移将不会尝试创建它。
有一个可用的初始种子,如果应用需要在启动时或仅用于测试目的,可以使用它
$ path/to/project> bin/cake migrations seed --plugin MenuManager
使用方法
控制面板
插件的控制面板可在 '/admin/menu-manager/' 上访问。请勿忘记限制访问
现在您可以创建菜单并添加菜单链接。
获取数据
要获取具有层次结构的菜单链接,请使用 'threaded' 查找器
// In controller
$menu = $this->TableRegistry::getTableLocator()
->get('MenuManager.Menus')
->find()
->contain(['MenuLinks' => ['finder' => 'threaded']])
->where([$whereConditions]);
或者
// In controller
$menuLinks = $this->TableRegistry::getTableLocator()
->get('MenuManager.MenuLinks')
->find('threaded')
// Some query requirements
->where(['menu_id' => $menuId]);
菜单链接位置
当创建或更新菜单链接时,您可以设置链接的位置。如果在此点更改,则更改不会影响其他链接。所有其他菜单链接的位置都必须手动更改。
对此表示歉意,稍后当我有更多时间时,我会自动化它。同时,我也欢迎接受并感谢支持。
翻译
要能够添加关于菜单和菜单链接的翻译,请设置以下配置为关联数组或列表
$language = [
'bg_BG' => 'Bulgarian',
'en' => 'English',
'en_US' => 'English (United States)'
];
Configure::write('MenuManager.Translation.Languages', $languages);
或者
$plugin = new \MenuManager\Plugin($config = []);
$plugin->setTranslations($languages);
我认为最好的地方是 Application.php 的 bootstrap() 方法。
显示菜单
在这个阶段,要显示菜单,您必须编写自己的代码。
祝您好运!