默认方式:栏目abc.com/news/gsxw/ 详情abc.com/news/gsxw/id.html(id为内容的id数字)
实现目标:栏目abc.com/news/gsxw/ 详情abc.com/news/id.html
实现方式
教程涵盖以下四个部分:
1、关闭模型URL名称与栏目URL名称冲突检测,模型url名称设置成需要作为详情url的父级名称(每个模型url名称需唯一)
2、关闭栏目URL名称与模型URL名称冲突检测
3、修改详情URL生成规则为模型url名称+id
4、修改前台页面url判断实现正常打开
修改步骤:
1、打开\apps\admin\controller\content\ModelController.php,搜索“模型URL名称与栏目URL名称冲突”注释掉此提示的判断。
注意:有两处判断都需要注释掉
2、打开\apps\admin\controller\content\ContentSortController.php,搜索“URL名称与模型URL名称冲突”注释掉此提示的判断。
注意:有两处判断都需要注释掉
3、打开\apps\home\controller\ParserController.php,搜索“$sortfilename && $contentfilename”,把以下代码:
if ($sortfilename && $contentfilename) {
$link = Url::home($sortfilename . '/' . $contentfilename, true);
} elseif ($sortfilename) {
$link = Url::home($sortfilename . '/' . $id, true);
} elseif ($contentfilename) {
$link = Url::home($urlname . $url_break_char . $scode . '/' . $contentfilename, true);
} else {
$link = Url::home($urlname . $url_break_char . $scode . '/' . $id, true);
}
修改成:
//详情url改为模型url名称+id @pbhtml
if ($sortfilename && $contentfilename) {
$link = Url::home($urlname . '/' . $contentfilename, true);
} elseif ($sortfilename) {
$link = Url::home($urlname . '/' . $id, true);
} elseif ($contentfilename) {
$link = Url::home($urlname . '/' . $contentfilename, true);
} else {
$link = Url::home($urlname . '/' . $id, true);
}
4、打开\apps\home\controller\IndexController.php
①搜索找到:
if ((! ! $sort = $this->model->getSort($part1)) && ! ! $data = $this->model->getContent($part2)) {
修改成:
if (((! ! $model = $this->model->checkModelUrlname($part1)) || (!! $sort = $this->model->getSort($part1))) && ! ! $data = $this->model->getContent($part2)) {
②搜索找到:
if ($scode != $data->scode) {
修改成:
if ($model->urlname != $data->urlname) {