# p2p.hongyunct.com **Repository Path**: gadflybsd/p2p.hongyunct.com ## Basic Information - **Project Name**: p2p.hongyunct.com - **Description**: 红云创投P2P系统 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 4 - **Created**: 2015-02-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #p2p.hongyunct.com 开发文档 ###一、项目目录说明 +--Application // 项目目录
    |------Action // 控制器目录
           |---+-Home // 网站默认前台分组控制器目录
                 |-----IndexAction.class.php // Index模块控制器文件
                 |-----BorrowAction.class.php // Borrow模块控制器文件
           |-----Admin // 网站后台分组控制器目录
           |-----Member // 网站个人中心控制器目录
           |-----【......】 // 模块1独立配置文件路径
    |------Behavior // 行为目录
    |------Common //
           |-----common.php // 项目自定义函数自动引入文件
    |----+-Conf // 项目配置文件目录
           |---+-Module1 // 模块1独立配置文件路径
                 |-----config.php // 模块1独立配置文件
                 |-----loadfile.php // 模块1的CSS、JS加载配置
           |---+-Module2 // 模块2独立配置文件路径
                 |----config.php // 模块2独立配置文件
                 |----loadfile.php // 模块2的CSS、JS加载配置
           |----【......】// 其他模块目录
           |----config.php // 公共配置文件
    |------Event //
    |------Lang // 项目语言包目录
    |----+-Logic // 项目逻辑目录
           |-----Browser.class.php // 浏览器验证Class文件
           |-----Sendsms.class.php // 手机短信验证码Class文件
           |-----UClient.class.php // Discuz UClient连接Class文件
    |------Model // 项目模型目录
    |----+-Tpl // 项目
           |---+-Home // Home模块模板文件路径
                 |-----index.html // Home模块的index方法模板文件
                 |-----list.html // Home模块的list方法模板文件
                     |-----【......】// Home模块的其他方法模板文件
           |---+-Admin // Admin模块模板文件路径
                 |-----index.html // Admin模块的index方法模板文件
                 |-----list.html // Admin模块的list方法模板文件
                 |-----【......】// Admin模块的其他方法模板文件
           |----【......】// 其他模块模板目录
    |------Widget //
+--Install //项目安装模块方法目录
+--Public //项目公共文件目录,一般用于存放JS、CSS和图片
    |----Custom // 自定义文件目录
                 |-----Unify // Unify模板外部引用文件目录(包含CSS、JS和图片文件)
                 |-----Metronic // Metronic模板外部引用文件目录(包含CSS、JS和图片文件)
                 |-----Group1 // Group1分组所需的外部引用文件目录(包含CSS、JS和图片文件)
                 |-----Group2 // Group2分组所需的外部引用文件目录(包含CSS、JS和图片文件)
                 |-----【......】 // 其他分组所需的外部引用文件目录(包含CSS、JS和图片文件)
    |----JavaScript // 公共模块化Javascript目录
          |-----lib // Minify目录
          |-----Module // Javascript模块化存放目录
                 |-----Dialog // 弹出框JS文件目录
                 |-----Editor // 在线编辑器JS文件目录
                 |-----Effect// 页面动态效果JS文件目录
                 |-----Fonts // 字体JS文件目录
                 |-----Form // 表单操作JS文件目录
                 |-----Frame // JS框架JS文件目录
                 |-----Gallery // 图形处理JS文件目录
                 |-----Layout // 布局方式JS文件目录
                 |-----Nav // 导航类JS文件目录
                 |-----Share // 分享类JS文件目录
                 |-----Upload // 文件上传JS文件目录
    |----Images // 图片文件目录
+--ThinkPHP_3.1.3 //项目安装模块方法目录
+--Template //bootstrap模板文件目录
    |----Dswjcms1 // Dswjcms_p2p源码目录
    |----metronic.3.1.3 // metronic后台模板目录
    |----Unify // Unify前台模板目录
    |----Unify_p2p // 根据Unify前台模板修改的p2p模板目录
    |----Zoomer_HTML5_Template // Zoomer前台单页面模板目录
