Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

模板里经常用到以下几个标签的说明

[复制链接]
lidq.jingwu 发表于 2009-7-23 18:08:58 | 显示全部楼层 |阅读模式
本帖最后由 lidq.jingwu 于 2009-7-23 18:44 编辑

一、{block name="" parameter=""}:它对应的是模块功能,实现数据调用的就是它
        如调用系统分类的数据:
  1. <!--{block name="category" parameter="type/news/isroot/1/order/c.displayorder/limit/0,12/cachetime/80800/cachename/category"}-->
复制代码
它有两个参数一个是name,一个是parameter,其中name后面跟的是表名,parameter后面跟的是查询数据的参数,如果对这些参数搞不懂的话可以去看下面的几个教程:
        SupSite 7.0 页面文件与模块关系说明:http://faq.comsenz.com/viewnews-507
        教您如何读懂模块代码里的参数:http://faq.comsenz.com/viewnews-312
        SupeSite7.0数据调用模块参数详解:http://faq.comsenz.com/viewnews-696
        parameter 的值中比较特殊的是 sql ,它后面跟的是转义后的 SQL 语句,这种 SQL 语句是在模块功能的高级模式里面产生的,如如调用注册会员数:
  1. <!--{block name="tag" parameter="sql/SELECT%20count%28%2A%29%20AS%20num%20FROM%20supe_members/limit/0,1/cachetime/900/cachename/membernum/tpl/membernum"}--><!--membernum-->
复制代码
二、#date(日期时间格式, 时间戳)#:它的作用是将时间戳转换为时间格式
        日期/时间格式只能是某些字符的组合,关于它们的介绍在最下面。
        时间戳,它是一个长度为10的整数,是计算的1970年1月1日零时起所过去的秒数。
        如:#date("Y年n月j日", 1248316413)#对应的时间是:2009年7月23日

三、#uid/$uid/op/$param#与#action/参数#,这两个标签解析后将会转换成url
第一种:#uid/$uid/op/$param#
        $uid是变量,是会员的UID号且必填的
        op是参数,值只能是:bbs,uchphoto,uchblog,news。
        #uid/1/op/bbs#它转换成URL是URL?uid-1-op-bbs
第二种:#action/$value1/$value2/$value3/#,它后面的值可以是多个,并没有限制,只要在地址栏里面能够访问,就能写成这个形式。
        #action/announcement# 对应的是 URL?action-announcement
        #action/forumdisplay/fid/$cat[fid]# 对应的是 URL?action-forumdisplay-fid-$cat[fid],$cat[fid]是模板中的变量,最终会被转换为数值。

四、{template $name},它的作用就是包含其他的模板
$name参数是模板名,如header.html.php,则模板名为:header
在模板文件中都会有这样一句:{template header} 意思就是加载header.html.php模板。


五、{eval php语句},它相当于php中的eval函数,作用就是将大括号中的语句作为php语句来执行
        {eval $i=1;},将$i赋值为1
        注意:在用{eval php语句}时中间不要出现“{”、“}”,否则系统会无法解析里面的php语句,建议写成一行一句的样式。


六、{echo $value},作用是输出字符
        $value 只能是字符串
        {eval $value="你好";}
        {echo $value}将显示:你好。

七、{if $value},{elseif $value},{else},{/if}:这几个标签组合起来将转换成if/else语句,$value是if语句的条件,在它后面不用写括号
在index.html.php模板文件关于调查的代码中有以下几句用的就是这几个标签:
  1.        
  2.         <!--{if empty($_SBLOCK['poll'])}-->
  3.         <li>暂时没有调查</li>
  4.         <!--{else}-->
  5.         <!--{loop $_SBLOCK['poll'] $value}-->
  6.         <li><a href="$value[url]" title="$value[subjectall]">$value[subject]</a></li>
  7.         <!--{/loop}-->
  8.         <!--{/if}-->
复制代码
意思是判断$_SBLOCK['poll']是否为空,为空则显示“暂时没有调查”,不为空则显示出调查的数据。

