用户信息
帖子内容
1 楼
weeya
钻石会员
积分 1612
注册 2010-10-28
     
威少JTBC_3.0入门教程(13)_transfer数据调用以及常用SQL语句

数据调用是JTBC的核心功能,使用transfer方法来调用,你可以调用整个网站下,任意模块的各种数据,用设定的模板显示出来。

 

来看一个快捷<jtbc>标签式的调用 
<jtbc $function="transfer" $parameter="genre=case;type=new;limit=3">   <div class="item">     <a href="{$-baseurl}{$=htmlEncode($createURL('detail', '{$id}', null, '{$-genre}'))}">       <p class="image"><img src="{$-baseurl}{$image}" alt="" /></p>       <p class="topic">{$topic}</p>     </a>   </div> </jtbc>

标签式调用的好处是快捷,标签下方就可以写调用模板,JTBC会根据数据源和下方的显示模板输出列表。

标签指定两个参数,一个是$function,另外一个是$parameter。

$function="transfer",就表示调用的是transfer函数,$parameter则是对应的参数,相当于{$=transfer('genre=case;type=new;limit=3')}

标签式调用可能存在模板字段冲突问题,比如当在模块详情页调用时,{$同名字段}会被优先替换,解决的办法是使用{$=htmlEncode($GLOBALS['RST_字段名'])}来取代{$字段名}。

 

transfer的参数说明

他只有一个参数,这个参数是一个复合型的参数,其中:

  1. genre=case; 表示的是,数据来源是一个目录名为case的模块
  2. type=new; 表示的是,调用的是最新的数据,简单的说就是影响排序
  3. limit=3; 表示的是,调用前3个数据

 

再来看一个函数式的调用 
{$=transfer('genre=case;type=new;limit=3;tpl=1')}

 

他和标签式调用的区别,就是他需要指定一个tpl模板节点,这个模板节点如果带有.,那么直接根据代号读取,如果没有.,那么从默认的common/template/transfer.jtbc文件中读取。

函数式调用的好处是调用模板可以复用,功能比较全,标签式调用的好处是便捷。

 

参数集合介绍
  1. method 方法,省略为标准调用,可设置SQL直调,JSON模式等等
  2. genre 模块名
  3. type 调用类型
  4. tpl 指定模板节点或完整代号
  5. rowfilter 指定行号过滤
  6. cache 缓存名称
  7. cachetimeout 缓存过期时间
  8. vars 预设变量
  9. limit 限制输出记录数
  10. db_table 指定数据库表名
  11. db_prefix 指定数据库表前缀名
  12. osql 附加SQL
  13. osqlorder 附加SQL排序语句
  14. baseurl 链接基地址
  15. category 指定分类编号
  16. group 指定分组编号
  17. lang 指定语言编号
  18. transferid 调用ID,当有必要时,区分是哪一个调用的

以上参数集合,根据method的值而产生作用,比如如果你设置了method=sql,那么你设置genre将是无效的。

 

常用的几种调用形式

 

{$=transfer('genre=news;type=new;limit=5;tpl=1')}

 

调用模块名为news,类型是最新的,限制记录为5条,格式化模板节点是1。

 

{$=transfer('genre=news;type=new;limit=5;tpl=index.news')}

 

调用模块名为news,类型是最新的,限制记录为5条,格式化模板代号是index.news。

 

{$=transfer('genre=news;type=new;limit=5;tpl=1;rowfilter=1,2')}

 

调用模块名为news,类型是最新的,限制记录为5条,格式化模板节点是1,过滤第1第2条,所以实际输出结果是3条。

 

{$=transfer('genre=news;type=new;limit=1;tpl=1;osql= and n_id=1')}

 

调用模块名为news,类型是最新的,限制记录为1条,格式化模板节点是1,采用附加SQL语句,限制ID为1的记录。

 

{$=transfer('genre=news;type=new;limit=1;tpl=1', array('id' => 1))}

 

等价于OSQL附加语句,当在标准模式调用时,第二个参数数组为附加SQL语句KEY-VAULE表。

 

{$=transfer('genre=news;type=new;limit=5;tpl=1;cache=news;cachetimeout=300')}

 

调用模块名为news,类型是最新的,限制记录为5条,格式化模板节点是1,使用缓存名为news作为缓存,缓存有效期是300秒。

 

{$=transfer('method=sql;tpl=sql', 'select * from jtbc_news where n_delete=0 order by n_id desc limit 10')}

 

调用方法为SQL直调,格式化模板节点是sql,第二个参数是SQL语句。

 

{$=transfer('method=json;tpl=json', '...参数过长省略...')}

 

调用方法为JSON模式,格式化模板节点是json,第二个参数是JSON数据集合,常用于图片集字段的格式化。

 

调用模板的写法

除了<jtbc>标签式调用方式外,调用模板中必须包含循环体{@}{@},在循环体中间加入字段标签,以下是几个例子:

 

{@}{$topic}{@}

 

<ul>{@}   <li>{$topic}</li>{@} </ul>
2019-10-21 12:04:25 易速网络 www.yiisu.com 承接JTBC3.0 定制建站 仿站,正规网络公司,可开发票,QQ:93715358(微信同号)
2 楼
weeya
钻石会员
积分 1612
注册 2010-10-28
     
回复: 威少JTBC_3.0入门教程(13)_transfer数据调用以及常用SQL语句

占楼更新。

易速网络 www.yiisu.com 承接JTBC3.0定制建站、仿站,正规网络公司,可开发票,QQ:93715358(微信同号)

2019-10-21 12:04:40 易速网络 www.yiisu.com 承接JTBC3.0 定制建站 仿站,正规网络公司,可开发票,QQ:93715358(微信同号)
3 楼
shadoweb
钻石会员
积分 1234
注册 2014-11-27
     
回复: 威少JTBC_3.0入门教程(13)_transfer数据调用以及常用SQL语句

多多优秀

威少优秀

2019-10-21 14:51:17 JTBC教程网 https://www.jtbc.com.cn/ 客服QQ858512104 微信 shadoweb