{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"]:
{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"]:
{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 基于模板的文件相对路径
语法:
{F file="images/banner.png"}
场景一:使用在HTML模板中
<a href="#"> <img src="{F file="images/banner.png"}" width="200" height="100" alt="横幅"/> </a>
场景二:使用在 CSS 文件中
div{ background:url({F file="images/tel_img.png"}) no-repeat center left;}
{yun_dump}
作用:在模板中打印变量
参数:
val 需要打印的变量
语法:
{yun_dump val=$val}
{nocache}
作用:禁止缓存(成对)
语法:
{nocache}<htmlcode>{/nocache} //被{nocache}标签包围的地方不进行缓存 需要使用{nocache}包围的地方有:
需要用户登陆后可操作的地方,如发布文章按钮 和 编辑删除文章按钮等
{foreach}
作用:遍历数组(成对)
例子一:
<ul> {foreach $list as $k => $v} <li>编号:{$k}<a href="{$_Y['basescript']}-article-{$v['aid']},html">{$v['title']}</a></li> {/foreach} </ul>
上例以数组的键名作为子元素的编号
例子二:
<ul> {foreach $list as $v} <li>编号:{$v@index}<a href="{$_Y['basescript']}-article-{$v['aid']},html">{$v['title']}</a></li> {/foreach} </ul>
上例以数组子元素的下标(从0开始)作为编号
例子三:
<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
{for $foo=1 to 3} <li>{$foo}</li> {/for}
{if}
作用:条件判断(成对)
语法
{if $i==1} <p>i等于1</p> {elseif $i > 1} <p>i大于1</p> {else} <p>i肯定是小于1</p> {/if}
{date}
作用:返回格式化日期/时间(单标签)
参数:
style 显示时间的格式 参考:点击跳转
time 格林威治时间戳
语法:
{date style="Y年m月d日 h:i" time=$v['dateline']}
说明:
上例中的 $v['dateline'] 指的是时间戳变量
{isnavhover}
作用:返回导航高亮状态
参数:
nav 需要判断的导航
class[可选] 如果高亮的话 返回的类,默认为 a
语法:
<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 的值(任何非空值)则会返回包含下级栏目的数据
语法:
{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 打印出来
{if $article['aid'] == $v['aid']} class="a"{/if}
****此处高亮判断仅在以文章标题为侧栏栏目时适用,非此状态下请删除该判断
{catsbysql}
作用:根据条件返回指定模块的栏目列表
参数:
mod 模块简称
return 返回的数组名称
catid [可选]栏目ID 如果给定值则只返回该栏目在内的下级栏目,否则就返回指定mod下的所有栏目列表
语法:
{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 返回的数组名称
语法:
{catbymod mod="show" return="showcat"} <a href="show-list-{$showcat['catid']-1.html}">{showcat['title']}</a>