dedecms问答使用二级域名后在首页调用的方法

我的问答模块设置为了二级域名:http://ask.daimajiayuan.com

在首页调用一直显示的是:http://www.aikuaiji.com/ask/question.php?id=21类型

为了使首页调用问答模块的连接变为:http://ask.daimajiayuan.com/question.php?id=21类型

摸索了很久,终于找到方法:

嘿嘿

首先在后台的模版管理下面的标签源码管理 里面新增加一个标签,命名为askdiaoyong.lib.php ,把以下内容复制到里面

  1. <?php 
  2.   
  3. if(!defined('DEDEINC')) exit('Request Error!'); 
  4.   
  5. function lib_askdiaoyong(&$ctag,&$refObj
  6.     global $dsql$envs$cfg_dbprefix$cfg_cmsurl
  7.     //属性处理 
  8.     $attlist="row|6,qtype|new,tid|0,titlelen|24"
  9.     FillAttsDefault($ctag->CAttribute->Items,$attlist); 
  10.     extract($ctag->CAttribute->Items, EXTR_SKIP); 
  11.      
  12.     if( !$dsql->IsTable("{$cfg_dbprefix}ask") ) return '没安装圈子模块'
  13.   
  14.     if(!ereg("/$"$cfg_cmsurl)) $cfg_ask_url = $cfg_cmsurl."/ask"
  15.     else $cfg_ask_url = $cfg_cmsurl."ask"
  16.      
  17.     $innertext = $ctag->GetInnerText(); 
  18.   if(trim($innertext)==''$innertext = GetSysTemplets("asks.htm"); 
  19.      
  20.     $qtypeQuery = ''
  21.     if($tid>0) $tid = " (tid=$tid Or $tid2='$tid') And "
  22.     else $tid = ''
  23.     //推荐问题 
  24.     if($qtype=='commend'$qtypeQuery = " $tid digest=1 order by dateline desc "
  25.     //新解决问题 
  26.     else if($qtype=='ok'$qtypeQuery = " $tid status=1 order by solvetime desc "
  27.     //高分问题 
  28.     else if($qtype=='high'$qtypeQuery = " $tid status=0 order by reward desc "
  29.     //新问题 
  30.     else $qtypeQuery = " $tid status=0 order by disorder desc, dateline desc "
  31.   
  32.     $ctp = new DedeTagParse(); 
  33.     $ctp->SetNameSpace('field''['']'); 
  34.   
  35.   $solvingask = ''
  36.   $query = "select id, tid, tidname, tid2, tid2name, title from `js_ask` where $qtypeQuery  limit 0, $row"
  37.   $dsql->Execute('me',$query); 
  38.   while($rs = $dsql->GetArray('me')) 
  39.   { 
  40.         $rs['title'] = cn_substr($rs['title'], $titlelen); 
  41.         $ctp->LoadSource($innertext); 
  42.         if($rs['tid2name'] != ''
  43.         { 
  44.             $rs['tid'] = $rs['tid2']; 
  45.             $rs['tidname'] = $rs['tid2name']; 
  46.         } 
  47.         $rs['url'] ="http://ask.daimajiayuan.com/question.php?id={$rs['id']}"
  48.       $rs['typeurl'] ="http://ask.daimajiayuan.com/browser.php?tid={$rs['tid']}"
  49.         foreach($ctp->CTags as $tagid=>$ctag) { 
  50.             if(!empty($rs[strtolower($ctag->GetName())])) { 
  51.                 $ctp->Assign($tagid,$rs[$ctag->GetName()]); 
  52.             } 
  53.           } 
  54.           $solvingask .= $ctp->GetResult(); 
  55.   } 
  56.   return $solvingask
  57.   
  58. ?> 

然后把

  1. $rs['url'] ="http://ask.daimajiayuan.com/question.php?id={$rs['id']}"
  2. $rs['typeurl'] ="http://ask.daimajiayuan.com/browser.php?tid={$rs['tid']}"

部分中的域名http://ask.daimajiayuan.com/改为你的问答的二级域名

 

添加成功,然后在首页模板中加入

  1. <ul class="c1 ico2"> 
  2. {dede:askdiaoyong row='8' qtype='new' tid='0' titlelen='42'
  3. <li><a href="[field:url/]">[field:title/]</a></li>{/dede:askdiaoyong} 

其中参数说明:

row='6' 调用条数

qtype='new' 排序类型 commend 推荐、ok 表示已解决问题、high 高分问题 、new 最新问题

tid='0' 栏目id,默认是全部

titlelen='24' 标题长度 

转载请注明:代码家园 » dedecms问答使用二级域名后在首页调用的方法

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)