免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 925 | 回复: 0
打印 上一主题 下一主题

TinyButStrong模板手册2 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-23 18:49 |只看该作者 |倒序浏览

方法 Show():
结束合并.
Syntax: $TBS->Show({int Render})
Show 方法将执行以下操作:
- 合并 Var 字段,
- 合并 [onshow] 字段,
- 显示结果(原文:can be cancelled by Render property),
- 结束脚本 (可以使用Render特性取消).
Render
特性允许调整 Show() 方法的行为.
参数Render 同样允许调整Show() 方法但仅能调用一次.
方法 CacheAction():
调用TinyButStrong缓存系统的一个动作. 此缓存系统允许你手动或自动操作,将合并结果备份在一个被称为"缓存" 文件的临时文件. CacheAction() 依据调用动作的成功或失败返回 truefalse.
语法: bool $TBS->CacheAction(string CacheId {, int Action/MaxAge}{, string Dir})
参数
描述
CacheId
缓存文件的Unic id. 必需是一个字符, 它将被做为文件名使用.
Action/MaxAge
让action执行的操作. 必需是 TinyButStrong's 定义的值. 参见下表了解更多可用指令的细节. 默认值为 3600 ,与之对应的是1小时内自动备份(译不准,原文:wich correspond to an automatic backup with a max age of 1 hour)
Dir
可选. 指定缓存文件保存的路径.
默认为执行脚本的目录 即./
管理缓存文件:
缓存系统使你可以创建,加载,更新或者删除以 CacheId 标识的缓存文件. 根据设定的缓存文件最大寿命,也可以让系统自动操作 缓存文件.
显示缓存:
假如你开始使用"显示缓存", 那么合并后的结果将在第一次使用
Show()
方法时自动保存在缓存文件. 显示结果之后就记录这个步骤.
请注意 Show() 方法默认情况下会导致程序结束.假如想在"显示缓存"后继续一些操作, 那么你需要设置
Render
特性以避免程序在不应该的时候意外停止.
下面列出了 Action/MaxAge 参数可能用到的一些值, 它可以是 TinyButStrong 预定义的常数或者一个正整数.
动作
描述
x >=0
(正数)
最大寿命自动模式(Automatic Mode with max-age):
-
假如缓存文件存在并创建时间少于 x 秒, 那么将加载文件并执行
Show()
方法. 假如设置了
Render
特性,程序将在显示结果后结束, 否则 CacheAction() 返回 true.
-
假如缓存文件不存在或者文件创建时间超过 x 秒以前, 那么 "显示缓存" 已开始 (上述). 该程序继续正常 CacheAction() 返回 false.
TBS_CACHENOW
保存当前合并结果到与 CacheId 相对应的缓存文件.
CacheAction() 返回 false.
TBS_CACHELOAD
CacheId 加载对应的缓存文件.
假如缓存文件存在并加载成功 CacheAction() 返回 true , 否则返回 false.
TBS_DELETE
删除 CacheId 相对应的缓存文件. 你可以删除一个目录下的所有缓存文件,你只要指定 CacheId 为 '*'.
CacheAction() 返回 false.
TBS_CACHEONSHOW
开始从 CacheId 相对应的缓存文件 "显示缓存"
CacheAction() 返回 false.
TBS_CANCEL
取消 "显示缓存" 无论是什么 CacheId.
CacheAction() 返回 false.
TBS_CACHEGETAGE
返回缓存文件寿命秒数.文件不存在则返回 false.
TBS_CACHEGETNAME
返回与 CacheId 相对应的缓存文件名.
即使文件不存在也返回.
TBS_CACHEISONSHOW
假如 "显示缓存" 可用,返回 true , 否则, 返回 false.
方法 GetBlockSource():
返回 TBS 块的数据源.
只返回定义块的第一部分, 除非 Sections 参数设定为 True.
如果没有找到块, 方法将返回 False.
语法: string $TBS->GetBlockSource(string BlockName {, boolean Sections})
参数
描述
BlockName
搜索的块名.
Sections
可选. 默认值为 False.
如果参数设置为 True 方法将返回一个包含指定块所有部分定义的数组. 第一个部分将被返回到数组里的 item [1].
此方法能让你获得块的来源信息以便手动控制合并过程.
在此之后, 假如你想用文本替代块, 你可以用
MergeBlock()
方法里的 'text' 参数.
方法 MergeField():
使用一个固定值或调用用户函数替换一个或多个TBS Fields.
每个有指定 BaseName 的 TBS fields 将被合并.
语法: $TBS->MergeField(string BaseName, mixed X {, boolean FunctionMode})
参数
描述
BaseName
TBS Fields的基础名. 比如 'account'.
X
需要显示的值或代表一个用户函数的字串.
FunctionMode
指定显示值由一个用户函数给出. 默认值为 false. 假如参数设为 true, X 必须为用户函数名的字串. 此函数必须存在且拥有以下描述的语法.
与一个值合并:
X 可以是数字, 字串, 数组或一个对象. 如果是数组或对象, TBS Fields 名必须有像
Var Fields
这样的后缀.
示例:
$TBS->MergeField('account',array('id'=>55,'name'=>'Bob'));
本例中, fields [account.id] 和 [account.name] 将被合并.
与用户函数合并:
TBS 在模板里搜索每个field调用此函数.
此函数必须拥有以下的语法:
function fct_user($Subname [, $PrmLst]) {...}当函数被调用, 参数 $Subname 拥有一个 field's 名的前缀 (如: 一个 field 名 'ml.title', $Subname 将拥有值'title'). 还有可选参数$PrmLst 含有一个相关联的数组和 field's 参数. 此函数必须返回合并的值.
示例:
$TBS->MergeField('ml','m_multilanguage',true);
...
function m_multilanguage($Subname) {
  global $lang_id;
  $rs = mysql_query("SELECT text_$lang_id AS txt FROM t_language WHERE key='$Subname");
  $rec = mysql_fetch_array($rs);
  return $rec['txt'] ;
}
在此例中, 一个像 [ml.title] 的 field 将和m_multilanguage('title')返回值合并.
方法 MergeNavigationBar():
显示一个基于指定 TBS block 和 TBS fields的导航栏.
关于如何建立一个导航栏的细节, 请参阅 '
显示一个导航栏(Display a navigation bar
)'.
语法: $TBS->MergeNavigationBar(string NavName, mix Options, int PageNum [, int RecCount, int PageSize])
参数
描述
NavName
导航栏的名字.
注意: 你可以通过使用逗号分隔多个名字以同时合并多个导航栏.
Options
可以让你参强制运行一此导航栏选项. 这些选项同样可以定义在模板的块参数中. 但假如你将这此选项也放在 MergeNavigationBar(),他们也将被强制运行.
此参数可为空 ('', 0 或者 null), 也可是一个数字或数组.
假如是一个数字, 表示显示的页数.
假如是一个数组, 表示包含如下项:


