国内流行的内容管理系统(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.

76 lines
2.4KB

  1. <?php
  2. if (!defined('DEDEINC')) {
  3. exit("Request Error!");
  4. }
  5. /**
  6. * 调用最新评论
  7. *
  8. * @version $Id: feedback.lib.php 1 9:29 2010年7月6日Z tianya $
  9. * @package DedeCMS.Taglib
  10. * @copyright Copyright (c) 2020, DedeBIZ.COM
  11. * @license https://www.dedebiz.com/license
  12. * @link https://www.dedebiz.com
  13. */
  14. function lib_feedback(&$ctag, &$refObj)
  15. {
  16. global $dsql;
  17. $attlist = "row|12,titlelen|24,infolen|100,orderby|";
  18. FillAttsDefault($ctag->CAttribute->Items, $attlist);
  19. extract($ctag->CAttribute->Items, EXTR_SKIP);
  20. $innertext = trim($ctag->GetInnerText());
  21. $totalrow = $row;
  22. $revalue = '';
  23. if (empty($innertext)) {
  24. $innertext = GetSysTemplets('tag_feedback.htm');
  25. }
  26. $order = " ORDER BY id DESC";
  27. if (!empty($orderby)) {
  28. switch ($orderby) {
  29. case 'good':
  30. $order = " ORDER BY good DESC";
  31. break;
  32. case 'time':
  33. $order = " ORDER BY dtime DESC";
  34. break;
  35. default:
  36. $order = " ORDER BY id DESC";
  37. break;
  38. }
  39. }
  40. $wsql = " WHERE fb.ischeck=1 AND fb.fid=0 ";
  41. if (get_class($refObj) === "Archives" && isset($refObj->Fields["id"])) {
  42. $wsql .= " AND fb.aid='{$refObj->Fields["id"]}'";
  43. }
  44. $equery = "SELECT fb.*,mb.userid,mb.face as mface,mb.spacesta,mb.scores,mb.sex FROM `#@__feedback` fb
  45. LEFT JOIN `#@__member` mb on mb.mid = fb.mid $wsql $order LIMIT 0 , $totalrow";
  46. $ctp = new DedeTagParse();
  47. $ctp->SetNameSpace('field', '[', ']');
  48. $ctp->LoadSource($innertext);
  49. $dsql->Execute('fb', $equery);
  50. while ($arr = $dsql->GetArray('fb')) {
  51. $arr['face'] = empty($arr['mface']) ? $GLOBALS['cfg_cmspath'] . '/static/img/avatar.png' : $arr['mface'];
  52. $arr['title'] = cn_substr($arr['arctitle'], $titlelen);
  53. $arr['msg'] = jsTrim(Html2Text($arr['msg']), $infolen);
  54. foreach ($ctp->CTags as $tagid => $ctag) {
  55. $ctp->Assign($tagid, $arr[$ctag->GetName()]);
  56. }
  57. $revalue .= $ctp->GetResult();
  58. }
  59. return $revalue;
  60. }
  61. function jsTrim($str, $len)
  62. {
  63. $str = preg_replace("/{quote}(.*){\/quote}/is", '', $str);
  64. $str = str_replace('&lt;br/&gt;', ' ', $str);
  65. $str = cn_substr($str, $len);
  66. $str = preg_replace("#['\"\r\n]#", "", $str);
  67. return $str;
  68. }