- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
标签类型模块数据(module_data)存读取某模块的数据出来,将伪SQL.doc
标签类型
模块数据(module_data)
存:读取某模块的数据出来,将伪SQL对象序列化存到数据库。
读:内容时反序列化查询取得数据。
读取SQL(sql)
存:把SQL存到数据库中。
读:直接执行SQL,并返回结果,
自定义HTML(html)
存:把HTML直接保存到数据库
读:直接读取
按原来的方式,把所有标签结果缓存到同一个文件中。
设置标签的作用域。
core 核心标签,网站任意地方都可以调用。
this_system 系统标签,仅在本系统任意地方可以调用。(累加core作用域)
this_module 模块标签,仅在本模块任意地方可以调用。(累加core, this_system作用域)
如果当前页面是模块的页面$this_module,那么还会将调用this_system和core作用域的标签。
标签模块的构造函数通过global $core, $this_system, $this_module来判断标签的作用域。
如system_module1,core_module2,core
postfix 标签后缀,在标签的作用域后加上后缀来实现特殊页面的标签。
core_page_1
core_page_2
core_channel_3
this_system_1
this_module_cat_1
在页面中,依然保持旧的方式,$label[xxxxxx]即可。\
在脚本的入口$_LABEL-init();来初始化标签,检测当前页面的标签作用域,检测标签是否过期,过期重新生成标签内容。
编译模板的时候对$label[xxx]进行处理,编译成$LABEL-display(xxxx)
由标签模块的display方法检测是否是新的标签,检测标签是否存在。
由URL的参数?edit_label=1来确定是否是标签编辑模式。
标签里面使用模板的标签,可以添加判断,循环等功能,既可实现复杂的标签模板,也可以减少SQL的读写。
数据表设计
字段 说明 id 标签ID system 标签作用域系统 module 标签作用域模块 type 标签类型(sql,html,module_data) name 标签名称 option 标签选项 text 标签内容 addtime 添加时间 ttl 标签缓存时间 postfix 标签后缀
标签流程
标签作用域
标签作用域共有3种,
核心(全站可用)
系统(仅系统中可用)
模块(仅模块中可用)
如果在首页,那么标签主作用域为核心。
如果在文章系统首页,那么标签主作用域为系统。
如果查看文章内容页,那么标签主作用域为模块。
后缀是在主作用域的前提下增加的命名空间。后缀可有可无,如果不指定后缀,那么将不读取后标签后缀里的任何内容。
如在核心主作用域里,后缀就是core_[postfix]
如在文章系统首页,系统主作用域里,后缀就是article_[postfix]。
如在文章内容页,模块主作用域里,后缀就是article_item_[postfix]。
作用域图解。
变量标签
可以使标签读取页面上的变量,根据页面上的变量来进行相应的SQL过滤,如分类ID,进入不同的分类,可以根据当前页面上的分类ID传入标签,标签根据此变量来过滤。增加标签的灵活性。
变量标签不同于固定标签,不能跟固定的标签同一个文件存放,因为变量的数量不确定,如果变量太多,那么会导致文件的内容过多,影响效率,变量标签应该按md5取哈希,每个变量作为一个文件存放。
数据格式。
在后台添加标签的时候,如果条件中有$开头的则视为变量标签,如$uid
在入库的时候,并不把这个条件加入。
而是保存到选项数组中的var_fields中。
格式
array(
‘i.uid’ = array(‘operator’ = ‘in’, ‘var’ = ‘$var’),
‘i.keyword’ = array(‘operator’ = ‘search’, ‘var’ = ‘$var’)
)
操作符,
in 范围内 a = $a, a IN (1,2,3), a IN (‘a’, ‘b’, ‘c’)
search 搜索, keyword like %关键字%
页面中
$label[标签名] 为普通标签
$label[标签名]{‘i.uid’ = $uid, ‘i.cid’ = $cid, ‘i.keyword’ = $keyword} 为变量标签
普通标签替换为$LABEL-display(‘标签名’)
$LABEL-display(‘标签名’, array(‘i.uid’ = $uid, ‘i.cid’ = $cid, ‘i
文档评论(0)