咨询,就免费赠送域名与服务器,咨询热线:18670727589当前位置: 首页 > 建站知识 > 二次开发 > 其他二次开发 >
推荐内容
联系我们
电话咨询:18670727589
E-mail:xiaoqiping#vip.qq.com
地址: 光大发展大厦南栋29楼(候家塘南车站旁)

皇冠体育在线投注二次开发教程之模板引擎(规则)

祈网:皇冠体育在线投注建设首选服务提供商   作者/整理:祈网   来源:互联网   2015-08-23

海盗模板引擎

海盗云商系统(以下简称海盗)的模板引擎是基于原始PHP的「解释型」模板文件引擎,故无论在模板文件里如何编写标签代码,引擎均会转换为原始PHP语句进行解析。

也就是说,在海盗系统里,是可以直接书写原生PHP语句来执行的。

什么是标签

标签存在的意义即是将原本复杂的原始PHP数据调用语句封装为简单易懂的格式化标签,便于归纳整理及团队协作。比如,让前端工程师直接完成数据的调用而不需知晓其内部的构造及原理。

标签书写格式

在「海盗」里,所有的标签书写格式有如下两种类型:

  • 独立式标签:{标签}
  • 闭合式标签:{标签}{/标签}

「独立式标签」通常用于直接调用某个变量,而「闭合式标签」则通常用于调用数据列表,条件判断等各种复杂的功能。我们会在下面逐渐讲到。

通用标签

变量

所谓「变量」,即是一个可变的量。通常由后台具体业务的执行结果所决定。它的调用方式为「独立式」标签:{变量名} ,比如:{$site_name} 表示「站点标题」,最终该标签会转换为原始的PHP语法:

<?php echo $site_name;?>

常量

所有「常量」,即是一个固定的值。通常是在系统初始化的同时所定义的,它不能重复定义,也不能被外部值所更改。在海盗里,直接通过{常量名}调用即可。例如:

{CHARSET}

代表系统编码(utf-8)

函数

在海盗中,支持在模板文件里直接调用所有系统全局函数。调用方式为:

{函数名(参数)}

其中,函数名即已封装好的用于各种通用数据或业务的处理。而_参数_则根据具体该函数的定义或要求决定是否传递的值。例如:

{is_login()}

代表检测当前用户是否登录,并返回用户的ID

条件

模板支持对动态数据的条件判断,根据不同条件输出最终的数据。

  • 单一条件:
{if 条件}
    输出内容
{/if}

会解析为:

<?php
if(条件) {
    echo '输出内容';
}
?>

如果是带有否则的,那么会:

{if 条件}
    条件输出
{else}
    否则输出
{/if}

转换为:

<?php
if(条件) {
    echo '条件输出';
} else {
    echo '否则输出';
}
  • 多重条件
{if 条件1}
    条件输出1
{elseif 条件2}
    条件输出2
{else}
    否则输出
{/if}

转换为:

<?php
if(条件1) {
    echo '条件输出1';
} elseif(条件2) {
    echo '条件输出2';
} else {
    echo '否则输出';
}
?>

循环

循环标签通常用于对数组的循环输出,一般在模板中以「列表」的形式体现。比如热门商品。它的基本格式为:

{loop 数组 指针 变量}
    变量
{/loop}

通常情况下「指针」可以留空。系统默认以变量$n存在。

内容标签

系统的「内容标签」是海盗系统中的核心标签,也是在模板制作中最常见的标签之一。我们必须熟练掌握「内容标签」的知识,才能制作出满足各种需求的个性化模板。

商品列表标签 goods

标签详解

参数 默认值 描述
catid 0 所在分类,默认为全部分类
num 12 调用商品数量
brandid 0 商品所属品牌ID,0为不限制
status 1 商品上架状态
statusext empty 商品拓展状态(1:促销;2:热卖;3:新品)
order empty 排序方式
where empty 商品附加条件,传入原生SQL语句
page $page 当前分页(存在此参数则代表标签支持分页)

