在使用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/