sirgalas/yii2-wordpress-menu

扩展,尝试创建类似于 CMS WordPress 的菜单

安装: 43

依赖: 0

建议: 0

安全: 0

星标: 4

关注者: 2

分支: 0

类型:yii2-extension

dev-master 2017-07-14 00:00 UTC

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'