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

73 lines
2.4KB

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