infoweb-internet-solutions / yii2-cms-menu
Menu module for Yii2
Installs: 970
Dependents: 1
Suggesters: 0
Security: 0
Stars: 6
Watchers: 6
Forks: 6
Open Issues: 5
Type:yii2-extension
Requires
- infoweb-internet-solutions/yii2-cms: @stable
- yiisoft/yii2: @stable
This package is not auto-updated.
Last update: 2024-12-21 18:06:31 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
menu
module - ** 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', ] ] ],