iWebShop_template
聚易信息科技有限公司 | 授权
IwebShop2.0模板开发
Downloads By https://www.360docs.net/doc/8b6736569.html,
聚易信息科技有限公司 | 授权
目录
1iWebCore处理流程图: (4)
2先了解一下iWebShop的目录结构: (4)
3配制文件及配制参数说明: (6)
4如何在iWebShop中写一个Hello world (8)
5标签的使用: (13)
5.1输出标签: (13)
5.2和地址有关的标签: (14)
5.2.1url标签: (14)
5.2.2{webroot:file}指从产品根目录下的文件目录 (14)
5.2.3{theme:file}指从当前主题目录下开始有路径 (14)
5.2.4{skin:file}指从当前主体下的当前皮肤下的路径 (14)
5.2.5{js:name}引用系统内核封装的js文件,在js封装中除了一些开源的插件外,
还有就是系统开发的几个主要插件,Validate.js,Form.js。 (15)
5.3{set: expression}赋值标签: (20)
5.4{if: condition}expression{elseif:condition}expression{else:} expression{/if}条件表达
式:20
5.5{while:condition}expression{/while}while循环标签: (21)
5.6{for:attribute}{/for}for循环标签: (21)
5.7{foreach:attribute}{/foreach}遍历标签: (23)
5.8{query:attribute}{/query}查询标签 (25)
6模板的开发: (32)
6.1iWebShop2.0前端文件的目录结构图及说明 (32)
6.2主题的开发 (35)
6.2.1主题的config.php配置信息说明: (35)
聚易信息科技有限公司 | 授权
6.3Layout 布局模板和普通模板 (37)
6.4皮肤的开发 (41)
6.4.1皮肤的config.php配置信息说明: (41)
6.5主题与皮肤的切换 (42)
聚易信息科技有限公司 | 授权
1 iWebCore 处理流程图:
首先要了解一下,iWebShop2.0是建立的iWebCore 内核的基础之上开发出来的。
2 先了解一下iWebShop 的目录结构:
|--backup 数据备份目录. |--classes Shop
扩展类文件目录. |--config 配制文件目录. |--controllers 控制器目录
聚易信息科技有限公司 | 授权
|--lib iWebCore内核目录
|--plugins 插件目录
|--runtime编译运行目录
|--upload上传目录
|--views 视图
|--index.php统一入口文件
对于用户二次开发,重点了解的几个目录是controllers、views、classes及config目录。首先了解一下controllers目录:
这里是存放所有控制器类,用户开发自己的控制类一定要继承IController类,用户自
定义类的每一个方法都是对应的一个Action,对应在views目录下主题下面的每一个
目录也对应一个coontroller文件目录,每个目录下存放着若干个视图文件,视图文件
被视为视图Action.
URL访问每个动作都是通过入口文件/ControllerID/ActionID来访问的
格式:index.php/controllerId/actionid/arg/arg_value
从actionid之后,arg/arg_value都是成对出现的。
聚易信息科技有限公司 | 授权
3配制文件及配制参数说明:
?
?
?
?
?
?
?
?[read]:二维数组,用来配制多个数据库,每条记录为一个数据库的配制信息。
?[write]:一维数据,因为系统最多支持一主多从数据库处理方式。
?说明:由于内核支持一主多从数据库。所以如果想进行多数据库的支持时,要配制read, write。
?[logs ]:日志配制信息
?path:存放日志的路径。
?type:对应的值为file(文件存储方式),db(数据库存储方式)存放日志的类型。
?[viewPath]:视图配制路径,默认为要目录下的views。
?[classes]:存放自定义的类的路径,类型可为string array。String时为单一存放路径,可能为数组,来设置多个路径。
?
?
?[timezone]:系统默认时区,系统默认为Asia/Shanghai。
?[debug]:是否为调试模式true,false。
聚易信息科技有限公司 | 授权
[upload]:文件上传路径。
聚易信息科技有限公司 | 授权
4 如何在iWebShop 中写一个Hello world
? 第一种方式,动作action 的方式。 ? controllers 目录下,然后创建text.php.
这里的文件名,要和类名一样,类名首字母要大写。 运行效果如下:
聚易信息科技有限公司 | 授权
?第二种通过视图Action来运行。
?在views目录下的default目录下的test目录,创建hello.html文件。
运行效果如下:
修改test的控制器类:
如何添加layout的布局。
聚易信息科技有限公司 | 授权
如何添加权限限制?
答:
在对应的Controller类中添加如下代码:
再次访问页面,得到如下提示:
聚易信息科技有限公司 | 授权
用户怎样自定义类,并且调用?
答:用户自定义类是一个很容易的事情,对于iWebShop2.0来说,只要在classes 目录下创建自己的类文件就可以了,在用户定义的类中可以直接使用任何一个系统的类,且不用引入。下面我们来举一个简单的例子。 在classes 目录下创建文件shoptest.php,代码如下:
修改test 控制器类,代码如下:
聚易信息科技有限公司 | 授权
运行时效果如下:
聚易信息科技有限公司 | 授权
明白了产品的工具原理,下面来重点说说标签的使用和模板的开发
5标签的使用:
标签的介绍我们将从简单到复杂的方式给大家介绍:
标签的格式: {标签名:属性},解释一下,这个格式的选择。
下面是一些主要程序对标签的处理:
.net
举例: onclick="btnSumit_Click" /> Java struts2 举例: 以上的标签存在着一个很大缺点就是,如果美工在开发与调试页面的时候,都会受到标签的干扰,使美工不易于开发,再一个对程序人员来说,对于每一个属性也没必要去写那些没有必要的’”’引号去,鉴于以上情况标签格式定义如下: 我们的{标签名:属性} 举例:{if:$a>100}{/if} 5.1 输出标签: {$name}: 直接输出变量name的值,这是最直接的,也是大多数主流语言所采用。 {echo:content} 输出content内容,content也可以是方法调用,也可以是常量与变量。 举例: 聚易信息科技有限公司 | 授权 输出变量age {$age} 输出字符串IWEB {echo:”IWEB”} 5.2 和地址有关的标签: 5.2.1url标签: {url:path} 通过path转换为系统统一的路径。 Path分为两种情况: {url:/c/a}将转换为绝对路径,指从产品要目录下开始的目录。 {url:arg/arg_value}这里指的是,相对于用户目录的目录。 5.2.2{webroot:file}指从产品根目录下的文件目录 如:要引用根目录下的image目录下的logo.png文件,那么可以使用 5.2.3{theme:file}指从当前主题目录下开始有路径 如:在视图文件里要引用一个本主体js目录下的一个main.js文件则可写成:。 5.2.4{skin:file}指从当前主体下的当前皮肤下的路径 如:引用本主体的一个当前皮肤下的一个css目录一下的style.css文件,则可写成: 聚易信息科技有限公司 | 授权 5.2.5{js:name}引用系统内核封装的js文件,在js封装中除了 一些开源的插件外,还有就是系统开发的几个主要插件,Validate.js,Form.js。 如:引用jquery 则可写成{js:jquery} 下面说一下,Validate插件的使用: 首先要通过js标签引入此插件,然后只要有form表单中的input标签中type为text,password,select-one,textarea .中添属性pattern 和 alt属性系统将会自动 添加验证功能: 如:对email的验证: 在hello的视图文件里编写如下代码: {js:validate}
然后清空test控制器里的内容,使其为一空类。
class Test extends IController
{
}
?>清空runtime目录
运行效果如下:
当你输入不正确的格式时,效果如下图所示:
聚易信息科技有限公司 | 授权
当你输入正确的格式时,如下图所示:
? 对于pattern 的正则系统对常用的正则都作了一些封装如:required ,email ,
qq ,id ,ip ,zip ,phone ,mobi ,url ,date ,datetime ,int ,float 等等,如果以上还没能满足你的要求,则用户可以自己写正则,如,我想让用户输入一个3-5位的数字:则修改代码
? 另外要注意,要验证时,隐藏字段会失效,不进行验证处理!
运行效果:
聚易信息科技有限公司 | 授权
填写正确:
就是这么简单,那么用户如果想在验证完后再运行自己的js函数怎么办?
修改hello.html文件
{js:validate}
然后点击提交按钮:
这里要解释一下回调函数的return true 和false
如果返回的是true,表单通过验证后,表单将提交,不通过将不提交。 如果返回的是false ,则无论表单是否通过表单都将不会被提交。
下面再说一下
form.js 文件,这个主要是完成表单回写功能的,比方说,你想让表单里的项初始化一些值: 修改hello.html 文件:
聚易信息科技有限公司 | 授权
{js:form}
var form = new Form('test');
form.init({'email':'a@https://www.360docs.net/doc/8b6736569.html,','sex':'1','live':'a;b','code':'php'});
运行效果如下:
聚易信息科技有限公司 | 授权
同样也可以用getItems 取得表单里所有数据的对象。也可以用setValue(name,value)的方式只给一个设置对应的值,也可以通过getValue(name)得到对应项的值。 要注意的两点:
1、 多选的时候是用;号来分开的。
2、
此form 插件不能对file 字段进行处理。
5.3 {set: expression}赋值标签:
此标签是一个简单的标签,主要是实现对变量进行赋值,举例: {set:$name = “iWebShop”;}
{set:$url = Url::createUrl(‘ddd/ddd’)
;}
5.4 {if:
condition}expression{elseif:condition}expression{else:} expression{/if}条件表达式:
举例: