ThinkSNS-应用结构说明
来自站长百科
导航: 上一页
分享
分享应用结构的最大特色是: 需求决定模板,模板决定变量。分享的模板可以根据自己的需求直接在后台修改(包括分享的动态模板,分享应用里的列表模板),而模板里需要什么变量就直接在数据包以数组的方式增加就可以了。数据包里所有的变量以及相应的值与模板的变量是对应的(除了{WR}以及分享的基本变量),以下让我们看看分享的数据是怎么结合的。为了方便扩展分享的类型和提高程序的灵活性,分享应用保存到数据库里的信息分为两部分,一部分是分享的基本信息.
主要有:
信息 | 字段名 | 备注 |
分享类型ID | typeId | |
分享人ID | toUid | |
分享人名字 | toUserName | |
站内分享目标的ID | aimId | 如日志的ID |
站外分享的网址 | url | |
分享标题 | title | 由程序自动获取 |
描述 | info | |
增加时间 | cTime | 增加时系统自动赋值 |
浏览数 | viewNum | |
评论数 | comNum | |
是否已删除 | isDel | 回收站功能,值为1 代 表已删除,但可在后台 |
权限 | purview | 备用 |
推荐人ID | fromUid | 备用 |
推荐人姓名 | fromUserName | 备用 |
另一部分就是分享的核心数据: 数据包, 字段名为data (text), 采用数组保存相关数据,然后序列化后保存入库。数组保存的变量由相应的类型根据模板需要来决定并赋上相应的值,比如日志类型的模板(如下图)需要显示日志标题(title),发表日志人的ID(uid)和姓名(name)。列表里还需要一些简介(intro),日志内容(content)。
注:{WR}是当前网址,系统会自动转译。所以组装日志的数据包如下图:
在分享应用里生成列表时,根据分享的类型ID(typeId)从缓存里提出相应的模板,然后把数据包反序列化得到一个数组,再循环数组并用str_replace 方法转译模
板。最终效果如下:
分享信息的来源结构如下: