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

68 line
2.4KB

  1. <?php if(!defined('DEDEINC')) exit('Request Error!');
  2. /**
  3. * 圈子调用标签
  4. *
  5. * @version $Id: group.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:group row='6' orderby='threads' titlelen='30'}
  18. <li>
  19. <span><img style="visibility: inherit;" title="[field:groupname/]" src="[field:icon/]" /></span>
  20. <span><a href="[field:url/]" title="[field:groupname/]" target="_blank">[field:groupname/]</a></span>
  21. </li>
  22. {/dede:group}
  23. </demo>
  24. <attributes>
  25. <iterm>row:调用条数</iterm>
  26. <iterm>orderby:排列顺序(默认是主题数)</iterm>
  27. <iterm>titlelen:圈子名称最大长度</iterm>
  28. </attributes>
  29. >>dede>>*/
  30. function lib_group(&$ctag,&$refObj)
  31. {
  32. global $dsql, $envs, $cfg_dbprefix, $cfg_cmsurl;
  33. //属性处理
  34. $attlist="row|6,orderby|threads,titlelen|30";
  35. FillAttsDefault($ctag->CAttribute->Items,$attlist);
  36. extract($ctag->CAttribute->Items, EXTR_SKIP);
  37. if( !$dsql->IsTable("{$cfg_dbprefix}groups") ) return '没安装圈子模块';
  38. if(!preg("#\/$#", $cfg_cmsurl)) $cfg_group_url = $cfg_cmsurl.'/group';
  39. else $cfg_group_url = $cfg_cmsurl.'group';
  40. $innertext = $ctag->GetInnerText();
  41. if(trim($innertext)=='') $innertext = GetSysTemplets("groups.htm");
  42. $list = '';
  43. $dsql->SetQuery("SELECT groupimg,groupid,groupname FROM `#@__groups` WHERE ishidden=0 ORDER BY $orderby DESC LIMIT 0,{$row}");
  44. $dsql->Execute();
  45. $ctp = new DedeTagParse();
  46. $ctp->SetNameSpace('field', '[', ']');
  47. while($rs = $dsql->GetArray())
  48. {
  49. $ctp->LoadSource($innertext);
  50. $rs['groupname'] = cn_substr($rs['groupname'], $titlelen);
  51. $rs['url'] = $cfg_group_url."/group.php?id={$rs['groupid']}";
  52. $rs['icon'] = $rs['groupimg'];
  53. foreach($ctp->CTags as $tagid=>$ctag)
  54. {
  55. if( !empty($rs[strtolower($ctag->GetName())]) ) {
  56. $ctp->Assign($tagid,$rs[$ctag->GetName()]);
  57. }
  58. }
  59. $list .= $ctp->GetResult();
  60. }
  61. return $list;
  62. }