国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
2.4KB

  1. <?php if(!defined('DEDEINC')) exit('Request Error!');
  2. /**
  3. * 问答调用标签
  4. *
  5. * @version $Id: ask.lib.php 1 9:29 2010年7月6日Z tianya $
  6. * @package DedeCMS.Taglib
  7. * @copyright Copyright (c) 2007 - 2020, DesDev, Inc.
  8. * @license http://help.dedecms.com/usersguide/license.html
  9. * @link http://www.dedecms.com
  10. */
  11. function lib_ask(&$ctag,&$refObj)
  12. {
  13. global $dsql, $envs, $cfg_dbprefix, $cfg_cmsurl,$cfg_ask_directory,$cfg_ask_isdomain,$cfg_ask_domain;
  14. //属性处理
  15. $attlist="row|6,qtype|new,tid|0,titlelen|24";
  16. FillAttsDefault($ctag->CAttribute->Items,$attlist);
  17. extract($ctag->CAttribute->Items, EXTR_SKIP);
  18. if( !$dsql->IsTable("{$cfg_dbprefix}ask") ) return '没安装问答模块';
  19. //启用二级域名
  20. if($cfg_ask_isdomain == 'Y')
  21. {
  22. $weburl = $cfg_ask_domain.'/';
  23. }else{
  24. $weburl = $cfg_ask_directory.'/';
  25. }
  26. $innertext = $ctag->GetInnerText();
  27. if(trim($innertext)=='') $innertext = GetSysTemplets("asks.htm");
  28. $qtypeQuery = '';
  29. if($tid > 0) $tid = " (tid=$tid Or tid2='$tid') AND ";
  30. else $tid = '';
  31. //推荐问题
  32. if($qtype=='commend') $qtypeQuery = " $tid digest=1 ORDER BY dateline DESC ";
  33. //新解决问题
  34. else if($qtype=='ok') $qtypeQuery = " $tid status=1 ORDER BY solvetime DESC ";
  35. //高分问题
  36. else if($qtype=='high') $qtypeQuery = " $tid status=0 ORDER BY reward DESC ";
  37. //新问题
  38. else $qtypeQuery = " $tid status=0 ORDER BY disorder DESC, dateline DESC ";
  39. $ctp = new DedeTagParse();
  40. $ctp->SetNameSpace('field', '[', ']');
  41. $solvingask = '';
  42. $query = "SELECT id, tid, tidname, tid2, tid2name, title,dateline FROM `#@__ask` WHERE $qtypeQuery limit 0, $row";
  43. $dsql->Execute('me',$query);
  44. while($rs = $dsql->GetArray('me'))
  45. {
  46. $rs['title'] = cn_substr($rs['title'], $titlelen);
  47. $ctp->LoadSource($innertext);
  48. if($rs['tid2name'] != '')
  49. {
  50. $rs['tid'] = $rs['tid2'];
  51. $rs['tidname'] = $rs['tid2name'];
  52. }
  53. $rs['url'] = $weburl."?ct=question&askaid=".$rs['id'];
  54. foreach($ctp->CTags as $tagid=>$ctag) {
  55. if(!empty($rs[strtolower($ctag->GetName())])) {
  56. $ctp->Assign($tagid,$rs[$ctag->GetName()]);
  57. }
  58. }
  59. $solvingask .= $ctp->GetResult();
  60. }
  61. return $solvingask;
  62. }