dmstr / yii2-pages-module
适用于 Yii 2.0 框架的应用程序网站地图和导航管理模块
2.5.8
2024-04-26 10:51 UTC
Requires
- 2amigos/yii2-translateable-behavior: ^1.1.0
- bedezign/yii2-audit: ^1.1
- dmstr/yii2-active-record-permissions: ^1.1.0
- dmstr/yii2-backend-module: ^2.0.0
- dmstr/yii2-json-editor: ^1.0.0
- dmstr/yii2-web: ^1.0.0
- insolita/yii2-adminlte-widgets: ^1.1.4
- justinrainbow/json-schema: ^5.2.0
- kartik-v/yii2-tree-manager: >=1.0.3 <=1.0.5
- kartik-v/yii2-widget-select2: ^2.0.1
- mikehaertl/php-shellcommand: ^1.2.4
- pheme/yii2-settings: ^0.5.0 || ^0.7.0
- rmrevin/yii2-fontawesome: ~2.9
- yiisoft/yii2: *
Requires (Dev)
- codeception/codeception: ^2.2
- dev-master
- 2.5.8
- 2.5.7
- 2.5.6
- 2.5.5
- 2.5.4
- 2.5.3
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.0
- 2.1.0-rc2
- 2.1.0-rc1
- 2.0.0
- 2.0.0-rc7
- 2.0.0-rc6
- 2.0.0-rc5
- 2.0.0-rc4
- 2.0.0-rc3
- 2.0.0-rc2
- 2.0.0-rc1
- 2.0.0-beta2
- 2.0.0-beta1
- 2.0.0-alpha7
- 2.0.0-alpha6
- 2.0.0-alpha5
- 2.0.0-alpha4
- 2.0.0-alpha3
- 2.0.0-alpha2
- 2.0.0-alpha1
- 0.23.1
- 0.23.0
- 0.22.3
- 0.22.2
- 0.22.1
- 0.22.0
- 0.21.10
- 0.21.10-rc1
- 0.21.9
- 0.21.8
- 0.21.7
- 0.21.6
- 0.21.5
- 0.21.4
- 0.21.3
- 0.21.2
- 0.21.1
- 0.21.0
- 0.20.14
- 0.20.13
- 0.20.12
- 0.20.11
- 0.20.10
- 0.20.9.3
- 0.20.9.2
- 0.20.9.1
- 0.20.9
- 0.20.8
- 0.20.7
- 0.20.6
- 0.20.5
- 0.20.4
- 0.20.3
- 0.20.2
- 0.20.1
- 0.20.0
- 0.20.0-rc2
- 0.20.0-rc1
- 0.20.0-beta6
- 0.20.0-beta5
- 0.20.0-beta4
- 0.20.0-beta3
- 0.20.0-beta2
- 0.20.0-beta1
- 0.19.1
- 0.19.1-rc1
- 0.19.0
- 0.19.0-beta1
- 0.19.0-alpha2
- 0.19.0-alpha1
- 0.18.0
- 0.18.0-beta4
- 0.18.0-beta3
- 0.18.0-beta2
- 0.17.0
- 0.17.0-beta1
- 0.16.0
- 0.16.0-beta1
- 0.15.2
- 0.15.1
- 0.15.0
- 0.15.0-rc1
- 0.15.0-beta3
- 0.15.0-beta2
- 0.15.0-beta1
- 0.14.5
- 0.14.4
- 0.14.3
- 0.14.2
- 0.14.1
- 0.14.0
- 0.13.0
- 0.12.0-beta2
- 0.12.0-beta1
- 0.11.3
- 0.11.2
- 0.11.1
- 0.11.0
- 0.10.0
- 0.9.4
- 0.9.3
- 0.9.2
- 0.9.1
- 0.9.0
- 0.9.0-beta1
- 0.8.1
- 0.8.0
- 0.7.0
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.0
- 0.4.0
- 0.3.1
- 0.3.0
- 0.2.0
- 0.1.9
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- 0.0.9
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- dev-feature/fix-ref-page-return
- dev-dev/default-page-checks
- dev-feature/fix-migration
- dev-feature/fix-composer-output
- dev-feature/access_owner_uuid
- dev-release/2.x
- dev-feature/remove-deprecated-code
- dev-dev/fix-request-param-action-trait
- dev-feature/actionRefPage
- dev-feature/split-fat-methods
- dev-feature/postgres-support
- dev-feature/menu-remove-hidden-childs
- dev-dev/upgrade
- dev-feature/remove-page-related-stuff
- dev-develop
- dev-feature/updated-styles
- dev-feature/copy-page-plus-widget
- dev-feature/2.x-testing
This package is auto-updated.
Last update: 2024-08-26 11:33:14 UTC
README
适用于 Yii 2.0 框架的应用程序网站地图和导航管理模块
- ⚠️ 0.14.0 和 0.18.0 版本中存在破坏性更改
- ⚠️ 版本 > 2.5.0 中删除了 copy pages
更新了 数据结构
和 公共属性
,现在通过 domain_id
查询菜单项
需求
- 在应用程序中配置了来自 codemix/yii2-localeurls 的 URL 管理器
- 基于角色的访问控制;为每个
module_controller_action
配置auth_items
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
composer require dmstr/yii2-pages-module "*"
或将以下内容添加到您的 composer.json
文件的 require 部分。
"dmstr/yii2-pages-module": "*"
设置
运行迁移
./yii migrate \
--disableLookup=1 \
--migrationPath=@vendor/dmstr/yii2-pages-module/migrations
配置
在应用程序配置中启用模块
// module configuration
'pages' => [
'class' => 'dmstr\modules\pages\Module',
'layout' => '@admin-views/layouts/main',
'roles' => ['Admin', 'Editor'],
'defaultPageLayout' => '@app/modules/frontend/layouts/main',
'availableRoutes' => [
'site/index' => 'Index Route',
],
'availableViews' => [
'@app/views/site/index.php' => 'Index View',
],
],
// if used want a url suffix, e.g. '.html', add Url rules for that
'urlManager' => [
...
'rules' => [
'<pagePath:[a-zA-Z0-9_\-\./\+]*>/<pageSlug:[a-zA-Z0-9_\-\.]*>-<pageId:[0-9]*>.html' => 'pages/default/page',
'<pageSlug:[a-zA-Z0-9_\-\.]*>-<pageId:[0-9]*>.html' => 'pages/default/page',
],
...
],
// register frontend asset for hiding pages via CookieButton
'on '. \yii\web\Application::EVENT_BEFORE_ACTION => function () {
\dmstr\modules\pages\assets\PagesFrontendAsset::register(Yii::$app->controller->view);
},
使用设置模块配置额外的控制器
- 将每条控制器路由添加到
pages
部分,键为availableRoutes
设置
pages.availableRoutes
- 每个访问域的路由(对于非管理员用户)pages.availableViews
- 每个访问域的视图(对于非管理员用户)pages.availableGlobalRoutes
- 全局路由(对于管理员用户)pages.availableGlobalViews
- 全局视图(对于管理员用户)
用法
导航栏(例如 layouts/main
)
通过 domain_id
查找根节点 / 离开节点,即 root
例如,使用 bootstrap Navbar
$menuItems = \dmstr\modules\pages\models\Tree::getMenuItems('root');
后端
echo yii\bootstrap\Nav::widget(
[
'options' => ['class' => 'navbar-nav navbar-right'],
'activateItems' => false,
'encodeLabels' => false,
'activateParents' => true,
'items' => Tree::getMenuItems('root'),
]
);
访问 /pages
为您的当前应用程序语言创建根节点。
- 点击 树形图 图标
- 将 域 ID 和 菜单名称 作为
name identifier (no spaces and special chars)
输入并保存 - 创建子节点
- 分配名称、标题、语言和路由/视图
- 保存
- 现在您应该能够在应用程序的前端
Nav
小部件中看到该页面。
特质
我们使用 \dmstr\activeRecordPermissions\ActiveRecordAccessTrait
在活动记录级别实现检查访问行为
- 所有者访问
- 读取访问
- 更新访问
- 删除访问
锚点
自 0.12.0-beta1 起可用
👷 创建锚点链接的解决方案是在设置模块中定义一个路由,如 /en/mysite-2
。在节点中,您可以通过使用 高级 URL 设置,并通过 {'#':'myanchor'}
来附加锚点。
建议在 树形图 模式下创建新条目。
i18n - 兄弟页面
在目标语言中查找兄弟页面
/**
* Find the sibling page in target language if exists
*
* @param string $targetLanguage
* @param integer $sourceId
* @param string $route
*
* @return Tree|null
* @throws \yii\console\Exception
*/
public function sibling($targetLanguage, $sourceId = null, $route = self::DEFAULT_PAGE_ROUTE);
Example 1:
---
// page id 12 is a node in language 'en'
$sourcePage = Tree::findOne(12);
// returns corresponding page object in language 'de' or null if not exists
$targetPage = $sourcePage->sibling('de');
Example 2:
---
// find by params
$targetPage = (new Tree())->sibling('de', 12, '/pages/default/page')
测试
需求
- docker >=1.9.1
- docker-compose >= 1.6.2
通过 "Potemkin"-Phundament 运行 Codeception
cd tests
启动测试堆栈
make all
运行测试
make run-tests
资源
tbd