这篇讲讲模型。
1. phpcms/libs/classes/model.class.php
这是所有模型类的父类,其他模型类继承它,设置表名,表前缀。
1 2 3 4 5 6 7 8
pc_base::load_sys_class('db_factory', '', 0); class model { protected $db_config = ''; //数据库配置 protected $db = ''; //数据库连接 //调用数据库的配置
protected $db_setting = 'default';
项
9 protected $table_name = ''; 1 0 public 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 { $this->db_setting = 'default'; } $this->table_name = $this->db_config[$this->db_setting]['tablepre'].$this>table_name; $this->db_tablepre = $this->db_config[$this->db_setting]['tablepre']; $this->db = db_factory::get_instance($this->db_config)->get_databa se($this->db_setting); } ............ } public function __construct() { if (!isset($this->db_config[$this->db_setting])) $db_tablepre = ''; //表前缀 //数据表名
该类还定义了通用的数据库操作函数。查询、插入、分页查询、删除等等。
1 2
final public function select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='') { if (is_array($where)) $where = $this->sqls($where); return $this->db->select($data, $this->table_name, $where, $limit, $order, $group, $key); }
3 4
1 2 3 4
final public function delete($where) { if (is_array($where)) $where = $this->sqls($where); return $this->db->delete($this->table_name, $where); }
2. phpcms/model/xxx_model.class.php
所有和数据库表对应的模型都在此目录下,比如敏感词过滤模型。具体的模型类一般就一个构造函数,只 有少数会添加几个额外的函数。
1 2
defined('IN_PHPCMS') or exit('No permission resources.'); pc_base::load_sys_class('model', '', 0); class badword_model extends model {
3 4 public $table_name = ''; 5 public function __construct() { 6 7 8 $this->db_setting = 'default'; 9 $this->table_name = 'badword'; 10 parent::__construct(); 11 } 12 13 function replace_badword($str) { 14 15 16 17 //读取敏感词缓存 $badword_cache = getcache('badword','commons'); $this->db_config = pc_base::load_config('database');
18 19 20 21 22 23 24 25
foreach($badword_cache as $data){ if($data['replaceword'] == ''){ $replaceword_new ='*'; } else { $replaceword_new = $data['replaceword']; } $replaceword[] = ($data['level']=='1') ? $replaceword_new : ''; $replace[] = $data['badword']; }
26 27 $str = str_replace($replace, $replaceword, $str); return $str; } }
目前,phpcms 有接近 110 张表,不过有很多用不上,应该把重点放在 phpcms/libs/classes/model.class.php 上面,看看那些数据库操作函数是如何实现的。
3. 自定义模型 : phpcms/model/content_model.class.php
并不是所有数据库表都对应一个模型,自建模型的情况要复杂些。当我们自建一个简历模型,设定表名为 resume,选择好模板文件,定义每个字段之后,有 4 张表来保存这些信息。 1. v9_model:保存自建模型的基本信息,比如模板文件名称、表名等。 2. v9_model_field:保存自建模型每个字段的信息,比如类型(文本,联动菜单)等等。 3. v9_resume:phpcms 自动创建的表,保存每一条自建模型基本数据,一般是那些经常查询的字段都 建在这个表里。 4. v9_resume_data:phpcms 自动创建的表,保存每一条自建模型额外的数据信息。建议将不那么经 常被查询的字段,比如内容(大文本)字段保存在这个表里。
混淆文件 proguard-rules.pro 参数详解: [plain]view plain copy print? 1.-optimizationpasses 5 # 指定代码 的压缩级别 2.-dontusemixedcaseclassnames # 是否使用 大小写混合 3.-dontskipnonpubliclibraryclasses # 是否混淆 第三方jar 4.-dontpreverify # 混淆时是 否做预校验 5.-verbose # 混淆时是 否记录日志 6.-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所 采用的算法 7. 8.-keep public class * extends android.app.Activity # 保持哪些 类不被混淆 9.-keep public class * extends android.app.Application # 保持哪些 类不被混淆 10.-keep public class * extends android.app.Service # 保持哪些 类不被混淆 11.-keep public class * extends android.content.BroadcastReceiver # 保持哪些 类不被混淆 12.-keep public class * extends android.content.ContentProvider # 保持哪些 类不被混淆 13.-keep public class * extends android.app.backup.BackupAgentHelper # 保持哪些 类不被混淆 14.-keep public class * extends android.preference.Preference # 保持哪些 类不被混淆 15.-keep public class com.android.vending.licensing.ILicensingService # 保持哪些 类不被混淆 16. 17.-keepclasseswithmembernames class * { # 保 持 native 方法不被混淆 18. native
编辑pro文件,找到以下代码 -dontskipnonpubliclibraryclassmembers -target 1.5 -dontshrink -dontoptimize -useuniqueclassmembernames -keeppackagenames -keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table ,*Annotation*,Synthetic,EnclosingMethod -keepparameternames -dontwarn -ignorewarnings 在代码后添加相关配置 #不混淆lib下jar包里面的class文件 -keep class WebRoot.WEB-INFO.lib.* #不混淆action包里面的类名,字段名,方法名 #在界面上会用到这些字段和getset方法 -keepnames class **.kf.**.action.**{ public private protected
常用HTML代码解释 一、文字 1.标题文字.......... 10.下标字.......... 11.上标字.......... 12.文字闪烁效果 13.换行(也称回车)
14.分段 15.文字的对齐方向
#号可为left:表向左对齐(预设值)center:表向中对齐right:表向右对齐P.S.
之后的文字都会以所设的对齐方式显示,直到出现另一个
改变其对齐方向,遇到
I C S35.040 A90 中华人民共和国公共安全行业标准 G A/T2000.2 2014 公安信息代码 第2部分:治安管理信息分类编码规则 I n f o r m a t i o n c o d e s f o r p u b l i c s e c u r i t y i n d u s t r y P a r t2:C o d i n g r u l e f o r c a t e g o r y o f s e c u r i t y m a n a g e m e n t i n f o r m a t i o n 2014-09-28发布2014-09-28实施
前言 本部分按照G B/T1.1 2009给出的规则起草三 本部分为G A/T2000的第2部分三 本部分由公安部治安管理局提出三 本部分由公安部计算机与信息处理标准化技术委员会归口三 本部分负责起草单位:公安部治安管理局二福建省公安厅治安总队二广东省公安厅治安局二北京航天金盾科技有限公司二东软集团股份有限公司二长春鸿达信息科技股份有限公司二福建天创信息科技有限公司三 本部分主要起草人:唐玉建二方鹏二张晖二李冰二刘杰二郑为太二吴斌二王立群二陈海滨二李银波二肖勇三
公安信息代码 第2部分:治安管理信息分类编码规则 1 范围 G A /T2000的本部分规定了治安管理信息分类编码规则三 本部分适用于公安信息化建设和应用三 2 规范性引用文件 下列文件对于本文件的应用是必不可少的三凡是注日期的引用文件,仅注日期的版本适用于本文件三凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件三 G A /T2000.1 公安信息代码 第1部分: 治安管理业务分类与代码3 编码规则 代码采用层次码,由6位数字表示,按大类二小类和细目三个层次进行划分和编码,其结构如图1 所示三?? 第一层?? 第二层 ?? 第三层 图1 编码结构图 其中: 第一层(1二2位)为大类代码, 00 代表基础要素信息,其他采用G A /T2000.1规定的业务域编码; 第二层(3二4位)为小类代码,对应基础要素信息, 01 代表实有人口基础信息, 02 代表辖区单位基础信息, 03 代表地(住)址基础信息,其他采用G A /T2000.1规定的业务活动编码; 第三层(5二6位)为细目代码,按顺序编码三
HTML(HyperText Mark-up Language)即超文本标记语言或超文本链接标示语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。 编辑本段HTML代码大全 1.结构性定义 文件类型 (放在档案的开头与结尾) 文件主题
(显示原始码之用) 样本 键盘输入 变数 定义 (有些浏览器不提供) 地址 大字 小字 与外观相关的标签(作者自订的表现方式) 加粗 斜体 底线 (尚有些浏览器不提供) 删除线 实验四:Oracle 11g数据库加密及代码混淆 实验学时:2 实验类型:综合 实验要求:必修 一、实验目的 该实验主要是使学生学会在数据库中如何进行加密、解密以及计算hash、MAC。通过该实验的学习,是学生深入了解数据库中数据加密的目的、准则;掌握数据库加密、解密算法以及密钥的产生和存储,hash算法以及MAC。 二、实验内容 Oracle 11g数据库加、解密,hash以及MAC值计算;oracle 中的代码混淆 三、实验原理、方法和手段 1.数据库加密、解密(保证机密性)。 利用oracle 11g 中PL/SQL 包DBMS_CRYPTO 进行数据的加、解密。 利用这两个函数dbms_crypto.Encrypt和dbms_crypto.Decrypt ●Data Encryption Standard (DES), Triple DES (3DES, 2-key) ●Advanced Encryption Standard (AES)(128、192、256) 2.hash 和MAC 值的计算(保证完整性) 利用oracle 11g 中PL/SQL 包DBMS_CRYPTO 进行。 采用DBMS_CRYPTO.Hash和 DBMS_CRYPTO.Mac进行。 ●SHA-1 Cryptographic Hash ●SHA-1 Message Authentication Code (MAC)(Usage of SHA-1 is more secure than MD5)
3.oracle中代码混淆 参见oracle官方文档《PL/SQL User's Guide and Reference》,利用wrap utility对代码进行混淆。 四、实验组织运行要求 根据本实验的特点,采用以学生自主训练为主的开放模式组织教学。 五、实验条件 硬件:CPU:2.4G 内存:1G 硬盘:80G 软件:Windows 2003、WinXP、Win7 及以上操作系统 ,Oracle 11g数据库 六、实验步骤 1.请写一段PL/SQL代码实现在oracle中加密自己的学号,并将密文输出。请使用DBMS_CRYPTO 中:ENCRYPT_AES192、CHAIN_ECB 和PAD_PKCS5,并使用RANDOMBYTES函数产生密钥。
一、HTML各种命令的代码: 1、文本标签(命令)
创建预格式化文本 创建最大的标题 创建最小的标题 创建黑体字 创建斜体字 创建打字机风格的字体 创建一个引用,通常是斜体 加重一个单词(通常是斜体加黑体) 加重一个单词(通常是斜体加黑体) 设置字体大小,从 1 到 7 设置字体的颜色,使用名字或十六进制值2、图形(命令) 添加一个图像 排列对齐一个图像:左中右或上中下 设置围绕一个图像的边框的大小 将段落按左、中、右对齐
插入一个回车换行符
HTML 4.01 快速参考 来自 W3School 的 HTML 快速参考。可以打印它,以备日常使用。 HTML Basic Document
This text is preformattedLogical Styles This text is emphasized This text is strong
This is some computer code
Physical Styles This text is bold This text is italic Links, Anchors, and Image Elements This is a Link Send e-mailA named anchor:html网页编辑代码大全详细使用方法 添加音乐 注册会员登录首页开通窝窝QQ-交流群站内娱乐颜色代码搜索帖子《声色具全》Summer°啦啦之乖乖宝贝啦啦&毛毛《简粉粉色》莫晓晓《简约蓝色》莫晓晓rose.《简约灰色》莫晓晓圣诞女孩【星期⒏音乐论坛】用心聆听,这里有你想要的声音。?【资源共享】?【论坛HTML帖子常用代码】-发现代码贴好看,不懂的,有兴趣的可以研究下。 网页搜索站内搜索搜索 返回列表回复发帖 发新话题发布投票发布悬赏发布辩论发布活动发布视频发布商品沵旳"唯1。发短消息 加为好友 沵旳"唯1。(只能a1自己。)当前离线 那些所谓d2情〃 UID21618帖子866精华42积分9318威望976金钱3587贡献1450阅读权限150性别女来自寂’在线时间248小时注册时间2009-11-29最后登录2010-3-1 ?星期⒏管理版主? UID21618帖子866精华42积分9318威望976金钱3587贡献1450阅读权限150性别女来自寂’在线时间248小时注册时间2009-11-29最后登录2010-3-1 【楼主】 打印字体大小:tT发表于2010-1-2114:53|只看该作者踩窝 窝送礼物问候Ta【论坛HTML帖子常用代码】-发现代码贴好看,不懂的,有兴趣的可以研究下。 关于“html图片移动...”的内容 本站搜索更多关于“html图片移动代码”的内容 本帖最后由沵旳"唯1。于2010-1-2114:54编辑 一、文字标记 基本代码如下:
JAVA代码混淆 1.ProGuard 简介: 是一款免费的Java类文件压缩器、优化器和混淆器。它能发现并删除无用类、字段(field)、方法和属性值(attribute)。它也能优化字节码并删除无用的指令。最后,它使用简单无意义的名字来重命名类名、字段名和方法名。经过以上操作的jar文件会变得更小,并很难进行逆向工程。它支持脚本控制,可以使用GUI界面,与eclipse集成,支持J2ME。 价格: 免费 使用方式: 1、使用图形界面,如下图:
2、使用脚本语句,将执行脚本语句加入相应脚本中执行,例如加入ant、maven项目自动 构建中,在项目部署前混淆代码。 应用情况: 1、需要对配置项了解具体含义; 2、不需要混淆的属性、方法、类,需要在.pro配置文件中说明; 3、混淆方式为项目打包后再混淆; 4、不能与myeclipse、eclipse集成使用; 5、可以在ant、maven中的配置文件中添加脚本语句使用(编写相应的.Pro文件,增加 ProGuard的执行jar文件); 6、混淆时将无用的语句去除,优化方法间结构; 7、混淆内容:属性、方法名称、类名称,对方法过程不做混淆处理,混淆力度不大。2.Jocky 简介: 在Sun JDK中提供的Java编译器(javac)的基础上完成的,修改了其中的代码生成过程,对编译器生成的中间代码进行混淆,最后再生成class文件,这样编译和混淆只需要一个步骤就可以完成。 价格: 免费 使用方式: 1、在myeclipse与eclipse中使用安装插件方式,使用Jocky混淆。如图:
使用后会生成配置文件,用于混淆设置使用,该配置文件类似ant 配置文件,如下图: 混淆等级有5种(public、private、package、protected、all)。 2、使用命令行或者脚本,将命令行加入脚本中执行,如在ant配置文件中加入执行脚本后 可以执行混淆程序。执行脚本如下图: 目前在maven中暂不能使用Jocky混淆。
Flash常用代码大全 1、用命令载入一个动画,我需要确定载入动画在画面中的位置,用什么语言来设置? 例如载入名为dd.swf的动画,我要确定这个动画的中心位置在(205,250),该怎么设置? 在要加载动画的那钟加入 loadMovie("dd.swf", "a"); a._x=205; a._y=250; 你得先做一个空的MC起名叫"a",导入时,在右下角也起名为a 2、用flash 做那种弹出的小窗口 分两步: 给flash中的按钮加入如下action: on (release) { getURL ("javascript:MM_openBrWindow('newweb.htm','','width=600,height=100')"); } 在HTML页面的...之间加入下面的javascript代码. 3、如何使得flash一打开就是全屏? fscommand("fullscreen",true) 如何不能使用右键?
fscommand ("showmenu", "false"); 4、当鼠标经过时动画播放到某处 on (rollover) { gotoAndPlay(10); } 当鼠标按下时动画播放到某处 on (release) { gotoAndPlay(1); } 5、播完动画后自动跳到某网页 getURL("siteindex.htm", _self); 6、设为首页 on (release) { getURL("javascript:void(document.links.style.behavior='url(#default#homepage)');v oid document.links.setHomePage ('https://www.sodocs.net/doc/5a1067506.html,/')", "_self", "POST"); } 注意要将网页中的flash的ID号命名为"links"
一.目录文件组织 1.所有的文件名符合文件命名规范 2.文件和模块分组清晰 二.程序结构 3.所有的模块(函数和外部接口)定义清晰,模块分解清楚 4.结构设计能够满足机能变更,便于重构 5.模块中所有的数据结构都定义为局部的,并且通过定义好的函数进行访问 6.为外部定义了良好的函数接口,且修改时不影响其他代码模块 7.代码体系构架对空间和速度都已经进行考虑 三.代码组织 8.所有的代码行在80字符以内 9.每个程序文件都小于2000行 10.每个函数显示不超过100行 11.所有的变量声明每行只声明一个 12.所有的变量名都小于32字符 13.所有的函数名都小于64个字符 14.每个函数之间都用空行进行分开 15.所有的行每行最多只有一句代码或一个表达式 四.函数 16.函数注释清楚地描述函数和它的功能 17.函数的名字清晰的定义了它的目标以及函数所做的事情 18.函数的参数遵循一个明显的顺序 19.函数由并列关系的语句组成 20.函数高内聚,只做一件事情,并做好 21.所有的参数小于7个,且都被使用 22.函数使用了最少数目的return语句 23.函数检查了输入数据的合法性 24.函数异常处理清楚 25.函数设计已经考虑了将来的变化
五.数据类型与变量 26.Plugin中尽量避免全局变量的使用 27.每一个变量都在接近使用它的地方才初始化 28.变量的命名完全、明确的描述了该变量代表什么 29.同一种类型命名使用统一的前缀 30.所有的变量都被使用 31.所有的数组访问要考虑越界情况 32.变量在使用前进行必要的null值判断和处理六.条件判断 33.普通的情况在if下处理而不是else 34.最常用的情况最先判断 35.嵌套层次小于3层 七.循环 36.当有明确的多次循环操作,使用For循环 37.当有不明确的多次循环操作,while循环被使用 38.变量定义,数据库读写尽量在循环外进行 39.循环嵌套的次数小于3次 八.注释 40.使用统一的注释模版 41.每个类,每个函数都要有注释 42.注释量不低于20% 43.注释要随着代码改变而进行更新 九.其他 44.无用的代码和注解已经删除 45.页面的布局要符合统一操作说明
数据库表结构文档 1 表名 USERS (系统用户) 主键 USERID 序号字段名称字段说明类型位数属性备注 1 USERID 用户账号 Int 非空主键,自增 2 LOGINNAME 登陆账户 Varchar 32 非空唯一键 3 USERNAME 用户姓名 Varchar 32 非空 4 PASSWORD 登陆口令 Varchar 32 非空 5 FLAG 用户状态 Varchar 1 6 非空 1、正常2、退休 3、离职 6 ROLEID 角色账号 SmallInt 短整型 2 表名 PERSONALDATA (用户个人基本信息) 主键 USERID 序号字段名称字段说明类型位数属性备注 1 USERID 用户账号 Int 非空主键,与USERS一 对一 2 IDCARD 身份证 Varchar 20 可空 3 USERNAME 用户姓名 Varchar 32 可空允许冗余,提高查 询性能 4 SEX 用户性别 Nchar 1 可空一个汉字,check约 束在(男,女) 5 BIRTH 出生年月Varchar 20 可空数据库中日期都设 日计为字符串,方便 操作,以下一样 6 CALLBE 职称系列 Varchar 16 可空与BASEDATAS表 关联 7 CALLCONCRETELY 职称具体 Varchar 16 可空与BASEDATAS表 关联
现职称任职8 NOWCALLDATE Varchar 20 可空 时间 9 LONGEVITY 资历 Varchar 16 可空与BASEDATAS表 关联 10 NOWSTATION 现岗位 Varchar 16 可空与BASEDATAS表 关联 11 NSENGAGETIME 现岗位聘Varchar 20 可空 任时间 12 BELONGTOCOLLEGE 所属学院 Varchar 16 可空与BASEDATAS表 关联 13 BELONGTODEPARTMENT 所属部门 Varchar 16 可空与BASEDATAS表关联 14 POLITYVISAGE 政治面貌 Varchar 16 可空与BASEDATAS表 关联 15 ATTENDJOBTIME 参加工作Varchar 20 可空 时间 16 FINALSTUDY 最后学历 Varchar 16 可空与BASEDATAS表 关联 17 FINALDEGREE 最后学位 Varchar 16 可空与BASEDATAS表 关联 18 FINALSDDEMO 最后学历Text 可空 学位说明 19 IDENTITYS 身份 Varchar 16 可空与BASEDATAS表 关联(教学人员和 非教学人员) 20 CALLDETAIL 职称详细 Varchar 可空与BASEDATAS表 关联 21 FILLINTIME 填入时间 Varchar 20 可空 22 FINALMODIFYTIME 最后修改Varchar 20 可空 时间 23 CHECKSTATE 审核状态 Varchar 16 非空与BASEDATAS表 关联(1、已审核2、 未审核3、已作废) 24 CHECKUSER 审核人 Int 可空领导对个人资料进
HTML5 常用语法一览 HTML头部标记 元信息标记属性 注:HTML5中不支持scheme属性,新增charset属性,具体查看:HTML5 标签HTML 主体标记
属性注: 在 HTML 5 中,删除了所有
的特殊属性。具体查看:HTML5 标签特殊符号 标题字标记 注: 具体查看 HTML5在 HTML 5 中,h1 - h6 元素的 "align" 属性不被支持。 文字的修饰标记 字体标记属性 注:请查看HTML 5 标签 在 HTML 4.01 中,不赞成使用该元素。 在 HTML 5 中,不支持该元素,但是允许由所见即所得的编辑器来插入该元素。
在 HTML 5 中,仅支持 style 属性。列表标记 超链接标记 链接目标窗口属性target 图片标记属性
图片排列align属性值 注:请查看HTML 5 标签 表格标记 注:在 HTML 5 中, 不支持
标签 "colspan" 和 "rowspan" 属性。 表单标记 |
---|