infoweb-internet-solutions / yii2-cms-menu
Menu module for Yii2
Installs: 970
Dependents: 1
Suggesters: 0
Security: 0
Stars: 6
Watchers: 5
Forks: 6
Open Issues: 5
Type:yii2-extension
pkg:composer/infoweb-internet-solutions/yii2-cms-menu
Requires
- infoweb-internet-solutions/yii2-cms: @stable
- yiisoft/yii2: @stable
This package is not auto-updated.
Last update: 2025-10-25 22:29:48 UTC
README
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require infoweb-internet-solutions/yii2-cms-menu "*"
or add
"infoweb-internet-solutions/yii2-cms-menu": "*"
to the require section of your composer.json file.
Usage
Once the extension is installed, simply modify your application configuration as follows:
'modules' => [ ... 'menu' => [ 'class' => 'infoweb\menu\Module', ], ],
Import the translations and use category 'infoweb/menu':
yii i18n/import @infoweb/menu/messages
To use the module, execute yii migration
yii migrate/up --migrationPath=@vendor/infoweb-internet-solutions/yii2-cms-menu/migrations
Configuration
All available configuration options are listed below with their default values.
enablePrivateMenuItems (type: boolean, default: false)
If this option is set to true, the public attribute of a menu-item can be managed and the getTree function in models/frontend/Menu will only return public menu-items if the current application user is a guest.
Keep in mind that you will also have to enable the module in your frontend application to if you set this option to true.
defaultPublicVisibility (type: boolean, default: true)
This is the value that will be used as the default value of the public attribute of a menu-item.
allowContentDuplication (type: boolean, default: true)
If this option is set to true, the duplicateable jquery plugin is activated on all translateable attributes.
createEntityFromMenuItem (type: boolean, default: true)
If this option is set to true, you can for example create a page in the menu item form.
linkableEntities (type: boolean, default: [])
These are the entities will be used in the menu module.
The fully qualified name of the entity class is used as the key in the array.
An entity can only be linked if it implements the getUrl and getAllForDropDownList methods.
For each configured entity the following fields are required:
- ** label **: The entity label that will be used in the
menumodule - ** i18nGroup **: The group that will be used for the translation of the label
Example configuration:
'menu' => [ 'class' => 'infoweb\menu\Module', 'enablePrivateMenuItems' => true, 'linkableEntities' => [ MedicalTraining::className() => [ 'label' => 'Training', 'i18nGroup' => 'infoweb/medical-training', ] ] ],