+--index.php //项目入口文件
+--install.php //项目安装文件
### 二、页面模板相关变量的命名空间 ##### 1、ajax提交路径 * jQuery方法:` meta.ajax` * ThinkPHP模板变量:`{$meta.ajax}` ##### 2、文件上传提交路径 * jQuery方法:` meta.upload` * ThinkPHP模板变量:`{$meta.upload}` ##### 3、图片验证码验证路径 * jQuery方法:` meta.verifyImg` * ThinkPHP模板变量:`{$meta.verifyImg}` ##### 4、短信验证码验证路径 * jQuery方法:` meta.verifySms` * ThinkPHP模板变量:`{$meta.verifySms}` ##### 5、当前页面的相关名称和路径 * 当前分组的名称:` {$page_name.group}`,当前分组首页的路径:`{$page_name.group_url}`; * 当前模块的名称:` {$page_name.module}`,当前模块首页的路径:`{$page_name.module_url}`; * 当前方法的名称:` {$page_name.action}`,当前页面的路径:`{$page_name.action_url}`; ##### 6、模板页面常量定义 * `__PUBLIC__ => "/Public"` * `__JAVASCRIPT__ => "/Public/JavaScript"` * `__IMAGES__ => "/Public/Images"` * `__CUSTOM__ => "/Public/Custom"` * `__SELF__ => "当前分组模块方法的URL路径,不包含域名"` * `__APPURL__ => "当前项目"包含域名的网站URL路径“` > **Tip:**前端系统已经自动加载了LazyLoad(异步加载)、cookie(js处理cookie)、mathRand(随机数生成)、coffee(绑定动作和回调函数)、timeCount(倒计时方法),不用再次加载这类方法。 > ``` /* 异步加载css、js文件 */ LazyLoad.css('/Public/Share/Weixin/WeixinApi.css'); LazyLoad.js('/Public/Share/Weixin/WeixinApi.js', function(){ alert('success'); ...... //异步加载成功后再做点什么 } /*jQuery Cookie 使用方法 */ $.cookie('the_cookie'); // 获得cookie $.cookie('the_cookie', 'the_value'); // 设置cookie $.cookie('the_cookie', 'the_value', { expires: 7 }); //设置带时间的cookie $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'sosuo8.com', secure: true }); $.cookie('the_cookie', '', { expires: -1 }); // 删除 $.cookie('the_cookie', null); // 删除 cookie /*timeCount倒计时函数 */
timeCount('#remain'); /*jQuery的事件绑定 */ $('.action-box').coffee({ click: { '#btn-add': function(){ //do something }, '#btn-delete': function(){ //do something } }, mouseenter: { '#btn-sort': function(){ //do something } } }); ``` ### 三、前端JS表单验证的方法 ###### 1、 增加所在模块配置文件下loadfile.php文件的该方法所需加载的CSS、JS文件,比如给Member/register的注册表单增加JS表单验证,需要修改`LIB_ROOT/Conf/Member/loadfile.php`文件,内容新增: ``` return array( 'member_register.js' => array( 'Module/Form/validate/jquery.validate.min.js', 'Module/Form/validate/jquery-methods.js', 'Module/Dialog/messenger/messenger.min.js', ), 'member_register.css' => array( 'Module/Dialog/messenger/messenger.css', ), ); ``` ###### 2、 修改页面模板文件,`LIB_ROOT/Tpl/Home/template/hyct/Member/register.html`,给`
`标签增加class`class="Validator"` ,如果采用ajax提交,则修改``标签,不用定义Action;如果采用post提交,则需要修改成``,需要设定Action。下面是一个完整的POST方式HTML表单验证: ``` ......
``` ###### 3、 自定义验证规则和提示 1. HTML方法 2. JS方法,给`
`标签增加`data-config="validator"`后,定义validator变量或外部引用一个已定义validator的JS变量的js文件,下面是一个自定义验证规则的例子: ``` var validator = { rules: { username: { required: true, byteRangeLength: [4,12]}, realname: { required: true, chinese: true }, password: { required: true, password: true}, repasswd: { required: true, equalTo: "[name=password]" }, email: { required: true, email: true}, age:{required: true, range: [17,75]}, idcard: {required: true, isIdCardNo: true}, mobile: {required: true, isMobile: true}, vdcode: { required:true, remote:{ url: meta.verifyImg, type: "post"} }, message: {required: true, minlength: 10, maxlength:10000}, catname: { required: true} }, messages:{ username: { required: “用户名必须填写!”, byteRangeLength: "用户名需要{0}-{1}个字符(汉字算2个字符)"}, realname: { required: “真实姓名必须填写!”, chinese: "真实姓名必须使用中文!"}, password: { required: “登录密码必须填写!”, password: “密码强度不够,请设置一个复杂密码“}, repasswd: { required: “重复密码必须填写!”, equalTo: “重复密码与新设定的密码不一致!”}, email: { required: “请输入电子邮箱地址”, email: “请输入正确格式的电子邮件”}, age: {required: “年龄必须填写或选择!”, range: “年龄必须在17岁至75岁范围之间!”}, idcard: { required: “证件号码必须填写!”, isIdCardNo: “证件号码的格式有误!”}, mobile: { required: “联系手机必须填写!”, isMobile: “手机号码格式有误!”}, vdcode: { required: “验证码必须填写!”, remote: “验证码验证错误!” }, message: {required: “评论信息必须填写!”, minlength: “评论信息不能少于10个字符”, maxlength: “评论信息不能多于10000个字符!”}, catname: “分类栏目名称必须填写!” } } ``` ######4、 忽略某个项目不使用默认规则验证的方法:给该项目增加`class=“ignore”`,例如: ``` ``` ######5、 默认校验规则 1. required:true 必输字段 2. remote:"check.php" 使用ajax方法调用check.php验证输入值 3. email:true 必须输入正确格式的电子邮件 4. url:true 必须输入正确格式的网址 5. date:true 必须输入正确格式的日期 日期校验ie6出错,慎用 6. dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性 7. number:true 必须输入合法的数字(负数,小数) 8. digits:true 必须输入整数 9. creditcard: true 必须输入合法的信用卡号 10. equalTo:"#field" 输入值必须和#field相同 11. accept: 输入拥有合法后缀名的字符串(上传文件的后缀) 12. maxlength:5 输入长度最多是5的字符串(汉字算一个字符) 13. minlength:10 输入长度最小是10的字符串(汉字算一个字符) 14. rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符) 15. range:[5,10] 输入值必须介于 5 和 10 之间 16. max:5 输入值不能大于5 17. min:10 输入值不能小于10 18. chinese:true 请输入正确的中文 19. password:true 密码由6-16位数字、字母、特殊字符组合 20. isIdCardNo:true 请正确输入您的身份证号码 21. passport:true 请正确输入您的护照编号 22. isMobile:true 请正确填写您的手机号码 23. isTel:true 请正确填写您的电话号码 24. isZipCode:true 请正确填写您的邮政编码 * ######radio和checkbox、select的验证 > **Tip:**radio的required表示必须选中一个 ``` ``` > **Tip:**checkbox的required表示必须选中 ``` ``` checkbox的minlength表示必须选中的最小个数,maxlength表示最大的选中个数,rangelength:[2,3]表 示选中个数区间 ``` ``` > **Tip:**select的required表示选中的value不能为空 ``` ``` select的minlength表示选中的最小个数(可多选的select),maxlength表示最大的选中个 数,rangelength:[2,3]表示选中个数区间 ``` ``` > **Tip:**异步验证方法:remote:URL,使用ajax方式进行验证,默认会提交当前验证的值到远程地址,如果需要提交其他的值,可以使用data选项 ``` remote: { url: "check-email.php", //后台处理程序 type: "post", //数据发送方式 dataType: "json", //接受数据格式 data: { //要传递的数据 username: function() { return $("#username").val(); } } } ``` 远程地址只能输出 "true" 或 "false",不能有其它输出 测试