模板上传(打包)验证规则
版本:1.0.0
一、模板相关
1. 模板描述文件验证(site.xml)
验证点 |
验证规则 |
备注 |
JSON文件是否在site.xml中配置 |
<global>元素中必须包含header.json和footer.json文件,page元素中的type为index、list和detail必须定义 |
|
模板皮肤属性与目录是否一致 |
模板描述文件site.xml中<theme>标签下<css>标签中的皮肤路径是否和皮肤所在的目录中的路径一致 |
|
模板页面定义 |
有且只有一个首页面、宝贝详情页面和宝贝分类页面 |
|
<change-notes>元素长度限制 |
0-1024个字节 |
|
<description>元素长度限制 |
0-1024个字节 |
|
模板描述信息中的元素内容 |
id,name,thumbnail,language,version, apply-sites元素内容不能为空 |
|
模板的缩略图
|
1. 模板缩略图文件必须存在 2. 模板缩略图文件路径与默认皮肤缩略图文件路径必须相同 3. 模板缩略图文件格式只能是jpg、png和gif |
|
2. 皮肤
验证点 |
验证规则 |
备注 |
模板皮肤的数目 |
不能超过3套 |
|
皮肤名称 |
只允许使用英文、数字、横线"-"和下划线"_"的组合 |
|
模板皮肤文件 |
验证皮肤文件的内容的合法性,只能一下CSS属性定义: background-color background-image background-repeat background-position |
|
皮肤extra.css文件的选择器 |
只能使用#hd和#content ID选择器 |
|
模板皮肤的缩略图
|
1. 模板缩略图文件必须存在 2. 模板缩略图文件路径与默认皮肤缩略图文件路径必须相同 3. 模板缩略图文件格式只能是jpg、png和gif |
|
3. 模板目录结构
验证点 |
验证规则 |
备注 |
模板文件类型验证 |
模板目录必须包含assets和modules文件夹,还有site.xml文件描述符和多个JSON文件。 |
|
模版目录中的文件数目 |
不超过300个 |
不计算文件夹 |
模板目录中的文件大小 |
不超过10M |
非压缩内容,不计算文件夹 |
JSON文件中出现的模块ID的合法性 |
模块ID对应的模块目录必须存在,具体细节参考“模块相关”章节 |
|
二、页面相关
1.JSON文件
验证点 |
验证规则 |
备注 |
JSON文件路径 |
JSON页面文件存在,并且只能存放在模板根目录下 |
|
JSON文件内容的合法性 |
符合JSON的文件格式 |
|
JSON文件的布局类型的合法性 |
JSON文件中定义的布局类型必须是官方指定的. |
支持布局如下, 头尾布局:grid-m 通栏布局:grid-m0 两栏布局:grid-s5m0、grid-m0s5 三栏布局:grid-s5m0e5、grid-m0s5e5、 grid-s5e5m0 |
三、模块相关
1. 模块描述文件(module.xml)
验证点 |
验证规则 |
备注 |
模块描述文件路径 |
module.xml文件必须存在 |
|
模块描述文件格式 |
模块描述文件必须符合module.xsd规范 |
|
id元素 |
模块ID不能为空,并且符合设计师id模式 |
设计师模块ID前缀:tshop-um- 系统模块ID前缀: tshop-pbsm-
|
name元素 |
模块名称不能为空 |
|
supportedWidth元素 |
如果不空的话,必须是支持的宽度 |
支持的宽度: 190,550,750,950 |
description元素 |
长度不能超过1024字节 |
|
2.PHP文件
验证点 |
验证规则 |
备注 |
设计师模块PHP页面路径 |
验证设计师模块目录下是否有php文件 |
|
模块PHP页面内容的合法性 |
1.PHP页面内容只能包含一个根元素(允许任意标签元素,推荐"div"元素) 2.根元素类定义包含:class="tb-module tshop-um tshop-um-module3"(class属性可以添加您需要的类选择器定义) 3.元素class属性值禁止以"tb-"和"J_T"字符开头,除"J_TWidget"和"tb-module"以外 4.禁止使用<style>标签(元素) 5.禁止使用<script>标签(元素) 6.禁止使用<link>标签(元素) 7.禁止使用标签(元素)的id属性 8.允许使用元素内联style属性 |
|
3. 模块目录结构
验证点 |
验证规则 |
备注 |
验证模块目录 |
1、 模块目录集合必须包含子文件,即不能为空。 2、 验证模块目录下每一个模块的合法性。(模块目录,模块描述文件,Php页面,CSS文件,JS文件的合法性)即多个验证的集合。 |
|
模块ID与目录名称是否匹配 |
module.xml中描述的ID与目录下模块的名字是否一致 |
|
系统模块 |
不能出现PHP,JS文件 |
|
设计师模块 |
有且只有一个PHP文件 |
|
设计师模块的数目 |
不能超过20个 |
|
模块的缩略图验证
|
1. 模板缩略图文件必须存在 2. 模板缩略图文件格式只能是jpg、png和gif |
|
4 模块皮肤
验证点 |
验证规则 |
备注 |
模块皮肤的数量 |
3套 |
|
模块皮肤的缩略图验证
|
1、 模板缩略图文件是否存在 2、 模板缩略图文件的扩展名是否合法 |
|
模块的皮肤CSS文件路径 |
模块皮肤CSS文件必须存在 |
|
模块CSS文件的内容的合法性 |
参考CSS白名单 |
|
四、JS相关
验证点 |
验证规则 |
备注 |
JS模块数目 |
一套模板中JS模块数目不能超过5个 |
|
JS文件大小 |
JS文件内容大小不能超过18K |
|
JS文件安全验证 |
SDK模板打包时不做验证 SDK模板上传时验证 |
|
JS添加限制 |
JS模块不能在页头、页尾和详情页面添加 |
|
|
|
|
|
|
|