'navsize'
导航栏显示的页数. (默认 = 10).
'navpos'
Position of the navigation bar compared to the active page number. 使用下列一个键值:
- 'step' (默认) to have the bar progressing by step.
- 'centred' to center the bar on the active page number.
'navdel'
当只有一页或者没有页面显示时,需要删除的 TBS 块.
这个 TBS 块必须属于导航栏. 假如有多个页面显示,那么只有 TBS 定义的块被删除.
'pagemin'
第一页 (默认 = 1).(设置什么值为第一页?--esayr注)
PageNum
当前显示的页面数值.
第一页为1. 要表示最后一页可以使用-1.
RecCount
可选. 默认值为 -1.
设置记录总数. 但当你不知道这个数字时,请将它设为-1. 此参数仅用来计算导航栏的最后一页的值.
PageSize
可选. 默认值为1.
表示每页的记录数. 它要配合 RecCount 使用,来计算导航栏的最后一页的值.
示例:
$TBS->MergeNavigationBar('nav','',$page,$rec_nbr,$page_size);
方法 MergeSpecial():
替换指定类型的 blocks 和 fields.语法: $TBS->MergeSpecial(string Type)
Type 参数必须是以下的其中一个:

描述
'var'
替换所有
Var fields
.
'onload'
替换所有
onload
fields.
'onshow'
替换所有
onshow
fields.
备注:
默认情况下,
Show()
方法会在显示合并结果前替换掉所有特殊的 fields 和 blocks. 这就是 MergeSpecial() 方法很少在程序中被用到的原因.
特性 Render:
表明合并在哪结束.
它的值必须是以下常量的组合.
默认值为 (TBS_OUTPUT + TBS_EXIT).
语法: int $TBS->Render
特性 Render 可以改变 方法
Show()
和 方法
CacheAction()
的行为.
常量
描述
TBS_NOTHING
表明在合并结束前不进行任何动作.
TBS_OUTPUT
表明让TBS使用PHP的echo命令将合并结果显示出来.
TBS_EXIT
表明脚本在合并结束后退出.
特性 Source:
获取或设定合并过程中应用的 HTML 源.
调用
LoadTemplate()
方法后, 这个特性将包含模板的 HTML 源.
此特性方便你在代码里读取和修改合并结果.
语法: string $TBS->Source
特性 TplVars:
包含对应于当前模板的模板变量数组.
语法: array $TBS->TplVars
你可以使用参数
tplvars
在一个或多个onload
automatic fields
定义模板变量.
当调用LoadTemplate()方法时,所有
tplvars
后的参数将被添加到 TplVars 特性里.
示例:
  [onload;tplvars;template_version='1.12.27';template_date='2004-10-26']
这个 TBS 标签将创建等同于以下PHP代码的项:
$TBS->TplVars['template_version'] = '1.12.27';
$TBS->TplVars['template_date'] = '2004-10-26';
备注:
- 参数
tplvars
仅工作于 onload
automatic fields
里.
- 在一个模板里你可以多次使用参数
tplvars
.
添加一个数据源类型:
你可以添加TinyButStrong自身不支持的其它数据源类型.
要实现这点,你需要用特定的声明编写三个函数(或方法), 然后对应添加的类型来命名.
你只需要将他们放在你自己的应用或者一个外部PHP文件上,而不必将函数添加到TBS源文件中.
你可以在TinyButStrong 的
站点
上找到附加的数据源类型.
你有两个选择,要么写函数要么写类.
如果你写函数, 他们必须使用一个特定于你使用数据源的 TBS 标识符来命名他们 (往下看).
如果你要写一个类的方法, 那么方法名必须是tbsdb_open, tbsdb_fetchtbsdb_close.
示例:
class clsTest {
  function tbsdb_open(...)  {...}
  function tbsdb_fetch(...) {...}
  function tbsdb_close(...) {...}
}
TBS 标识符 (适用于用户函数):
The $Source argument that you pass to the
MergeBlock()
method has a specific TBS identifier that you must use for the function naming.
If $Source is an object, then the TBS identifier is the name of Php class.
If $Source is a resource, then the TBS identifier is the resource type.
If $Source is a string, then the TBS identifier is this string.The type of the $Source argument must not yet be supported in native by TinyButStrong, otherwise the functions will be ignored.
The TBS identifier may be arranged by TBS to make it fit for a function name.
示例:
如果 $Source 是一个Sybase链接 (resource type = 'sybase-db link'), 那么TBS 标识符就是 'sybase_db'.
函数或方法的声明:
添加到你程序里的三个函数必须遵循以下语法:
如果你决定写一个函数, 那么请用关键词'customdb' 替换掉成数据源类型里的 TBS 标识符. 如果你想写成一个类, 请将函数的名字改为tbsdb_open, tbsdb_fetchtbsdb_close.
function tbsdb_customdb_open(&$Source,&$Query) {...}
这个函数必须打开一个必须的查询(query)然后返回一个记录标识符.
如果返回的是错误, 函数将返回一个False 值,并显示相应的信息.
参数
描述
$Source
与传递到 MergeBlock() 方法的参数相同.
$Query
与传递到 MergeBlock() 方法的参数相同.
示例:
function tbsdb_sybase_db_open(&$Source,&$Query) {
  return sybase_query($Query,$Source) ;
}
function tbsdb_customdb_fetch(&$Rs{,$RecNum}) {...}
这个函数必须返回一个包含columns' 名和值并与现有记录相关联的数组.当没有记录时,函数不得不返回一个 False 值.
参数
描述
$Rs
tbsdb_customdb_open() 函数返回的记录集标识符.
$RecNum
可选. 预期的记录数. 第一个是数字 1.
示例:
function tbsdb_sybase_db_fetch(&$Rs) {
  return sybase_fetch_assoc($Rs) ;
}
如果你的数据源需要知道预期的记录数, 你可以添加 $RecNum 参数到你的函数声明. 除此之外, 这个参数是可选的,因为所有记录都会被按顺序的调用.

function tbsdb_customdb_close(&$Rs) {...}

这个函数不得不关闭或释放记录标识符.
它不一定需要返回一个值.
参数
描述
$Rs
tbsdb_customdb_open() 函数返回的记录集标识符.
示例:
function tbsdb_sybase_db_close(&$Rs) {
  return sybase_free_result($Rs) ;
}

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/50764/showart_406065.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP