sirgalas / yii2-wordpress-menu
扩展,尝试创建类似于 CMS WordPress 的菜单
Requires
- kartik-v/yii2-widget-select2: @dev
- yiisoft/yii2-imagine: ^2.1
- zainiafzan/yii2-dropzone: @dev
This package is auto-updated.
Last update: 2024-09-19 21:55:15 UTC
README
该扩展允许创建类似于 WordPress 的菜单。也就是说,在后台您可以根据级别设置菜单,并添加预先创建的菜单。安装后
composer require sirgalas/yii2-wordpress-menu
连接
backend/config/main.php 'menu' =>[ 'class' => 'sirgalas\menu\MenuModule', 'imageDownloadPath' => Yii::getAlias('@frontend/').'web/image/menu/', 'imageSetPath' => Yii::getAlias('@frontendWebroot').'/image/menu/', 'imageResize' => [[80, 40],[179,156]], 'extra_menu' => 2, 'models' => [ 'class' => '\common\models\Category', 'title' => 'name', 'label' => 'выбирите категорию', 'id' => 'id', 'alias' => 'slug_category', 'path' => '/category', 'image' => 'true' ], ],
- imageDownloadPath, imageSetPath - 指定图片上传时的路径(如果计划将图片连接到菜单)
- imageResize - 包含期望图片尺寸的数组
- extra_menu - 可以使用额外的菜单进行创建
- models - 用于添加菜单项的选择集
- models - 想要添加到选择集的模型
- label - 在后台中下拉列表的名称
- title - 从哪个列获取菜单项
- id - 从哪个列获取 id
- alias - 如果在数据库中指定了别名,请指定列
- path - 前端路由的路径
- image - 如果要添加图片
common
common\config\main.php 'menu' =>[ 'class' => 'sirgalas\menu\MenuModule', 'modelDb' => '\common\models\YourModel', ],
- modelDb - 如果使用自己的数据库而不使用迁移
前端
<?= MenuView::widget([ 'name' => 'Футер лево', 'nameAlias' => 'slug', 'menu' =>['linkTemplate' => '<a href="{url}"><span class="fa fa-angle-right"></span>{label}</a>','options'=>['class' => false]] ]); ?>
- name - 数据库 id
- nameAlias - 在 pattern 中如何命名 get - 请求
- nav - 如果使用 Nav 小部件,需要指定此键,其值为配置小部件的 passive 对象,具体请参阅小部件文档
- menu - 如果使用 Menu 小部件,需要指定此键,其值为配置小部件的 passive 对象,具体请参阅小部件文档
- navBar - 如果使用 NavBar 小部件,需要指定此键,其值为配置小部件的 passive 对象,具体请参阅小部件文档
- 其余的,我尝试连接了所有这些小部件的设置
如果您不希望使用 sirgalas\menu\models\Menu 模型及其 renderMenu 方法(该方法具有必需的属性,即调用的菜单和用于路由的 get 参数的名称),则可能如下所示:
$modelMenu= new Menu(); $modelMenu->renderMenu($menu,'alias');
如果使用内置的表格,则必须按以下顺序指定属性:
$modelMenu= new Menu(); $modelMenu->renderMenu($allMenu,$menu,'content','alias');
迁移
php yii migrate/ --migrationPath=@vendor/sirgalas/yii2-wordperss-menu/migrations
如果您想使用自己的数据库,那么需要在
commom\config\main.php 'menu' =>[ 'class' => 'sirgalas\menu\MenuModule', 'modelDb' => '\common\models\YourModel', ],
在模型中连接行为
use sirgalas\menu\behaviors\MenuBaseWordpressBehavior; 'BaseMenu' => [ 'class' => MenuBaseWordpressBehavior::className(), 'nameModel' => '\common\models\YourModel', 'dbName' => 'yourtable', 'idBehavior' => 'id', 'name' => 'name', 'content' => 'content', 'serviceField' => 'description', 'nameServiceField' => 'menus' ],
- nameModel 模型命名空间
- dbName 表名
- idBehavior id 列
- name 包含行名称的列
- content 需要保存菜单数据的列
- serviceField nameServiceField 用于搜索模型,这是用于从您的数据库中提取所有菜单的搜索字段
总的来说,我得到了这样的后端嵌套菜单(下拉菜单)https://nimbus.everhelper.me/client/notes/share/1033948/fpvyz4o96inaqhpv7246 主要菜单 https://nimbus.everhelper.me/client/notes/share/1033957/qc2xb6wgcwysaac2gsfz
可以通过这种方式定义嵌套级别 https://nimbus.everhelper.me/client/notes/share/1033970/aycfg9ylkiy8uwvrh2xi
前端 https://dl.dropboxusercontent.com/1/view/hlv8uxg4wm53s6t/Apps/Shutter/%C3%90%C2%92%C3%91%C2%8B%C3%90%C2%B4%C3%90%C2%B5%C3%90%C2%BB%C3%90%C2%B5%C3%90%C2%BD%C3%90%C2%B8%C3%90%C2%B5_004.png https://dl.dropboxusercontent.com/1/view/8glnfop5ozhmdal/Apps/Shutter/%C3%90%C2%92%C3%91%C2%8B%C3%90%C2%B4%C3%90%C2%B5%C3%90%C2%BB%C3%90%C2%B5%C3%90%C2%BD%C3%90%C2%B8%C3%90%C2%B5_005.png
以下链接是使用扩展的网站:服装店,化妆品店。计划完善布局并逐步过渡到JSON文档格式。欢迎提供任何帮助。请加入:php 'description'=>'menus'