{diy}
作用:对页面自定义数据进行创建和管理
参数:
id 相对于当前模板的唯一识别号仅限英文和数字,如果该DIY是全局的 则必须以 "global_"开头
name 对该diy 快进行命名,以简明易懂为原则
type diy 类型,目前可选类型有一下6类,其中 news、show、job、team、about 被并称为内容模块,可在后期在前台相互转换类型
static 静态模块
news 文章模块
show 作品模块
job 人才招聘
team 团队成员
about 关于我们
minnum[可选] 最小数据数 默认为1
maxnum[可选] 最大数据数 默认为1
picwidth[可选] 指定图片裁剪宽度
picheight[可选] 指定图片裁剪高度
datestyle[可选] 指定日期/时间显示样式
案例一[type="static"]:
1 2 3 4 5 6 7 8 9 10 11 12 | {diy id="thisid" name="这是名称" type="static" minnum="2" maxnum="10" picwidth="500" picheight="100" datestyle="Y-m-d h:i"} < ul > [loop] [order1 picwidth="600" picheight="200"] < li >< img src = "[$pic]" alt = "[$title]" width = "[$picwidth]" height = "[$picheight]" >[$title]< span >[$dateline]</ span ></ li > [/order1] [order/3 datestyle="Y年m月 h点i分"] < li class = "mr0" >< img src = "[$pic]" alt = "[$title]" width = "[$picwidth]" height = "[$picheight]" >[$title]< span >[$dateline]</ li > [/order/3] < li >< img src = "[$pic]" alt = "[$title]" width = "[$picwidth]" height = "[$picheight]" ></ li > [/loop] {/diy} |
说明:
1、以上例子中是一个静态DIY模块,允许用户最多上传10张图片,如果没有上传图片的话界面上会有两个内容占位。
2、第一张图片以宽度 600 高度 200 来显示。
3、顺序是 3 的倍数的图片的 li 容器应用 "mr0" 类 并以 "Y年m月 h点i分" 的样式里显示发布时间
4、其余的图片按照 diy 定义的参数来显示
案例二[type="news"]:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | {diy id="thisid" name="这是名称" type="news" minnum="2" maxnum="10" picwidth="500" picheight="100" datestyle="Y-m-d h:i"} < h3 >< a href = "[$moreurl]" >[$moretitle] / [$moresubtitle]</ a ></ h3 > < ul > [loop] < li > < img src = "[$pic]" alt = "[$title]" width = "[$picwidth]" height = "[$picheight]" > < span >[$title]</ span > < p > < a href = "[$caturl]" target = "_bank" >栏目:[$cattitle]< em >[$catsubtitle]</ em ></ a > < span >日期:[$dateline]</ span > </ p > </ li > [/loop] {/diy} |
说明:
1、以上例子中是一个新闻模块[news],允许用户最多调用10篇文章,如果没有足够的文章数量的话会有两个内容占位。
2、图片以宽度 500 高度 100 来显示。
3、[$moreurl] [$moretitle] [$moresubtitle] 分别代表 当前DIY 块的 总栏目链接和标题、副标题
4、[$caturl] [$cattitle] [$catsubtitle] 分别代表 当前循环得到的单位数据的所属栏目链接和标题、副标题
注意:
[loop] 指的是将 diy 返回的数据进行数组遍历
[orderX] 指的是指定下标的数据的显示样式
[order/X] 指的是指定数字倍数为下标的数据的显示样式
如果 [orderX] 定位的数据下标和 [order/X] 定位的数据下标相同,则 [orderX] 具有优先性
例子中使用到的 [$pic] [$title] [$dateline] 均指的是当前 DIY 模块可用的字段 其中 [$dateline] 是按照 [order] 中或者是{diy} 中声明的datestyle 参数值来显示时间样式([order] 中声明的属性具有优先性)
[$picheight] 和 [$picwidth] 是用来裁剪图片尺寸的,如果数据中没有图片可省略,如果{diy}中和[order]中均有声明则按照就近原则才有层级最近的声明
实际上 可以在[order]中声明的参数 picheight picwidth datestyle 一样可以在 [loop] 中声明,这在一个 DIY 里面存在多个 [loop] 的时候有用到。只不过这种情况是极少的
{F}
作用:返回文件路径,本方法可以同时在 HTML 模板和 CSS 文件、JS文件中使用,注意在CSS和JS 中使用 的使用参数值必须使用双引号,且每行代码只能使用一次{F},需要注意的是,模板中任何出现文件路径应用的均需使用本方法,否则文件将找不到。
参数:
file 基于模板的文件相对路径
语法:
1 | {F file= "images/banner.png" } |
场景一:使用在HTML模板中
1 2 3 | <a href= "#" > <img src= "{F file=" images/banner.png "}" width= "200" height= "100" alt= "横幅" /> </a> |
场景二:使用在 CSS 文件中
1 | div{ background:url({F file= "images/tel_img.png" }) no-repeat center left;} |
{yun_dump}
作用:在模板中打印变量
参数:
val 需要打印的变量
语法:
1 | {yun_dump val= $val } |
{nocache}
作用:禁止缓存(成对)
语法:
1 2 | {nocache}< htmlcode >{/nocache} //被{nocache}标签包围的地方不进行缓存 需要使用{nocache}包围的地方有: |
需要用户登陆后可操作的地方,如发布文章按钮 和 编辑删除文章按钮等
{foreach}
作用:遍历数组(成对)
例子一:
1 2 3 4 5 | <ul> { foreach $list as $k => $v } <li>编号:{ $k }<a href= "{$_Y['basescript']}-article-{$v['aid']},html" >{ $v [ 'title' ]}</a></li> {/ foreach } </ul> |
上例以数组的键名作为子元素的编号
例子二:
1 2 3 4 5 | < ul > {foreach $list as $v} < li >编号:{$v@index}< a href = "{$_Y['basescript']}-article-{$v['aid']},html" >{$v['title']}</ a ></ li > {/foreach} </ ul > |
上例以数组子元素的下标(从0开始)作为编号
例子三:
1 2 3 4 5 6 | < ul > {foreach $list as $v} < li {if $v@iteration is div by 4} class = "mr0" {/if}>< a href = "{$_Y['basescript']}-article-{$v['aid']},html" >{$v['title']}</ a ></ li > {/foreach} </ ul > |
$v@iteration 指的是循环的次数 从 1 开始,上例意思是在4的倍数的 li 上 应用 mr0 类
{for}
作用: 循环遍历数字 并赋值给 $foo
1 2 3 | {for $foo=1 to 3} < li >{$foo}</ li > {/for} |
{if}
作用:条件判断(成对)
语法
1 2 3 4 5 6 7 | { if $i ==1} <p>i等于1</p> { elseif $i > 1} <p>i大于1</p> { else } <p>i肯定是小于1</p> {/ if } |
{date}
作用:返回格式化日期/时间(单标签)
参数:
style 显示时间的格式 参考:点击跳转
time 格林威治时间戳
语法:
1 | { date style= "Y年m月d日 h:i" time= $v [ 'dateline' ]} |
说明:
上例中的 $v['dateline'] 指的是时间戳变量
{isnavhover}
作用:返回导航高亮状态
参数:
nav 需要判断的导航
class[可选] 如果高亮的话 返回的类,默认为 a
语法:
1 2 3 4 5 6 7 8 9 | <ul class = "nav left cl" > { if $_Y [ 'nav' ][ 'top' ]} { foreach $_Y [ 'nav' ][ 'top' ] as $v } { if $v [ 'level' ] == 1 && $v [ 'open' ]} <li {isnavhover nav= $v }><a href= "{$v['url']}" target= "{$v['target']}" title= "{$v['subtitle']}" >{ $v [ 'title' ]}</a></li> {/ if } {/ foreach } {/ if } </ul> |
以上例子如果当前高亮的导航返回class="a"
{articlebysql}
作用:根据条件取出指定数目的文章信息
参数:
mod 模块简称
return 指定返回的数组名称
catids 栏目ID
pic [可选] 是否过滤无封面内容 如果给定pic 的值(任何非空值)则会过滤无封面图片的文章
limit [可选] 数据条数 如果不给定该值 则默认返回 10 条数据
notaids [可选] 不包含的文章AID 给定的值将不在返回列表里,多个值用逗号隔开
sub [可选] 是否包含下级栏目内容 如果给定sub 的值(任何非空值)则会返回包含下级栏目的数据
语法:
1 2 3 4 5 6 | {articlebysql mod= $_Y [ 'basescript' ] limit=5 return = "list" catids= $cat [ 'catid' ]} <ul> { foreach $list as $v } <li{ if $article [ 'aid' ] == $v [ 'aid' ]} class = "a" {/ if }><a href= "{$_Y['basescript']}-article-{$v['aid']}.html" >{ $v [ 'title' ]}</a></li> {/ foreach } <ul> |
以上例子会返回一个 变量名为 $list 的数组 并使用 foreach 打印出来
1 | { if $article [ 'aid' ] == $v [ 'aid' ]} class = "a" {/ if } |
****此处高亮判断仅在以文章标题为侧栏栏目时适用,非此状态下请删除该判断
{catsbysql}
作用:根据条件返回指定模块的栏目列表
参数:
mod 模块简称
return 返回的数组名称
catid [可选]栏目ID 如果给定值则只返回该栏目在内的下级栏目,否则就返回指定mod下的所有栏目列表
语法:
1 2 3 4 5 6 | {catsbysql mod= "show" return = "showcats" } <ul> { foreach $showcatsas as $v } <li><a href= "show-list-{$v['catid']}-1.html" >{ $v [ 'title' ]}</a></li> {/ foreach } </ul> |
{catbymod}
作用:根据指定模块返回该模块的顶级栏目信息
参数:
mod 模块简称
return 返回的数组名称
语法:
1 2 | {catbymod mod= "show" return = "showcat" } <a href= "show-list-{$showcat['catid']-1.html}" >{showcat[ 'title' ]}</a> |