国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

78 satır
2.9KB

  1. <?php if(!defined('DEDEINC')) exit('Request Error!');
  2. /**
  3. * 圈子主题调用标签
  4. *
  5. * @version $Id: groupthread.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. /*>>dede>>
  12. <name>圈子主题</name>
  13. <type>全局标记</type>
  14. <for>V55,V56,V57</for>
  15. <description>圈子主题调用标签</description>
  16. <demo>
  17. {dede:groupthread gid='0' orderby='dateline' orderway='desc' row='12' titlelen='30'}
  18. <li>
  19. <a href='[field:groupurl/]' target="_blank">[[field:groupname function="cn_substr(@me,10)"/]]</a>
  20. <a href="[field:url/]" title="[field:subject/]" target="_blank">[field:subject/]</a>([field:lastpost function="GetDateMk('@me')"/])
  21. </li>
  22. {/dede:groupthread}
  23. </demo>
  24. <attributes>
  25. <iterm>gid:圈子id,默认为全部</iterm>
  26. <iterm>orderby:排序,默认为时间</iterm>
  27. <iterm>orderway:排序方向,默认是最新主题在前</iterm>
  28. <iterm>row:记录数</iterm>
  29. <iterm>titlelen:主题标题(subject)最大长度</iterm>
  30. </attributes>
  31. >>dede>>*/
  32. function lib_groupthread(&$ctag,&$refObj)
  33. {
  34. global $dsql, $envs, $cfg_dbprefix, $cfg_cmsurl;
  35. //属性处理
  36. $attlist="gid|0,orderby|dateline,orderway|desc,row|12,titlelen|30";
  37. FillAttsDefault($ctag->CAttribute->Items,$attlist);
  38. extract($ctag->CAttribute->Items, EXTR_SKIP);
  39. if( !$dsql->IsTable("{$cfg_dbprefix}groups") ) return '没安装圈子模块';
  40. if(!preg_match("#\/$#", $cfg_cmsurl)) $cfg_group_url = $cfg_cmsurl."/group";
  41. else $cfg_group_url = $cfg_cmsurl."group";
  42. $innertext = $ctag->GetInnerText();
  43. if(trim($innertext)=='') $innertext = GetSysTemplets('groupthreads.htm');
  44. $WhereSql = " WHERE t.closed=0 ";
  45. $orderby = 't.'.$orderby;
  46. if($gid > 0) $WhereSql .= " AND t.gid='$gid' ";
  47. $query = "SELECT t.subject,t.gid,t.tid,t.lastpost,g.groupname FROM `#@__group_threads` t
  48. LEFT JOIN `#@__groups` g ON g.groupid=t.gid
  49. $WhereSql ORDER BY $orderby $orderway LIMIT 0,{$row}";
  50. $dsql->SetQuery($query);
  51. $dsql->Execute();
  52. $ctp = new DedeTagParse();
  53. $ctp->SetNameSpace('field', '[', ']');
  54. if(!isset($list)) $list = '';
  55. while($rs = $dsql->GetArray())
  56. {
  57. $ctp->LoadSource($innertext);
  58. $rs['subject'] = cn_substr($rs['subject'], $titlelen);
  59. $rs['url'] = $cfg_group_url."/viewthread.php?id={$rs['gid']}&tid={$rs['tid']}";
  60. $rs['groupurl'] = $cfg_group_url."/group.php?id={$rs['gid']}";
  61. foreach($ctp->CTags as $tagid=>$ctag) {
  62. if(!empty($rs[strtolower($ctag->GetName())]))
  63. {
  64. $ctp->Assign($tagid, $rs[$ctag->GetName()]);
  65. }
  66. }
  67. $list .= $ctp->GetResult();
  68. }
  69. return $list;
  70. }