Application sitemap and navigation manager module for Yii 2.0 Framework
- URL manager from codemix/yii2-localeurls configured in application
- role based access control;
auth_items
for everymodule_controller_action
The preferred way to install this extension is through composer.
Either run
composer require dmstr/yii2-pages-module "*"
or add
"dmstr/yii2-pages-module": "*"
to the require section of your composer.json
file.
Run migrations
./yii migrate \
--disableLookup=1 \
--migrationPath=@vendor/dmstr/yii2-pages-module/migrations
Enable module in application configuration
'pages' => [
'class' => 'dmstr\modules\pages\Module',
'layout' => '@admin-views/layouts/main',
'availableRoutes' => [
'/site/index' => '/site/index',
],
],
Use settings module to configure additional controllers
- Add one controller route per line to section
pages
, keyavailableRoutes
find a root node / leave node
by name_id
$localizedRoot = 'root_' . \Yii::$app->language;
$menuItems = \dmstr\modules\pages\models\Tree::getMenuItems($localizedRoot);
use for example with bootstrap Navbar
$localizedRoot = 'root_' . \Yii::$app->language;
echo yii\bootstrap\Nav::widget(
[
'options' => ['class' => 'navbar-nav navbar-right'],
'activateItems' => false,
'encodeLabels' => false,
'activateParents' => true,
'items' => Tree::getMenuItems($localizedRoot),
]
);
- visit
/pages
to create a root-node for your current application language. - click the tree icon
- enter
root_LANG
as Name ID and Name and save - create child node
- assign name, title, language and route/view
- save
Now you should be able to see the page in your Nav
widget in the frontend of your application.
available since 0.12.0-beta1
đź‘· A workaround for creating anchor links is to define a route, like /en/mysite-2
in the settings module.
On a node you can attach an anchor by using Advanced URL settings, with {'#':'myanchor'}
.
It is recommended to create a new entry in Tree mode.
Requirements:
- docker >=1.9.1
- docker-compose >= 1.6.2
Codeception is run via "Potemkin"-Phundament.
cd tests
Start test stack
docker-compose up -d
Run a bash in the container
docker-compose run --rm phpfpm bash
Setup
$ setup.sh
Run the tests
$ YII_ENV=test codecept run unit,acceptance
tbd
Built by dmstr