PHPCMS V9跨站调用推荐位出现URL连接为空问题的解决方法

PHPCMS V9跨站调用推荐位出现URL连接为空问题的解决方法,第1张

PHPCMSV9跨站调用推荐位出现URL连接为空问题的解决方法

如果你在应用PHPCMSV9的时候不得不在不同网站中间调用推荐位,很可能连接的URL会是空。下面是实际解决方案,有类似问题的盆友可以参考一下。

如题,假如你在应用PHPCMSV9的情况下必须在不一样的网站中间调用推荐位很有可能会出現连接的URL为空的状况,实际解决方案以下,该方法合适20130522以前版本
一、在自定义函数中添加下边的涵数:

复制代码编码以下:
/**
*获得內容详细地址
*@param$catid频道ID
*@param$id文章内容ID
*@param$allurl是不是以相对路径回到
*/
functiongo_dusion($catid,$id,$allurl=0){
static$category;
if(empty($category)){
$siteids=getcache('category_content','commons');
$siteid=$siteids[$catid];
$category=getcache('category_content_'.$siteid,'commons');
}
if($siteid==''||empty($siteid)){
$siteids=getcache('category_content','commons');
$siteid=$siteids[$catid];
$category=getcache('category_content_'.$siteid,'commons');
}
$id=intval($id);
if(!$id||!isset($category[$catid]))return'';
$modelid=$category[$catid]['modelid'];
if(!$modelid)return'';
$db=pc_base::load_model('content_model');
$db->set_model($modelid);
$r=$db->get_one(array('id'=>$id),'`url`');
if(!empty($allurl)){
if(strpos($r['url'],'://')===false){
if(strpos($category[$catid]['url'],'://')===FALSE){
$site=siteinfo($category[$catid]['siteid']);
$r['url']=substr($site['domain'],0,-1).$r['url'];
}else{
$r['url']=$category[$catid]['url'].$r['url'];
}
}
}

return$r['url'];
}

第二:在content/classes/content_tag.class.php的publicfunctionposition($data)涵数中

复制代码编码以下:
/**
*推荐位
*@param$data
*/
publicfunctionposition($data){
$sql='';
$array=array();
$posid=intval($data['posid']);
$order=$data['order'];
$thumb=(empty($data['thumb'])||intval($data['thumb'])==0)?0:1;
//Du改动
if(isset($data['siteid'])&&is_numeric($data['siteid'])){
$siteid=$data['siteid'];
}else{
$siteid=$GLOBALS['siteid']?$GLOBALS['siteid']:1;
}
$catid=(empty($data['catid'])||$data['catid']==0)?'':intval($data['catid']);
if($catid){
$siteids=getcache('category_content','commons');
if(!$siteids[$catid])returnfalse;
$siteid=$siteids[$catid];
$this->category=getcache('category_content_'.$siteid,'commons');
}
if($catid&&$this->category[$catid]['child']){
$catids_str=$this->category[$catid]['arrchildid'];
$pos=strpos($catids_str,',')1;
$catids_str=substr($catids_str,$pos);
$sql="`catid`IN($catids_str)AND";
}elseif($catid&&!$this->category[$catid]['child']){
$sql="`catid`='$catid'AND";
}
if($thumb)$sql.="`thumb`='1'AND";
if(isset($data['where']))$sql.=$data['where'].'AND';
if(isset($data['expiration'])&&$data['expiration']==1)$sql.='(`expiration`>=\''.SYS_TIME.'\'OR`expiration`=\'0\')AND';
$sql.="`posid`='$posid'AND`siteid`='".$siteid."'";
$pos_arr=$this->position->select($sql,'*',$data['limit'],$order);
if(!empty($pos_arr)){
foreach($pos_arras$info){
$key=$info['catid'].'-'.$info['id'];
$array[$key]=string2array($info['data']);
$array[$key]['url']=go_dusion($info['catid'],$info['id']);
$array[$key]['id']=$info['id'];
$array[$key]['catid']=$info['catid'];
$array[$key]['listorder']=$info['listorder'];
}
}
return$array;
}

就可以,留意看多处鲜红色地区,11-16行是为了更好地获得siteID能够依据状况不改动还可以
42行,将要原先的go改成go_dusion其他不会改变就可以。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/773009.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存