diff --git a/module/Cms/Admin/Controller/CatController.php b/module/Cms/Admin/Controller/CatController.php
index 3d10201254d7755632c5ba4eab3b09c74c4ebef3..b1e5bddd6c719a90123729d7f8b529e37d8576aa 100644
--- a/module/Cms/Admin/Controller/CatController.php
+++ b/module/Cms/Admin/Controller/CatController.php
@@ -7,9 +7,12 @@ namespace Module\Cms\Admin\Controller;
use Illuminate\Routing\Controller;
use ModStart\Admin\Concern\HasAdminQuickCRUD;
use ModStart\Admin\Layout\AdminCRUDBuilder;
+use ModStart\Field\AbstractField;
+use ModStart\Field\Type\FieldRenderMode;
use ModStart\Form\Form;
use ModStart\Grid\GridFilter;
use ModStart\Support\Concern\HasFields;
+use Module\Cms\Type\CatUrlMode;
use Module\Cms\Type\CmsMode;
use Module\Cms\Util\CmsCatUtil;
use Module\Cms\Util\CmsModelUtil;
@@ -28,8 +31,20 @@ class CatController extends Controller
$builder->id('id', 'ID');
$builder->text('title', '名称')->required()->width(200);
$builder->text('url', 'URL')->required()
+ ->hookRendering(function (AbstractField $field, $item, $index) {
+ if ($field->renderMode() == FieldRenderMode::GRID) {
+ return CatUrlMode::url($item->toArray());
+ }
+ return null;
+ })
->help('字母数字下划线,如,demo 可以通过URL访问 /demo 访问')
->ruleUnique('cms_cat')->ruleRegex('/^[a-zA-Z0-9_\\/]+$/');
+ if (modstart_config('CmsUrlMix_Enable', false)) {
+ $builder->text('fullUrl', '[增强]全路径')->listable(false)
+ ->help('如 product/list');
+ $builder->text('pageFullUrl', '[增强]全路径分页')->listable(false)
+ ->help('分页请使用 {page} 占位,如 product/list/{page},product/list?page={page}');
+ }
$modelField = $builder->select('modelId', '模型')->optionModel('cms_model', 'id', 'title')->required();
$modelModeMap = CmsModelUtil::listModeMap();
$modelField->when('in', $modelModeMap[CmsMode::LIST_DETAIL], function ($builder) {
diff --git a/module/Cms/Admin/Controller/ContentController.php b/module/Cms/Admin/Controller/ContentController.php
index 1311e692aa67fad5f1d575f6b8e403e79e006bbf..47a86d63ddc01543a8a00b047846e44928a14b3b 100644
--- a/module/Cms/Admin/Controller/ContentController.php
+++ b/module/Cms/Admin/Controller/ContentController.php
@@ -190,6 +190,10 @@ class ContentController extends Controller
->ruleRegex('/^[a-z0-9_]*[a-z][a-z0-9_]*$/')
->help('数字字母下划线组成,不能是纯数字,可以通过 a/别名
别名访问内容');
}
+ if (modstart_config('CmsUrlMix_Enable', false)) {
+ $form->text('fullUrl', '[增强]全路径')->listable(false)
+ ->help('如 product/view/1.html');
+ }
$form->richHtml('content', '内容');
if (in_array($this->model['mode'], [CmsMode::LIST_DETAIL, CmsMode::PAGE])) {
$form->textarea('summary', '摘要');
@@ -215,6 +219,9 @@ class ContentController extends Controller
'catId', 'title', 'alias', 'title', 'summary', 'cover', 'postTime',
'status', 'isRecommend', 'isTop', 'tags', 'author', 'source',
]);
+ if (modstart_config('CmsUrlMix_Enable', false)) {
+ $recordValue['fullUrl'] = (empty($data['fullUrl']) ? null : $data['fullUrl']);
+ }
if (empty($recordValue['alias'])) {
$recordValue['alias'] = null;
}
diff --git a/module/Cms/Type/CatUrlMode.php b/module/Cms/Type/CatUrlMode.php
new file mode 100644
index 0000000000000000000000000000000000000000..c7ef51e8d90a32beca150d2e90766e8bf8ea60d6
--- /dev/null
+++ b/module/Cms/Type/CatUrlMode.php
@@ -0,0 +1,16 @@
+ $v) {
$records[$k]['_model'] = CmsModelUtil::get($v['modelId']);
- $records[$k]['_url'] = modstart_web_url($v['url']);
+ $records[$k]['_url'] = CatUrlMode::url($v);
}
return $records;
});
diff --git a/module/Cms/Util/CmsRouteUtil.php b/module/Cms/Util/CmsRouteUtil.php
new file mode 100644
index 0000000000000000000000000000000000000000..df5a4f4c88cbb9d3c8ded3d8185964cbd227df74
--- /dev/null
+++ b/module/Cms/Util/CmsRouteUtil.php
@@ -0,0 +1,14 @@
+handle($request);
+ }
+}
\ No newline at end of file
diff --git a/module/Cms/Util/UrlModeUtil.php b/module/Cms/Util/UrlModeUtil.php
deleted file mode 100644
index 2e2cbc4a517765a5bf5bae80dcf32f50f1a16373..0000000000000000000000000000000000000000
--- a/module/Cms/Util/UrlModeUtil.php
+++ /dev/null
@@ -1,10 +0,0 @@
-首页
@foreach($catChain as $i=>$c)
{{$c['title']}}
+ href="{{$c['_url']}}">{{$c['title']}}
@endforeach
@@ -36,10 +36,10 @@