国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

71 rinda
2.3KB

  1. <?php if(!defined('DEDEINC')) exit('Request Error!');
  2. /**
  3. * 自定义宏标记调用标签
  4. *
  5. * @version $Id: mytag.lib.php 1 9:29 2010年7月6日Z tianya $
  6. * @package DedeCMS.Taglib
  7. * @copyright Copyright (c) 2020, DedeBIZ.COM
  8. * @license https://www.dedebiz.com/license
  9. * @link https://www.dedebiz.com
  10. */
  11. /*>>dede>>
  12. <name>自定义宏标记</name>
  13. <type>全局标记</type>
  14. <for>V55,V56,V57</for>
  15. <description>用于获取自定义宏标记的内容</description>
  16. <demo>
  17. {dede:mytag typeid='0' name=''/}
  18. </demo>
  19. <attributes>
  20. <iterm>name:标记名称,该项是必须的属性,以下 2、3是可选属性</iterm>
  21. <iterm>ismake:默认是 no 表示设定的纯HTML代码, yes 表示含板块标记的代码</iterm>
  22. <iterm>typeid:表示所属栏目的ID,默认为 0 ,表示所有栏目通用的显示内容,在列表和文档模板中,typeid默认是这个列表或文档本身的栏目ID</iterm>
  23. </attributes>
  24. >>dede>>*/
  25. function lib_mytag(&$ctag, &$refObj)
  26. {
  27. $attlist = "typeid|0,name|,ismake|no";
  28. FillAttsDefault($ctag->CAttribute->Items,$attlist);
  29. extract($ctag->CAttribute->Items, EXTR_SKIP);
  30. if(trim($ismake)=='') $ismake = 'no';
  31. $body = lib_GetMyTagT($refObj, $typeid, $name, '#@__mytag');
  32. //编译
  33. if($ismake=='yes')
  34. {
  35. require_once(DEDEINC.'/arc.partview.class.php');
  36. $pvCopy = new PartView($typeid);
  37. $pvCopy->SetTemplet($body,"string");
  38. $body = $pvCopy->GetResult();
  39. }
  40. return $body;
  41. }
  42. function lib_GetMyTagT(&$refObj, $typeid,$tagname,$tablename)
  43. {
  44. global $dsql;
  45. if($tagname=='') return '';
  46. if(trim($typeid)=='') $typeid=0;
  47. if( !empty($refObj->Fields['typeid']) && $typeid==0) $typeid = $refObj->Fields['typeid'];
  48. $typesql = $row = '';
  49. if($typeid > 0) $typesql = " And typeid IN(0,".GetTopids($typeid).") ";
  50. $row = $dsql->GetOne(" SELECT * FROM $tablename WHERE tagname LIKE '$tagname' $typesql ORDER BY typeid DESC ");
  51. if(!is_array($row)) return '';
  52. $nowtime = time();
  53. if($row['timeset']==1
  54. && ($nowtime<$row['starttime'] || $nowtime>$row['endtime']) )
  55. {
  56. $body = $row['expbody'];
  57. }
  58. else
  59. {
  60. $body = $row['normbody'];
  61. }
  62. return $body;
  63. }