ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ΅Π½Ρ ΠΏΠΎ ΡΠΈΠΏΡ wordpress. Π’ΠΎΠ΅ΡΡΡ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ Π²Ρ ΡΡΡΠ°Π½Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ ΠΌΠ΅Π½Ρ ΠΊΠ°ΠΊ Ρ ΡΡΠΎΠ²Π½Π΅ΡΠΌΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΎΡΡΠΈ
ΡΠ°ΠΊ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ Π·Π°ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½ΡΠ΅ ΠΌΠ΅Π½Ρ.
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, (*1)
composer require sirgalas/yii2-wordpress-menu
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ, (*2)
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
``` php
common\config\main.php
'menu' =>[
'class' => 'sirgalas\menu\MenuModule',
'modelDb' => '\common\models\YourModel',
],, (*3)
+ **modelDb** - Π² ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ²ΠΎΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
---
frontend
```php
<?= 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 Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎΡ ΠΊΠ»ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠΎΠΈΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΠΈΠ²Π° ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°
-
menu - ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ Menu Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎΡ ΠΊΠ»ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠΎΠΈΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΠΈΠ²Π° ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°
-
navBar - ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ NavBar Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎΡ ΠΊΠ»ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠΎΠΈΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΠΈΠ²Π° ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°
- Π² ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ Ρ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠΈΡ
Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ²
Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ sirgalas\menu\models\Menu
ΠΈ Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Π° renderMenu Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΡΠΎΡΡΠΈΠ½Π³Π΅.
ΠΠ΅ΡΠ΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡ
php
$modelMenu= new Menu();
$modelMenu->renderMenu($menu,'alias');
Π Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠΎΠΈΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅
php
$modelMenu= new Menu();
$modelMenu->renderMenu($allMenu,$menu,'content','alias');
, (*4)
ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ, (*5)
php yii migrate/ --migrationPath=@vendor/sirgalas/yii2-wordperss-menu/migrations
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ Π±Π°Π·Ρ ΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ (ΠΏΠΎΠ²ΡΠΎΡΡΡ Π΅ΡΡ ΡΠ°Π·) Π², (*6)
commom\config\main.php
'menu' =>[
'class' => 'sirgalas\menu\MenuModule',
'modelDb' => '\common\models\YourModel',
],
Π² ΠΌΠΎΠ΄Π΅Π»Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, (*7)
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
Π²Π»ΠΎΠΆΠ΅Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ (Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π΅ ΠΌΠ΅Π½Ρ)
https://nimbus.everhelper.me/client/notes/share/1033948/fpvyz4o96inaqhpv7246
ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ
https://nimbus.everhelper.me/client/notes/share/1033957/qc2xb6wgcwysaac2gsfz, (*8)
Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ
https://nimbus.everhelper.me/client/notes/share/1033970/aycfg9ylkiy8uwvrh2xi, (*9)
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/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, (*10)
Π²ΠΎΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ°ΠΉΡΡ Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΎΠ΄Π΅ΠΆΠ΄Ρ, ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΊΠΎΡΠΌΠ΅ΡΠΈΠΊΠΈ
Π² ΠΏΠ»Π°Π½Π°Ρ
Π΄ΠΎΠΏΠΈΠ»ΠΈΡΡ Π²Π΅ΡΡΡΠΊΡ ΠΈ ΠΎΡΠΎΠΉΡΠΈ ΠΎΡ json ΡΠΎΡΠΌΠ°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½Π°ΡΠ°. ΠΡΠ΄Ρ ΡΠ°Π΄ Π»ΡΠ±ΠΎΠΉ ΠΏΠΎΠΌΠΎΡΠΈ. ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ
php 'description'=>'menus'
, (*11)