将博CMS论坛

注册

 

发新话题 回复该主题

内容循环标签自定义函数的二次扩展 [复制链接]

1#
这次用实例说明自定义2个函数:加法、url加密:
1、运行JumbotCMS项目;
2、打开JumboTCMS.TEngine下的TemplateManager.cs文件;
3、在 void Init()下加上如下语句
  1. functions.Add("urlencode", new TemplateFunction(FuncUrlEncode));
  2. functions.Add("add", new TemplateFunction(FuncAdd));//2012-09-14增加
复制代码
4、添加如下函数
  1.         /// <summary>
  2.         /// UrlEncode编码
  3.         /// </summary>
  4.         /// <param name="args"></param>
  5.         /// <returns></returns>
  6.         object FuncUrlEncode(object[] args)
  7.         {
  8.             if (!CheckArgCount(1, "urlencode", args))
  9.                 return null;
  10.             return System.Web.HttpUtility.UrlEncode(args[0].ToString());
  11.         }
  12.         /// <summary>
  13.         /// 加法
  14.         /// </summary>
  15.         /// <param name="args"></param>
  16.         /// <returns></returns>
  17.         object FuncAdd(object[] args)
  18.         {
  19.             if (!CheckArgCount(2, "add", args))
  20.                 return 0;
  21.             try
  22.             {
  23.                 int value1 = Convert.ToInt32(args[0]);
  24.                 int value2 = Convert.ToInt32(args[1]);
  25.                 return value1 + value2;
  26.             }
  27.             catch
  28.             {
  29.                 return 0;
  30.             }
  31.         }
复制代码
5、之后就可以在内容循环标签中使用add和urlencode了
分享 转发
TOP
2#

<jcms:contentloop channelid="0" classid="0" repeatnum="10" fields="[title],adddate">
<#foreach content>
编号: ${i}(
<#if test="${isodd(i)}">
奇数
<#else>
偶数
<#/if>
)<br />
编号加1:${add(i,1)}<br />
编号减1:${add(i,-1)}<br />
原标题:${field.title}<br />
标题length:${length(field.title)}<br />
标题前5个字节:${cutstring(field.title,5)}<br />
标题htmlencode:${htmlencode(field.title)}<br />
标题urlencode:${urlencode(field.title)}<br />
录入时间:${cdatestring(field.adddate,"yyyy年MM月dd日")}<br />
<#/foreach>
</jcms:contentloop>
TOP
发新话题 回复该主题