讨论 使用交流 [新功能改造]结合今日更新的2.9版本,内容url定义改造

[新功能改造]结合今日更新的2.9版本,内容url定义改造

hjhjay2022 发表于    阅读:541    回复:2

因需要老网站迁移,须保持迁移前后url的一致性,所以特别需求内容页url全自定义。今日2.9升级后发现还是无法完全实现url保持一致,因此特立此帖求助大神一起改造。


现有2.9的

23160_1jbf_3265.png

这个功能好是好,但是还是没有满足我迁移网站保持url一致性的要求,解决这个问题我有2个思路,

思路一,使用 /a/{id}模式,把前面的a/去掉,然后解决内容页别名带/的问题

思路二,使用/栏目url/{id},把二级栏目url去掉只保留一级栏目的url,也要解决内容页别名带/的问题


23424_5kgu_7724.png

实施思路一的时候去掉a/会导致网站栏目页均无法打开,


实施思路二的时候,会出现设置页面500报错,其他页面正常


因对程序没啥基础,特立此贴求大神协助完成功能改造

改造文件路径\module\Cms\Type\ContentUrlMode.php

<?php


namespace Module\Cms\Type;


use ModStart\Core\Type\BaseType;
use Module\Cms\Util\CmsCatUtil;
/*use Module\Cms\Util\CmsModelUtil;*/

class ContentUrlMode implements BaseType
{
    const A = 'a';
    const CAT = 'cat';
/*    const MODEL = 'model';*/

    public static function getList()
    {
        return [
            self::A => '/a/{id}',
            self::CAT => '/栏目url/{id}',
/*			self::MODEL => '/模型url/{id}',*/
        ];
    }

    public static function url($content)
    {
        if (empty($content['alias'])) {
            $content['alias'] = $content['id'];
        }
        $url = modstart_web_url('a/' . $content['alias']);
        if (modstart_config('Cms_ContentUrlMode') == ContentUrlMode::CAT) {
            $cat = CmsCatUtil::get($content['catId']);
/*			    public static function root($catId)
    {
        $id = $catId;
        for ($i = 0; $i < 10; $i++) {
            $cat = self::get($id);
            if (!$cat['pid']) {
                return $cat;
            }
            $id = $cat['pid'];
        }
		        return null;
    }*/
            if (!empty($cat['url'])) {
                $url = modstart_web_url($cat['url'] . '/' . $content['alias']);
/*      if (modstart_config('Cms_ContentUrlMode') == ContentUrlMode::MODEL) {
            $model = CmsModelUtil::get($content['modelId']);
            if (!empty($cat['url'])) {
                $url = modstart_web_url($model['name'] . '/' . $content['alias']);*/
            }
        }
        return $url;
    }
}


评论

v3.0.0即将上线「CMS链接增强」模块,用于解决其他系统迁移到ModStart的链接兼容问题,敬请期待。

 

v3.0.0 已上上线,通过 https://modstart.com/m/CmsUrlMix 可以实现任意历史链接无缝迁移的功能

 
1
我来评论
QQ
微信