11.JIEQI CMS模板 - 2.赋值变量形式

二、赋值变量形式

1、任何变量必须是 $ 符号开头的一个只能包含英文数字和下划线的字符串,如 {?$my_var?}。

例子:

---------------------------------------------------------------------

程序:

$jieqiTpl->assign('var', 'test string');

模板:

{?$var?}

输出:

test string

---------------------------------------------------------------------

2、变量如果是数组的话,模板里面可以这样表示,如 {?$ary['key']?}、{?$ary['0']['1']?}。方括号里面变量要加上单引号。另外还支持一种表示方法,上面的两个变量可写成 {?$ary.key?}、{?$ary.0.1?}。一般建议使用前一种,比较符合编程规范。

例子:

---------------------------------------------------------------------

程序:

$ary = array('a'=>'str_a', 'b'=>'str_b', 'c'=>array('0'=>'c_0', '1'=>'c_1'));

$jieqiTpl->assign('ary', $ary);

模板:

{?$ary['a']?} | {?$ary.b?} | {?$ary['c']['1']

输出:

str_a | str_b | c_1

---------------------------------------------------------------------

3、如果变量是数组时候,里面的键值也是变量,则可以写成 {?$ary[$key]?}

例子:

---------------------------------------------------------------------

程序:

$key = 'b';

$ary = array('a'=>'str_a', 'b'=>'str_b');

$jieqiTpl->assign('key', $key);

$jieqiTpl->assign('ary', $ary);

模板:

{?$ary[$key]?}

输出:

str_b

12.JIEQI CMS模板 - 3.变量调节器

三、变量调节器

模板变量支持多种调节函数来改变输出效果,模板标签格式为 {?$var|function:var1:var2?}

变量名之后用 |分隔,然后是函数名字,再后面是函数的参数,每个参数用 : 分隔,参数是字符串时候建议用双引号来包括。

常用变量调节器如下:

1、truncate - 截取固定长度字符串,参数一(必要):截取后长度,参数二:附加字符串。

例子:

---------------------------------------------------------------------

程序:

$jieqiTpl->assign('var', '123456789');

模板:

{?$var|truncate:5?} | {?$var|truncate:5:".."?}

输出:

12345 | 123..

---------------------------------------------------------------------

2、subdirectory - JIEQI CMS 里面专用于生成子目录名字的函数,针对数字的处理,无参数。输出格式类似 "/12",其中"/" 是表示开始一个子目录,"12"是子目录名字。

例子:

---------------------------------------------------------------------

程序:

$jieqiTpl->assign('id', 3456);

模板:

/files/article/html{?$id|subdirectory?}/{$id?}/index.html

输出:

/files/article/html/3/3456/index.html

---------------------------------------------------------------------

3、date - 把数字类型的时间格式化成字符串,参数一:格式化字符串

格式化字符含义主要有以下几个:

Y - 四位的年份,如 2007

y - 二位年份,如 07

m - 二位月份,不足补零,从 01 到 12

n - 月份,不补零,从 1 到 12

d - 二位的天数,不足补零,从 01 到 31

j - 天数, 不补零, 从 1 到 31

H - 二位24小时格式,从 00 到 24

h - 二位12小时格式,从 00 到 12

G - 24小时格式,从 0 到 24

g - 12 小时格式,从 0 到 12

i - 二位分数,从 00 到 59

s - 二位秒数,从 00 到 59

例子:

---------------------------------------------------------------------

程序:

$jieqiTpl->assign('time', 1198226131);

模板:

{?$time|date:"Y-m-d H:i:s"?}

输出:

2007-12-21 16:35:31

---------------------------------------------------------------------

4、str_replace - 字符串替换,参数一:查找的字符串,参数二:替换为字符串

例子:

---------------------------------------------------------------------

程序:

$jieqiTpl->assign('var', 'http://www.jieqi.com');

模板:

{?$var|str_replace:"www":"demo"?}

输出:

http://demo.jieqi.com

---------------------------------------------------------------------

5、urlencod,urldecode - 分别是把字符串进行url编码和解码,于在url传递变量情况,无参数

例子:

---------------------------------------------------------------------

程序:

$jieqiTpl->assign('var', 'http://www.jieqi.com');

模板:

{?$var|urlencode?}

输出:

http%3A%2F%2Fwww.jieqi.com

---------------------------------------------------------------------

6、strlen - 计算字符串长度,无参数

例子:

---------------------------------------------------------------------

程序:

$jieqiTpl->assign('var', 'abcd');

模板:

{?$var|strlen?}

输出:

4

---------------------------------------------------------------------

7、default - 变量为空的时候默认输出的值,参数一:默认值

例子:

---------------------------------------------------------------------

程序:

$jieqiTpl->assign('var', 'abcd');

$jieqiTpl->assign('var1', '');

模板:

{?$var|default:"empty"?} | {?$var1|default:"empty"?}

输出:

abcd | empty

---------------------------------------------------------------------

8、sprintf - 格式化输出,参数一:格式化规则

本函数参数是一个字符串,里面可以是任意要输出的字符串,用 % + 类型标志 来表示当前变量格式

常用格式为

%d - 表示数字类型

%06d - 表示显示6位长度的数字类型,位数补足前面补0

%s - 表示字符串类型

例子:

---------------------------------------------------------------------

程序:

$jieqiTpl->assign('var', 123);

模板:

{?$var|sprintf:"%06d"?} | {?$var1|sprintf:"The number is %s"?}

输出:

000123 | The number is 123

13.JIEQI CMS模板 - 4.判断语句

四、判断语句

模板里面的断语句主要由 {?if ...?},{?else?}, {?elseif ...?} 和 {?/if?} 这几个标记配合比较语句组成。

一个完整判断语句由 {?if ...?} 开头 {?/if?} 结束,比较符号包括 ==(等于),!=(不等于),>(大于),=(大于等于)。

判断语句里面支持简单的四则运算,包括 +(加),-(减), *(乘), /(除), %(取余)。

例子:

---------------------------------------------------------------------

程序:

$jieqiTpl->assign('var', 50);

模板:

{?if $var > 40?}big{?else?}small{?/if?}

{?if $var % 5 == 0?}yes{?else?}no{?/if?}

输出:

big

yes

15.JIEQI CMS模板 - 5.循环语句

五、循环语句

循环语句由 {?section name=i loop=$var columns=1?} 开头,{?/section?} 结束。

name=i 的 i 是循环时候的中间变量名(名称可以自由设置,不能和其他变量同名)。

loop=$var 的 $var 是实际内容数组。

columns=1 的 1 是指循环的时候分成几列,可以不写这部分,默认为一列。这个参数主要用于生成多行多列的表格,当这个参数大于1的时候,程序会自动把循环次数补足成列的倍数。比如内容数组一共有6个值,默认循环六次,如果要生成四列的表格,那么循环就会变成8次,这样正好生成4列2行的表格。

在实际使用中,name 后面的变量也会被转换成一个数组,在每次循环里面会相应赋值。如前面的写法,模板里面变量标签是 $i 的一个数组,包含以下内容

固定参数部分:

$i['columns'] - 当前循环是几列的模式。

$i['count']   - 内容数组的单元个数

$i['addrows'] - 多列的时候,附加的循环次数

$i['loops']   - 总的循环次数

循环变量部分:

$i['key']     - 当前数组单元的键值。

$i['value']   - 当前数组单元内容

$i['index']   - 循环的内部序号,从0开始,逐个递增

$i['order']   - 循环的排序,从1开始,逐个递增

$i['row']     - 当前是第几行,从1开始

$i['column']  - 当前是第几列,从1开始

$i['append']  - 当前循环是不是附加循环,0 表示否,1 表示是

例子1:单列循环

---------------------------------------------------------------------

程序:

$var=array('a', 'b', 'c', 'd', 'e');

$jieqiTpl->assign('var', $var);

模板:

{?section name=i loop=$var?}

($var[$i['key']])

{?/section?}

输出:

(a)(b)(c)(d)(e)

备注:上面 $var[$i['key']],$i['value'] 这两种方式表达的值是一样的,另外兼容老版的表达方式 $var[i]

---------------------------------------------------------------------

例子2:多列循环

---------------------------------------------------------------------

程序:

$var=array('a', 'b', 'c', 'd', 'e');

$jieqiTpl->assign('var', $var);

模板:

{?section name=i loop=$var columns=3?}

{?if $i['column'] == 1?}

{?/if?}{?$i['order']?}.{?if $i['append'] == 0?}{?$var[$i['key']]?}{?else?} {?/if?}

{?if $i['column'] == $i['columns']?}

{?/if?}

{?/section?}

输出:

1.a 2.b 3.c
4.d 5.e 6. 

备注:

{?section name=i loop=$var columns=3?} 开始循环,按照3列的模式生成

{?if $i['column'] == 1?}

{?/if?} 每行开始第一列时候,前面加上 标记

{?if $i['column'] == $i['columns']?}

{?/if?} 每行到最后一列时候,后面加上 标记

{?$i['order']?} 数字序号,从1开始递增

{?if $i['append'] == 0?}{?$var[$i['key']]?}{?else?} {?/if?} 如果不是附加字段,则直接输出内容,否则输出

16.JIEQI CMS模板 - 6.页面显示相关配置

六、页面显示相关配置

JIEQI CMS 里面一个页面通常可以有三部分组成,页面框架、主体内容和一定数量的区块。

1、页面框架用于确定整体页面格局,主要包含了页面顶部内容(如:logo、banner、导航链接)、页面底部内容(如:网站声明)、以及中间内容部分的结构(如:分成左中右三列)。系统默认所有的动态程序页面输出都使用同一个框架模板,这样的好处是整站风格统一,并且比较容易修改。

默认的框架模板在网站的 /themes 目录下,每个子目录表示一种网站风格,系统使用那种风格,在后台系统定义里面把风格名称设置成子目录名即可(如:jieqidiv)。

一套标准的风格模板主要包含以下几个文件:

theme.html    - 页面框架模板,适用整个系统,修改网站风格也主要是修改本文件。

style.css     - 通用的css,在theme.html里面调用的,也是整站通用。

jumppage.html - 程序跳转页面模板,比如用户登录时候,那个跳转过渡的小窗口。

msgbox.html   - 内容提示方块模板,通常这个提示信息是指插入到其他页面的。

msgwin.html   - 内容提示页面模板,跟msgbox.html不同,这是一个完整的提示页面。

msgerr.html   - 错误信息提示模板,也是一个完整的提示页面。

2、主体内容部分是指本页面主要显示的数据,通常用一个单独的模板。如用户登录后,打开个人资料页面,个人资料的表格就是主体内容部分,头尾都套用页面框架,而左侧的“用户设置”、“短消息”、“工具箱”则是本页调用的区块。

主体内容模板,系统功能部分模板就在网站的 /templates 目录下,而其他模块的模板在 /modules/模块名/templates 目录,如小说连载模块是 /modules/article/templates, 论坛模块是 、/templates/forum/templates。

内容模板的命名规则基本和对应的程序相关联,后缀名是 .html

如:

/userdetail.php  对应模板 /templates/userdetail.html

/modules/article/articleinfo.php 对应模板 /modules/article/templates/articleinfo.html

3、区块是一些内容小方块,如果用户登录区块,排行榜区块。所有区块都允许在网站任何页面调用。在一个页面调用区块主要有三种模式:

3.1 标准的框架 + 区块配置文件:这种是默认的显示模式,框架部分使用系统默认的,而一个页面显示几个区块和区块放在什么位置皆在区块配置文件之中。调整区块位置和区块数量只需要调整这个配置文件。

3.2 定制的页面模板 + 区块配置文件:这种模式调用哪几个区块仍旧在区块配置文件中,而区块显示位置由模板里面直接控制,通常定制页面就用这种方法。

3.3 直接在模板中设置区块及参数,不使用区块配置文件:这种就相当于把模板和区块配置合并一起了,任何调整都修改这个模板。

17.JIEQI CMS模板 - 7.页面定制(一)七、页面定制

1、定制一个页面,不使用系统框架,通常用于设计一个独立的页面,不使用系统默认的导航,但是可能需要系统变量或者调用系统区块。

主要程序部分如下:

define('JIEQI_MODULE_NAME', 'system');  //定义本页面属于那个模块

require_once('global.php'); //包含通用程序,每个页面必须高喊

jieqi_getconfigs(JIEQI_MODULE_NAME, 'blocks'); //包含区块参数,如果需要在页面调用区块的话

//本函数第一个书模块名,第二个是区块配置文件名,配置文件皆在 /configs 目录下,如上例对应的文件是 /configs/blocks.php

$jieqi_page_template=JIEQI_ROOT_PATH.'/templates/custom.html'; //设置该页面的模板文件

include_once(JIEQI_ROOT_PATH.'/header.php'); //包含页头处理

$jieqiTpl->assign('jieqi_indexpage',1);  //设置首页标志,不是首页请注释本语句,便于模板里面可以判断,给模板其他参数赋值也用这个方法

include_once(JIEQI_ROOT_PATH.'/footer.php');  //包含页尾处理

?>

模板部分可以使用系统标签,如 {?$jieqi_url?}

也可以在载入区块配置的前提下,在模板适当位置加入显示区块的标签,标签写法如下:

区块的标题调用方式为 {?$jieqi_pageblocks['bidXXX']['title']?} 里面的 XXX 是指实际的区块序号,可以在区块管理里面看到,或者在区块配置文件中对应的 bid。

区块内容的调用方式为 {?$jieqi_pageblocks['bidXXX']['content']?} 规范跟标题相同。

posted on 2009-09-06 23:50 常言笑 阅读(1078) 评论(0)  编辑  收藏

java短信模板变量参数赋值_JIEQI CMS模板制作必读(JIEQI CMS模板 - 2.赋值变量形式)...相关推荐

  1. Java 短信发送 ( 腾讯云)

    Java 短信发送 (保姆级使用说明) 该功能可包括验证码短信,通知短信,调用腾讯云SDK,阿里云腾讯云大同小异,只是当时申请的时候,腾讯云支持公众号申请 ( 现在阿里云也支持了). 1. 前期准备 ...

  2. 云之讯java短信验证码真小白教程

    准备:eclipse,浏览器 第一步:打开云之讯官网,先注册,注册后,如下图(可以看到送了些钱): 第二步:认证个人开发者/企业开发(认证后可以创建应用),如下图: 认证之后 第三步:创建应用,如图: ...

  3. java短信发送接口代码示例demo分享

    适用类型:适用于各类办公系统.ERP.CRM.电子商务平台的插件(如网站app短信验证码.群发短信会议通知.会员/客户关系交流.订单生成通知.发货通知.日程提醒.催费通知等等) 接 口特 点: 绿色短 ...

  4. SP服务商Java短信平台的软件模型和实现(吴宏杰,赵雷,杨季文,苏州大学计算机科学和技术学院)...

    1.    引言  近年来,随着短信增值业务的繁荣,以短信为基础的产业链逐渐形成.在这条产业链中,网络提供商(例如:中国移动.中国联通)作为网络平台的提供者,向SP服务商(Service Provid ...

  5. JAVA 短信API接口调用 附 文档 Demo

    JAVA 短信API接口调用 附 文档 Demo 1.请求地址 http://host:port/sms 请求方式可以 POST 和 GET方式,建议采用POST方式 2.参数说明 参数需要 URLE ...

  6. java 防止恶意刷短信验证码_用户使用java短信验证码时要做好三个保护

    java短信验证码的出现,对企业来说,是减少了运营费.人工费.操作费,带来了方便也带了利益:对于广大用户朋友来说,它也保护了个人的信息安全,确保了自己网上支付时没有威胁风险.但是有些朋友对于java短 ...

  7. java短信验证码实现_社交APP开发短信验证是通过什么技术实现

    我们已经习惯通过手机APP来解决我们生活中的一些问题,社交APP用来聊天交友,购物APP用来购买生活所需用品,游戏APP用来消遣娱乐,移动互联网行业正在飞速发展. 不难发现我们手机里面的各种APP都有 ...

  8. java短信接口发送的这三种短信,你收到过几种?

    不同的行业应用java短信接口的用途不一样,但大多数都是用于传递消息.加强服务.提高安全性,因而一般情况下java短信接口会发送通知类短信.问候类短信.营销类短信及广告类短信,具体的让我们一起来了解下 ...

  9. 怎样解决PHP、JAVA短信验证码api发送失败?

    初次使用PHP.JAVA短信验证码平台接口API,很多企业用户都会遇到一些问题,尤其是验证码发送失败的问题,更是数不胜数.那么,短信验证码为什么会发送失败呢?如何才能快速解决呢?下面为大家详细说一说验 ...

最新文章

  1. 在一个数组中查找两个重复出现的数字
  2. 管理敏捷需求,进行需求协作
  3. 阿里云、Amazon、Google云数据库方案架构与技术分析
  4. JavaScript:window.onload问题
  5. Python :集合推导式和字典推导式
  6. python学全栈还是运维_Python全栈学习——Python基础及Web开发
  7. 方法重写(Java篇)
  8. P3959-宝藏【模拟退火】
  9. 链表反转的两种实现方法,后一种击败了100%的用户!
  10. 使用ArcSDE SQL操作怎么获得新对象的objectid、GUID
  11. 从零开始实现霍夫变换检测图像直线算法 python
  12. python matplotlib 保存图片失真_Python matplotlib线框失真
  13. 深度学习2.0-23.Keras高层接口之模型的加载与保存
  14. 【PPT已更新】给开发者的区块链技术指南 | JTalk 掘金线下活动第五期
  15. DLL注入explorer.exe进程
  16. RFBNet详细讲解(附图文解释)
  17. 《设计模式》笔记 02 - 实例研究:设计一个文档编辑器
  18. 跨境电商新手如何建立正确的运营思路
  19. Svn修改自己已经提交的备注
  20. java怎么在控制台输入数字,并保存到数组里?

热门文章

  1. 华为FreeBuds SE耳机有杂音异响的解决办法
  2. 通信码元速率和带宽理解
  3. Telegram Android开源源码运行
  4. Template by 2015ljn
  5. error LNK2005:
  6. java中string长度有限制吗,最大是多少?
  7. 【机器学习】使用Matlab和CNN完成回归任务
  8. 【音视频基础】(七):CIE颜色空间三之从CIE-XYZ到CIE-xyY
  9. 使用PYTHON图像识别实现车牌号码识别的程序
  10. Android消息处理机制Message,Looper,Handler