搜索
首页后端开发php教程destoon官方标签大全_PHP

什么是标签调用?

标签调用是根据调用条件(condition)从数据表(table)读取调用数量(pagesize)条数据,并按排序方式(order)排序,最终通过标签模板的布局输出数据。
可以看出,标签的工作分两个部分,一是读取数据,二是显示数据。
标签函数原型

标签函数保存于 include/tag.func.php
tag($parameter, $expires = 0)
$parameter 表示传递给tag函数的字符串,系统自动将其转换为多个变量
例如传递 table=destoon&pagesize=10&hello=world
系统相当于得到
$table = ‘destoon';
$pagesize = 10;
$hello = ‘world';
三个变量
$expires 表示标签缓存过期时间>0 缓存$expires秒;0 – 系统默认标签缓存时间;-1 – 不缓存;-2 – 缓存SQL结果;
一般情况保持默认不需要传递。


数据读取过程

例如以下标签:

<!–{tag(“table=sell&condition=status=3&order=addtime desc&pagesize=10″)}–>

会被转换为如下的SQL语句:

SELECT *
FROM destoon_sell
WHERE status=3
ORDER BY addtime DESC
LIMIT 0,10

读出的数据会保存在 $tags 数组里
数据显示过程

1、通过标签模板显示
传递&template=abc给标签函数,例如:

<!–{tag(“table=…&template=abc”)}–>

默认的标签模板保存在模板目录/tag/目录里,例如&template=abc将调用模板目录/tag/abc.htm模板来显示数据
如果标签模板放于其他目录,例如def,则传递&dir=def&template=abc,系统将调用模板目录/def/abc.htm模板

2、直接在模板里循环数据

<!–{php $tags=tag(“table=…&template=null”);}–>


此写法传递标签模板为null,并且直接返回数据给$tags数组,此时可以直接在模板里循环了
以下为一个完整的示例:

<!–{php $tags=tag(“table=…&template=null”);}–>
{loop $tags $t}
…
{/loop>

第一种写法一般用于多次调用的数据,第二种写法一般用于只调用一次的数据。
常用参数及含义

moduleid
moduleid指模块ID,可在后台模块管理里查询。对于直接调用模块的数据,设置正确的模块ID后,将不需要传递table参数,系统会自动获取。
例如传递moduleid=5,系统将识别为调用供应信息,自动设置table参数为sell

table
table指表名,可在后台数据库维护里查询。对于Destoon系统表,不需要加表的前缀;对于非Destoon系统表,需要填写完整的表名,且传递prefix参数
例如对于Destoon系统表,传递table=sell,如果表前缀为destoon_,系统将识别表名为 destoon_sell
对于非Destoon系统表,传递table=tb_abc&prefix=或者table=abc&prefix=tb_,系统将识别表名为 tb_abc

fields
fields指查询的字段,默认为*。可以传递例如 fields=title,addtime,但是一般情况下无需传递,Destoon独有的标签缓存机制会自动缓存查询结果,不必担心效率问题。

condition
condition指查询的条件,如果不传递,则为1,代表任意条件的数据(此项需了解SQL语法)。Destoon所有模块遵循统一标准开发,所以很多条件是通用的。
例如 status=3表示正常通过的信息、status=3 and level=1表示级别为1的信息、status=3 and thumb”表示有标题图片的信息等。

order
order指数据的排序方法(此项需了解SQL语法)。
例如order=addtime desc表示按添加时间降序排列、order=itemid desc表示按itemid降序排列、order=rand()表示随机数据等。

pagesize
pagesize指调用数据的数量,如果不传递,默认为10。

template
template指指定的标签模板,如果不传递,默认为list,位于模板目录/tag/list.htm,如果传递为null,表示不应用标签模板。参见上述数据显示过程。
其他常见用法举例

多表联合查询
例如查询会员名为destoon的会员和公司资料,可以使用:

{tag(“table=destoon_member m,destoon_company c&prefix=”&condition=m.userid=c.userid and m.username='destoon'&template=list-com”)}

destoon_member和destoon_company是表的实际名称(包含表前缀),prefix=”表示系统不再自动在表名前加前缀

控制标题长度
在标签里传递length参数,例如&length=20表示20个字符长度(一个汉字占2个字符),一般情况建议用css隐藏多余字符(定义height和overflow:hidden)
传递length参数,系统仅对title字段自动截取,如果需要截取其他字段,可用dsubstr函数
例如 {dsubstr($t[company], 20, ‘…')} 表示截取company字段为20个字符,截取后,结尾追加…

设置日期显示格式
可以在标签里传递datetype参数:
1 表示 年;
2 表示 月-日;
3 表示 年-月-日;
4 表示 月-日 时:分;
5 表示 年-月-日 时:分;
6 表示 年-月-日 时:分:秒
也可以在模板里直接使用date函数,例如{date(‘Y-m-d', $t[addtime])} 表示将时间转换为 年-月-日 格式

调用某一分类的信息
在标签里传递catid参数,例如&catid=5表示调用分类ID为5的所有信息。
如果调用多个分类,用逗号分隔分类ID,例如 &catid=5,6,7表示调用分类ID为5、6、7的所有信息。
分类调用默认包含子分类的信息,如果不需要包含子分类,可设置&child=0参数。
例如&catid=5&child=0表示只调用分类ID为5的信息,不包括子分类的信息。

调用某一地区的信息
调用地区信息和上述调用分类信息的方法完全相同,将其中的catid换为areaid即可。

显示信息所在分类

<a href=”{$MODULE[$moduleid][linkurl]}{$CATEGORY[$t[catid]][linkurl]}”>{$CATEGORY[$t[catid]][catname]}</a>

控制列数
此项常用于图片的布局,可使用cols参数。
例如调用12张图片,一行显示4个,共3行,则传递&pagesize=12&cols=4
支持cols参数的标签模板限thumb-table.htm和list-table.htm
其中,thumb-table.htm显示图片列表,list-table.htm显示文字列表
如果新建支持cols的标签模板或直接循环$tags,可参考以上两个模板的写法
上述效果可以也可以通过CSS实现,无需使用表格,请自行书写

显示文章的简介
使用{$t[introduce]}变量,如果要截取字数,例如80字符,可使用{dsubstr($t[introduce], 80, ‘…')}

函数原型
tag($parameter, $expires = 0)
$parameter 表示传递给tag函数的字符串,系统自动将其转换为多个变量
例如传递 table=destoon&pagesize=10,系统相当于得到$table = ‘destoon';$pagesize = 10;两个变量
$expires 表示缓存过期时间
>0 缓存$expires秒;0 – 系统默认时间;-1 – 不缓存;-2 – 缓存SQL;一般情况保持默认即可。

常量
{DT_SKIN}
系统风格网址。
{DT_PATH}
网站首页网址。

变量
$tags
以数组类型保存标签调用的数据,可通过loop语法遍历显示。
$pages
保存数据分页代码,仅在调用了分页时有效。
$MODULE[5][name]
ID为5的模块名称。
$MODULE[5][linkurl]
ID为5的模块网址。
$CATEGORY[5][catname]
ID为5的分类名称(仅变量$CATEGORY存在时有效)。
$CATEGORY[5][linkurl]
ID为5的分类网址(仅变量$CATEGORY存在时有效)。

常用字段
title 标题; linkurl 链接; catid 分类ID; introduce 简介; addtime 添加时间; 常用函数 dsubstr($string, $length, $suffix = ”)
将字符串$string截取为$length长,尾部追加$suffix(例如..)
date($format, $timestamp)
将时间戳$timestamp转化为$format(例如Y-m-d)格式

标签模板
模板保存于./template/default/tag/目录;
建议不要删除或者修改自带的模板,推荐在自带模板基础上新建模板并应用。

1.标签格式的大致说明

<!–{tag(“moduleid=9&table=article_9&length=40&condition=status=3&pagesize=10&datetype=2&order=addtime desc&target=_blank”)}–>

moduleid=9是资讯模块ID, 模块ID去模块管理查看;
article是资讯模块目录名;
&length=40是标签截取字数
&pagesize=10是调用条数
&datetype=2是显示时间添加时间

2.调用最新加入企业

<!–{tag(“moduleid=4&table=company&condition=groupid>4&pagesize=10&order=userid desc&template=list-com”)}–>

3.如何调用其中一个企业会员的供求信息及资讯
在condition=里加 and username='xxx'? xxx为会员登录名

4.如何调用 供应 求购 产品 下的 某个分类
调用分类下的信息可以设置 &catid=行业id&child=1 child=1表示同时调用下属的行业

5.调用二级栏目信息列表

<!–{tag(“moduleid=$moduleid&table=article_$moduleid&catid=$catid&child=1
&condition=status=3&order=”.$MOD[order].”&pagesize=6&datetype=2&target=_blank”)}–>

如果你是在文章模块里调用 可以用上面的代码 $catid 改为你要调用的栏目id即可
如果需要同时调用栏目下的信息 child=1即可 否则 child=0
如果是在网站其他地方调用,可以用下面的代码:

<!–{tag(“moduleid=9&table=article_9&catid=$catid&child=1&condition=status=3&order=addtime desc&pagesize=6&datetype=2&target=_blank”)}–>

注意moduleid的值要与你调用的模块id保持一致
补充:
下面这个在首页调用成功

<!–{tag(“moduleid=9&table=article_9&catid=$catid&child=1&condition=status=3&order=addtime desc&pagesize=6&datetype=2&target=_blank”)}–>

但是我想要资讯页内部的模版列表,也就是每条只显示22个字。

6.首页资讯栏目这里怎么调用
“9”为你模块的ID

{php $C = get_maincat(0, cache_read(‘category-9.php'));}
{loop $C $k $v}
<a href=”{$MODULE[9][linkurl]}{$v[linkurl]}”>{$v[catname]}</a>
{/loop}


7.公司列表 不能控制字数!!
你可以直接修改 list-com.htm
{$t[company]} 为 {dsubstr($t[company], $length)}

8.TAG常用标签
{$CATEGORY[$t[catid]]["catname"]} 所属栏目名称; {timetodate($t["addtime"], $datetype)}? 发布时间

9.其他
你可以通过&template= 来指定标签模版
如果没用这个参数 默认是list
位于模版目录tag目录
资讯 级别level 1级为 推荐文章 ;2级为 幻灯图片;3级为 推荐图文;4级为 头条文章;5级为 头条相关

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
使用数据库存储会话的优点是什么?使用数据库存储会话的优点是什么?Apr 24, 2025 am 12:16 AM

使用数据库存储会话的主要优势包括持久性、可扩展性和安全性。1.持久性:即使服务器重启,会话数据也能保持不变。2.可扩展性:适用于分布式系统,确保会话数据在多服务器间同步。3.安全性:数据库提供加密存储,保护敏感信息。

您如何在PHP中实现自定义会话处理?您如何在PHP中实现自定义会话处理?Apr 24, 2025 am 12:16 AM

在PHP中实现自定义会话处理可以通过实现SessionHandlerInterface接口来完成。具体步骤包括:1)创建实现SessionHandlerInterface的类,如CustomSessionHandler;2)重写接口中的方法(如open,close,read,write,destroy,gc)来定义会话数据的生命周期和存储方式;3)在PHP脚本中注册自定义会话处理器并启动会话。这样可以将数据存储在MySQL、Redis等介质中,提升性能、安全性和可扩展性。

什么是会话ID?什么是会话ID?Apr 24, 2025 am 12:13 AM

SessionID是网络应用程序中用来跟踪用户会话状态的机制。1.它是一个随机生成的字符串,用于在用户与服务器之间的多次交互中保持用户的身份信息。2.服务器生成并通过cookie或URL参数发送给客户端,帮助在用户的多次请求中识别和关联这些请求。3.生成通常使用随机算法保证唯一性和不可预测性。4.在实际开发中,可以使用内存数据库如Redis来存储session数据,提升性能和安全性。

您如何在无状态环境(例如API)中处理会议?您如何在无状态环境(例如API)中处理会议?Apr 24, 2025 am 12:12 AM

在无状态环境如API中管理会话可以通过使用JWT或cookies来实现。1.JWT适合无状态和可扩展性,但大数据时体积大。2.Cookies更传统且易实现,但需谨慎配置以确保安全性。

您如何防止与会议有关的跨站点脚本(XSS)攻击?您如何防止与会议有关的跨站点脚本(XSS)攻击?Apr 23, 2025 am 12:16 AM

要保护应用免受与会话相关的XSS攻击,需采取以下措施:1.设置HttpOnly和Secure标志保护会话cookie。2.对所有用户输入进行输出编码。3.实施内容安全策略(CSP)限制脚本来源。通过这些策略,可以有效防护会话相关的XSS攻击,确保用户数据安全。

您如何优化PHP会话性能?您如何优化PHP会话性能?Apr 23, 2025 am 12:13 AM

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显着提升应用在高并发环境下的效率。

什么是session.gc_maxlifetime配置设置?什么是session.gc_maxlifetime配置设置?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceIsiseededeedeedeedeedeedeedto to to avoidperformance andununununununexpectedLogOgouts.3)

您如何在PHP中配置会话名?您如何在PHP中配置会话名?Apr 23, 2025 am 12:08 AM

在PHP中,可以使用session_name()函数配置会话名称。具体步骤如下:1.使用session_name()函数设置会话名称,例如session_name("my_session")。2.在设置会话名称后,调用session_start()启动会话。配置会话名称可以避免多应用间的会话数据冲突,并增强安全性,但需注意会话名称的唯一性、安全性、长度和设置时机。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中