PHPackages                             sirgalas/yii2-wordpress-menu - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. sirgalas/yii2-wordpress-menu

ActiveYii2-extension[Utility &amp; Helpers](/categories/utility)

sirgalas/yii2-wordpress-menu
============================

extension trying to create a menu like in cms wordpress

443[2 issues](https://github.com/Sirgalas/yii2-wordpress-menu/issues)PHP

Since Jul 14Pushed 8y ago1 watchersCompare

[ Source](https://github.com/Sirgalas/yii2-wordpress-menu)[ Packagist](https://packagist.org/packages/sirgalas/yii2-wordpress-menu)[ RSS](/packages/sirgalas-yii2-wordpress-menu/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

yii2-wordperss-menu
===================

[](#yii2-wordperss-menu)

Это расширение позволить создавать меню по типу 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** - путь для роутинга на frontend
- **image** - если вы хотите добавлять картинки

---

common

```
common\config\main.php
'menu'  =>[
            'class' =>  'sirgalas\menu\MenuModule',
            'modelDb' =>  '\common\models\YourModel',
        ],
```

- **modelDb** - в случае если используется своя база данных без использования миграции

---

frontend

```

```

- **name** - id базы
- **nameAlias** - как в pattern будет называться get - запрос
- **nav** - Если вы используете виджет Nav необходимо указать этот ключ значением к которому будет настроики виджета в виде пасива согласно документации виджета
- **menu** - Если вы используете виджет Menu необходимо указать этот ключ значением к которому будет настроики виджета в виде пасива согласно документации виджета
- **navBar** - Если вы используете виджет NavBar необходимо указать этот ключ значением к которому будет настроики виджета в виде пасива согласно документации виджета
- в остальном я попытался подключить все настройки этих виджетов

если вам не желаете использовать подключение этой модели sirgalas\\menu\\models\\Menu и её метода renderMenu у которого обязательный атрибут является вызываемое меню и наименование гет параметра которое будет использоваться в роутинге. Пердположительно такокая запись

```
 $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*** namespace модели
- ***dbName*** название таблицы
- ***idBehavior*** столбец id
- ***name*** столбец содержащий название строки базы
- ***content*** солбец куда необходимо сохранять данные меню
- ***serviceField nameServiceField*** используются для поисковой модели, это поисковое поле для выборки из вашей базы всех меню

---

в общем итоге вот так у меня получилось это backend вложеное меню (выпадающее меню) основное меню

есть возможность определять вложенность таким образом

frontend [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/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](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)

вот ссылки на сайты где использовано расширение [магазин одежды](http://miliydom.com.ua/), [магазин косметики](http://krymray.ru/)в планах допилить верстку и отойти от json формата докумената. Буду рад любой помощи. Присоединяйтесь `php 'description'=>'menus'`

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance10

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/739e582d35316896a41882419681f156f41bf2485358f2bb6f14e7911830199b?d=identicon)[Sirgalas](/maintainers/Sirgalas)

---

Top Contributors

[![Sirgalas](https://avatars.githubusercontent.com/u/12089457?v=4)](https://github.com/Sirgalas "Sirgalas (38 commits)")

### Embed Badge

![Health badge](/badges/sirgalas-yii2-wordpress-menu/health.svg)

```
[![Health](https://phpackages.com/badges/sirgalas-yii2-wordpress-menu/health.svg)](https://phpackages.com/packages/sirgalas-yii2-wordpress-menu)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
