升级wellcms2.2之后attach_on开启后的头像,缩略图链接处理

升级wellcms2.2之后附件链接处理

2.1的代码就不贴了 有兴趣的自己对比下

// 后台处理头像或主题缩略图、自定义图标
function admin_access_file($icon = 0, $icon_fmt = '')
{
    global $conf;
    if (empty($icon_fmt)) return $icon_fmt;
    $local = FALSE;
    // 本地未分离
    if ($icon) {
        // 上传文件
        if (0 == $conf['attach_on']) $local = TRUE;
    } else {
        // icon 默认图片,view 目录
        if ('view/' == $conf['view_url']) $local = TRUE;
    }
    if ($local) {
        // 伪静态 1 追加 ../ 伪静态 2 追加 ..
        $icon_fmt = $conf['url_rewrite_on'] < 2 ? '../' . $icon_fmt : '..' . $icon_fmt;
    }
    return $icon_fmt;
}

先看这一段.

可以理解为只处理0 == $conf['attach_on']的部分

所以头像 缩略图,图标会失效

// 后台访问view目录下文件路径/支持分离
function admin_view_path()
{
    static $path = array();
    if (isset($path['admin_view_path'])) return $path['admin_view_path'];
    $conf = _SERVER('conf');
    $path['admin_view_path'] = 'view/' == $conf['view_url'] ? '../' . $conf['view_url'] : $conf['view_url'];
    return $path['admin_view_path'];
}

再看这一段

// 附件路径/支持分离 $attach_on 为传入标识,默认不传入读取$conf['attach_on']
function file_path($attach_on = NULL)
{
    $conf = include APP_PATH . 'conf/conf.php';
    if ($attach_on && $conf['attach_on']) {
        if ($attach_on == $conf['attach_on']) {
            // 云储存
            $path = $conf['cloud_url'] . $conf['upload_url'];
        } else {
            // 本地
            $path = $conf['url_rewrite_on'] > 1 ? $conf['path'] . $conf['upload_url'] : $conf['upload_url'];
        }
    } else {
        // 本地
        $path = $conf['url_rewrite_on'] > 1 ? $conf['path'] . $conf['upload_url'] : $conf['upload_url'];
    }
    return $path;
}

这一段.

// 前台访问view目录下文件路径/支持分离
function view_path()
{
    static $path = array();
    if (isset($path['view_path'])) return $path['view_path'];
    $conf = _SERVER('conf');
    $conf_path = $conf['url_rewrite_on'] > 1 ? $conf['path'] : '';
    $path['view_path'] = $conf_path . $conf['view_url'];
    return $path['view_path'];
}

 有没有发现什么?

是不是总感觉哪里怪怪的?

再开看调用

$user['avatar_url'] = $user['avatar'] ? file_path() . "avatar/$dir/$user[uid].png?" . $user['avatar'] : view_path() . 'img/avatar.png';

怎么样

是不是更怪了

到这里大概也都弄清楚了.

就不过多剖析作者的心理历程了.

说下解决方案

修改配置文件

当伪静态模式为1的时候(我想大部分用户都是1)

attach_on为0则不需要更改

attach_on=1或attach_on=2的时候则需要用完整路径(相对完整或绝对路径)

'view_url' => '/view/',
'upload_url' => '/upload/',

改成这样既可兼容前后台或者加上域名使用完整绝对路径

这样既可跳过检测达到修复的目的

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
钛宇宙(大象网络工作室) » 升级wellcms2.2之后attach_on开启后的头像,缩略图链接处理

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
找不到素材资源介绍文章里的示例图片??
对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
钛宇宙
一个高级程序员模板开发平台

0条评论

发表评论