调用实例

调用 5 件最新商品完整代码:

{hd:goods actions="lists" catid="0" num="5"}
    {loop $data $r}
        商品标题:{$r[name]}
    {/loop}
{/hd}

分类列表标签 category

分类列表用于调用商品分类的标签,通常用于页面的导航条、左侧所有分类等效果。

标签详解

参数 默认值 描述
catid 0 上级分类ID,若存在此值,则代表调用子分类列表
num 12 调用数量
order empty 排序方式
type empty 分类类型(nav:导航;normal:列表;默认:既是导航也是列表)
only 0 指定分类调用(支持多个),若该参数为1:catid即为指定分类ID,多个可用','分隔

调用实例

调用 10 个顶级分类

{hd:category action="lists" num="10"}
{loop $data $r}
    分类名称:{$r[name]}
{/loop}
{/hd}

调用 5个 指定分类

{hd:category action="lists" catid="1,2,3,4,5" only="1"}
{loop $data $r}
    分类名称:{$r[name]}
{/loop}
{/hd}

商品咨询列表 consult

标签详解

参数 默认值 描述
goods_id 0 商品ID;可用","分割多个ID
product_id 0 产品ID;同上
user_id 0 用户ID
isreply 1 是否回复(1:已回复;0:待回复)
num 12 调用数量
status 1 审核状态

调用示例

{hd:consult action="lists" goods_id="1" num="8"}
    --
{/hd}

商品评论列表 comment

商品评论一般可用于商品详情页下方将所有该商品的评论读取出来,方便用户参考对比。

标签详解

参数 默认值 描述
goods_id 0 商品ID;可用","分割多个
product_id 0 产品ID;同上
user_id 0 用户ID
order_id 0 所属订单号
num 12 调用数量
status 1 审核状态(1:已审;0:未审)

调用示例

{hd:comment action="lists" goods_id="1" num="8"}
    --
{/hd}

文章分类列表

标签详解 artcat

参数 默认值 描述
parent_id 0 父ID
num 12 调用条数
where empty 附件条件;原生SQL查询语句
order empty 排序方式
page $page 分页位置

调用实例

{hd:artcat action="lists" num="10"}
    --
{/hd}

品牌列表

标签详解

参数 默认值 描述
status empty 状态;默认全部,0:禁用 1:显示
isrecommend empty 推荐;默认全部,0:否 1:是
catid empty 商品分类ID查找
num 20 调用条数
where empty 附件条件;原生SQL查询语句
order empty sort倒序ID倒序

调用实例

{hd:brand action="lists" num="10" order="sort asc" catid="35"}
    --
{/hd}

广告标签 advpostion

标签详解

参数 默认值 描述
position_id 0 广告位ID,用于调用指定广告时使用
num 12 调用数量
type empty 类型(1:图片;2:文字;3:代码;4:flash)
title empty 广告标题
order empty 排序方式

调用实例

  • 随机调用 5 条图片广告
{hd:advposition action="lists" num="5" order="rand()"}
    --
{/hd}
  • 调用指定广告
{hd:advposition action="lists" postion_id="2"}
    --
{/hd}

友情链接标签 links

标签详解

参数 默认值 描述
num 12 调用数量
order empty 排序方式

调用实例

{hd:links actions="lists" num="5"}
    --
{/hd}

至此,所有的内置标签介绍完毕。

注意事项

所有的「内容标签」均会返回一个数组。您可以直接通过打印该数据来获取最终的元素集合。并且通过「通用标签」的数组循环loop来实现最终的数据调用。返回数据的的数组变量为$data。例如:

{loop $data $r}
    <li><a href="{$r[link]}">{$r[title]}</a></li>
{/loop}
祈网专业承接海盗系统(Haidao)、Destoon系统、echsop、DTcms系统二次开发、模板制作,QQ:523680272