Discuz diy、当前位置和导航调用文章栏目URL三个问题解决方法

在使用discuz建站时遇到两个问题:

问题一:移动版网站使用diy调用{caturl}文章栏目会调用带完整域名链接
问题二:移动版网站当前位置文章栏目使用完整域名链接
问题三:电脑端网站导航中文章栏目调用完整域名链接

问题一,原来的解决方法是:
//解决diy使用{caturl}调用栏目链接链会员域名http://www.xxx.cn/jianzhan/问题,只输出栏目链接jianzhan/
将source/class/block/portal/block_article.php
//'caturl'=> $_G['cache']['portalcategory'][$data['catid']]['caturl'],//解决diy使用{caturl}调用栏目链接链会员域名http://www.xxx.cn/jianzhan/问题,只输出栏目链接jianzhan/
替换为'caturl'=> $data['htmldir'],

问题二,原来解决方法
解决当前位置栏目链接调用文件:template/wdao_blog_free/portal/view.html
当前位置调用栏目URL在source/function/function_portal.php文件中的getportalcategoryurl函数,修改该函数中的代码:
//return $portalcategory[$catid]['caturl'];//解决当前位置调用栏目链接输入http://www.xxx.cn/jianzhan/,只需要输出jianzhan/
为如下代码:
return $portalcategory[$catid]['foldername']."/";

我是如何发现问题三的,在创建文章栏目,或者编辑文章栏目的时候,如果使用不同的域名访问创建或编辑文章栏目,当前使用的域名会被插

入或更新到Pre_common_nav数据表字段url中。

在解决问题三的时候,发现前面两个问题其实也就解决了,不需要再修改以上的文件。第三个问题解决方法:

找到source/function/cache/cache_portalcategory.php中的如下代码:
创建栏目、编辑栏目,common_nav数据表url总是插入完整带http://www.xxx.cn/jianzhan/
    if($channelrootdomain && $data[$topid]['domain']){
            $url = $_G['scheme'].'://'.$data[$topid]['domain'].'.'.$channelrootdomain.'/';
            if($foldername) {

                if(!empty($value['upid'])) {
                    $url .= $foldername;
                }
            } else {
                //$url = $portaldomain.'portal.php?mod=list&catid='.$key;//将http://www.xxx.cn/jianzhan/改

为jianzhan/
                $url = 'portal.php?mod=list&catid='.$key;
            }
        } elseif ($foldername) {
            //$url = $portaldomain.$foldername;//将http://www.xxx.cn/jianzhan/改为jianzhan/
            $url = $foldername;
            if(substr($url, -1, 1) != '/') $url.= '/';
        } else {
            //$url = $portaldomain.'portal.php?mod=list&catid='.$key;//将http://www.xxx.cn/jianzhan/改为

jianzhan/
            $url = 'portal.php?mod=list&catid='.$key;
        }
        $value['caturl'] = $url;

        $value['fullfoldername'] = trim($foldername, '/');

        if($value['shownav']) {
            $rs = C::t('common_nav')->update_by_type_identifier(4, $key, array('url' => addslashes($url), 'name' 

=>$value['catname']));
        }
    }
将以上代码中的3处代码进行替换即可。

为什么开发的时候,会在创建文章栏目的时候,考虑将当前访问的域名连同栏目文件夹名,一块插入到Pre_common_nav数据表字段url。因为考虑到当全用BBS二级域名作为论坛的域名时,如果不将完整域名插入到导航数据表,那么当用户在论坛页面,点击导航会导致以下问题:
http://bbs.域名.com/栏目名/
其实,该栏目导航URL应该是:http://www.域名.com/栏目名/ 例如:http://www.999sjw.com/dyds/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值