Discuz!使用问题、建议、BUG等请到论坛反馈以便获得及时帮助,大型问题建议走付费途径。

高级设置 —— 数据调用

UCenter Home 中的数据调用,会将站内的数据,通过你编写的查询 SQL 语句,进行查询并读取出来,生成一段调用代码。你将调用代码(模板内嵌,或者 JS 调用都可以)放置到站点页面上便可以将相应的查询结果展示给访客了,从而可以实现站内任意数据的显示调用。

添加数据调用的位置在 UCenter Home 后台 => 高级应用 => 数据调用,如下图所示:

一、添加数据调用

点击上图中的“添加新模块”,出现数据调用的设置界面,如下图所示:

上图中顶部的选项卡表示可以添加对那种数据的调用,其中包括:日志、相册、话题、动态、用户、照片、群组,如果这些默认的数据调用项目不能满足您的需求,还可以选择“手写 SQL”一项。

日志、相册、话题、动态、用户、照片、群组,这些项目为默认项目,出现的设置界面均包括两部分:模块名称和过滤设置。

模块名称:为必填项,仅用于在后台数据调用列表中区别添加的不同调用。

过滤设置:为非必填项,不同的项目会出现不同的过滤设置,这些过滤设置用于在数据调用中对查询出来的数据进行过滤,显示的数据为符合过滤设置的数据。在这里设置了过滤的规则以后,便会根据设置的规则生成对应的 SQL 查询语句,用于添加数据调用的下一步。

手写 SQL 一项与上面几项相似,也有模块名称,但是没有过滤设置,取而代之的是“数据调用 SQL ”一项,该项为必填项,需要填写一个 SQL 语句。所以上面默认的几个项目中的过滤设置,目的就是辅助您生成一个这里需要的 SQL 语句了,所以在手写 SQL 一项中就需要您手写这个 SQL 语句了。本功能需要你掌握一定的 SQL 编写知识,而且本数据调用只支持编写 SELECT 开头的查询 SQL 。如下图所示:

这里以添加一个“日志”的数据调用为例:

填写“模块名称”,如“最新日志”,可以根据实际需求设置过滤的条件,如选择“排序设置”,“第一排序”中的“发布时间”和“递减”,这样就是取最新的日志了,然后点击“提交”即可进入添加数据调用的下一步。如下图所示:

这里是添加数据调用的第二步:

查询 SQL 语句:这里的这个 SQL 语句就是通过刚才设置的过滤条件生成的,例如:

SELECT * FROM `uchome_blog` AS `blog` WHERE `blog`.`uid` in ('1') AND `blog`.`friend`='0' ORDER BY `blog`.`dateline` DESC

其中 `blog`.`uid` in ('1') 表示所取数据为用户 ID 为 1 的用户的日志信息;

`blog`.`friend`='0' 表示取出的数据是用户允许全站浏览的日志,设置了隐私的日志则不被调用;

ORDER BY `blog`.`dateline` DESC 表示查询的日志根据发布时间从大到小排序,取出的即为最新的日志,这些都满足了刚才进行的过滤设置。

如果想要修改这个 SQL 语句,可以点击“编辑SQL”来修改。

变量名:这个为在页面中调用时使用唯一的变量名,一般使用默认生成的名称即可。

缓存时间:设置一个缓存时间间隔,该模块数据将自动在指定的时间间隔内更新数据。缓存时间设置越大,对服务器的负载就越小,但数据的及时性就不够。设置为0,则不使用缓存,实时更新,这样会严重增加服务器负载。

获取数目:这里设置需要获取那一部分数据,可以设置只获取满足条件的第几至第几条数据,例如:只获取满足条件的第 0 至 10 条数据,表示取出前 10 条数据。或者全部获取,分页显示,每页显示几条,这会覆盖上面获取条目的设置。

数据显示 HTML 代码:用 HTML 语言,编写数据的显示样式。获取到的数据存放在数组 $_SBLOCK[变量名] 中(将“变量名”替换为你在上面设定的变量名),可以使用 loop 语法对该数组变量进行循环展示。

数据预览:点击“预览”后可以查看调用的结果。

可调用字段实例:这里所列出来的字段名为可以调用的数据名称,后面的数据实例表示字段名对应的值。该项目为帮助您书写数据显示 HTML 代码使用。

设置好后,点击提交即可。

二、使用数据调用

数据调用可以使用在站内,还可以使用在站外。

在站点调用则使用“模块内嵌代码”,点击之后会得到下图所示的一段代码,该代码可以放到 UCenter Home 模板的任意位置进行显示:

在站外调用则使用“Javascript调用代码”,点击之后会得到下图所示的一段代码,该代码可以放到任意的位置进行显示:

三、修改和删除调用

编辑SQL:进入添加数据调用的第一步,可以重新编写用于调用的 SQL 语句。

参数设置:进入添加数据调用的第二步,可以重新设置调用参数。

删除:删除当前调用。

几个调用教程:

几个常用的 SQL 调用语句:http://www.discuz.net/thread-955778-1-1.html

如何调用 feed 事件:http://www.discuz.net/thread-1084529-1-1.html

如何调用最新日志:http://www.discuz.net/thread-1179206-1-2.html

{lang scrolltop}