八、loop循环,有两种形式
1、{loop $value1 value2} {/loop}将转换成foreach($value1 as $value2){}语句,作用是遍历数组
$value1是要遍历的数组,$value2是每次遍历的值
在index.html.php模板文件关于公告的代码中有以下几句用的就是这几个标签:
        <!--{loop $_SBLOCK['announce'] $value}-->
        <li><a href="$value[url]" title="$value[subjectall]">$value[subject]</a></li>
        <!--{/loop}-->
意思是遍历$_SBLOCK['announce']数组,将每次结果放入$value里面。

2、{loop $value1 $value2 $value3} {/loop}将转换成foreach($value1 as $value2=>$value3){}的形式,
$value1是要遍历的数组,$value2中数组的key值,$value3是key值对应的值。
在index.html.php模板文件展示导航条的代码中有以下几句用的就是这几个标签:

  1.         <!--{loop $channels['menus'] $key $value}-->
  2.         <li><a href="$value[url]">$value[name]</a></li>
  3.         <!--{/loop}-->
复制代码
意思是遍历$channels['menus']数组,将每次遍历的key值放入$key,将结果放入$value。

日期/时间格式允许使用的字符(注意大小写)

1、日期格式:
年:
        L:是否为闰年,如果是闰年则为1,否则为0;
        o(O的小写形式):ISO-8601格式年份数字。这和Y的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加入),例如1999,2003;
        Y:4 位数字表示的完整年份,例如1999,2003;
        y:2 位数字表示的年份,例如99,03;
月:
        F:月份,完整的文本格式,例如 January 或者 March;
        m:数字表示的月份,有前导零,01 到12;
        M:三个字母缩写表示的月份,例如Jan到Dec;
        n:数字表示的月份,没有前导零,1到12;
        t:给定月份所应有的天数,例如28,30,31;
日:
        d:月份中的第几天,有前导零的两位数字,例如01 到 31;
        D:星期中的第几天,以文本表示,截取对应英文名称的前三个字母,例如Mon到Sun;
        j:月份中的第几天,没有前导零,例如1 到 31;
        l(L的小写形式):星期几,完整的文本格式,例如Sunday到Saturday;
        N:ISO-8601格式数字表示的星期中的第几天(PHP 5.1.0新加入),例如1(表示星期一) 到7(表示星期日);
        S:每月天数后面的英文后缀,2 个字符,例如st,nd,rd和th,可以和j一起使用;
        w(W的小写形式):星期中的第几天,数字表示,例如0(表示星期日) 到 6(表示星期六);
        z(Z的小写形式):年份中的第几天,例如0 到 366;
周数:
        W:ISO-8601格式年份中的第几周,每周从星期一开始(PHP 4.1.0新加入),例如:42(当年的第42周);
2、时间(time)格式:
        a:小写的上午和下午值,am或pm;
        A:大写的上午和下午值,AM或PM;
        B:Swatch Internet 标准时,000到999;
        g:小时,12 小时格式,没有前导零,1到12;
        G:小时,24 小时格式,没有前导零,0到23;
        h:小时,12 小时格式,有前导零,01到12;
        H:小时,24 小时格式,有前导零,00到23;
        i:有前导零的分钟数,00到59;
        s:秒数,有前导零,00到59;

评分

4

查看全部评分

h9999h 发表于 2009-7-24 13:18:45 | 显示全部楼层
不错,收藏了。
回复

使用道具 举报

qloog 发表于 2009-7-29 11:52:50 | 显示全部楼层
看完之后又明白不少阿!收藏了!
回复

使用道具 举报

ppcynt 发表于 2009-7-30 21:34:17 | 显示全部楼层
OK 收藏了先
回复

使用道具 举报

abcnic 发表于 2009-8-4 16:13:50 | 显示全部楼层
写的很详细!!
回复

使用道具 举报

俊客 发表于 2009-8-5 22:01:00 | 显示全部楼层
这个一定要收藏
回复

使用道具 举报

iyuci 发表于 2009-8-7 10:44:02 | 显示全部楼层
好东西,学习了。
回复

使用道具 举报

shizenghua 发表于 2009-8-8 10:29:49 | 显示全部楼层
好东西,学习了。
回复

使用道具 举报

seamkong 发表于 2009-8-9 20:02:16 | 显示全部楼层
好东西,学习了。
回复

使用道具 举报

thth12 发表于 2009-8-14 01:42:33 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-1-24 07:04 , Processed in 0.043602 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表