记录本人开发H-CMS系统全过程

开发规范

  1. 目录及文件命名规范:下划线命名法;
  2. 类的命名规范:驼峰命名法;
  3. 方法及变量的命名规范:下划线命名法;

8.11记

碎碎念

  • 昨天偶然看到一个小朋友在B站直播开发插件,发现他会随时记录自己的开发思路和过程,感觉很不错,这也是自己之前所欠缺的,所以打算从今天开始整理自己的开发日记,刚开始没什么风格,可能会比较乱。

实操问题

1. 感觉后台页面打开速读太慢了,但是不知道是什么原因。(经过测试之后发现是由于后台多提调用同一函数,稍微修改了一下调用机制减少了调用次数,但是效果还是不理想,现在主要问题在于注入函数调用费时)
2. 根据之前[教程]设置的submit返回按钮失效。(经过测试发现是PHP端判断条件位置放错了,判断的依据是点击的那一个submit按钮,所以判断条件应该放在需要按submit的位置。)
3. 没看明白第52节课讲的前台瘦身是如何完成的,绕的有点晕,明天再研究一下。

遗留BUG

  1. 实现绑定邮箱
  2. 管理员注册时用户名、邮箱查重(通过查重函数解决)
  3. 管理员邮箱激活

8.12记

碎碎念

  • 发现我在意的很多问题都是前端美观的问题...

实操问题

  1. 设置textarea文本输入框无法被拉伸:resize: none; ;若只设定宽度和高度还是会显示拉伸。
  2. 设置p段落的首行缩进:text-indent:0; 可以使用各种单位,如:px。
  3. 设置input文本框提示文字(填写时消失):简单点可以用->HTML5的placeholder属性;复杂点可以用->JS的onfocus事件检查当前值,如果是默认值,就将value属性置空.如:
<input type="text" value="请输入内容" onfocus="javascript:if(this.value=='请输入内容')this.value='';">

遗留BUG

  1. 管理功能前台界面的排版有点乱

8.13记

碎碎念

  1. 今天去模拟数学建模,感觉自己掌握的这点知识还是不够用。

实操问题

  1. 感觉所写的方法复用性不是很高

遗留BUG

  1. 实现用户名和邮箱查重。(通过验证函数解决)
  2. 验证当前用户权限

8.14记

###碎碎念

  • 生命之轻你尚不能承受,就不要为那些重若泰山的事情而苦恼了。

实操问题

  1. 实现修改用户信息的时候若不修改密码则填空。(在写入端做一个条件判断,若不填则sql语句就不对该字段进行添加)
  2. 管理员列表分页时顺序显示错乱。(设置双标准排序,以管理员等级逆序为第一原则以注册时间顺序为第二原则就可以实现正确的显示分页信息)
  3. cursor属性设置:Auto(文本),Crosshair(十字架),Default(鼠标箭头),Pointer(手),Move(移动),【e-resize,ne-resize,nw-resize,n-resize,se-resize,sw-resize,s-resize,w-resize】(方位拉伸),text(文本),wait(等待),help(帮助)
  4. 数字分页省略问题

遗留BUG

  1. 实现等级规则id查重,基本上查重都没有做。(通过查重函数解决)

主要开发思路

  • 想采用页面分类,将各个页面做好,在采用功能分类将页面中重复的功能封装,重构页面的控制器。

8.15记

###碎碎念

  • 时间表达式

实操问题

  1. 数字分页省略问题。(双重判断,若总页码小于五则全部显示,否则若当前页小于总页码减四则显示后五条,否则显示从当前页码起的五条)

8.17记

碎碎念

  • 好傻啊,今天才想起来加上开发进程。

开发进程

  • 调整数字分页的当前页页码样式
  • 设置后台登录数据库端信息验证
  • 设置后台登录JS验证
  • 设置后台页面为登录后可见
  • 设置HTML标签转义
  • 实现修改信息后返回当前页而不是第一页

实操问题

  1. 在实现修改信息后返回当前页而不是第一页没有找到一个很好的返回上上页的方法;

开发思路

  1. 尽可能增强方法的复用性,尽可能减少注入变量的次数;

8.19记

开发进程

  • 创建网站导航管理页面,添加导航实体类和控制器;
  • 创建增改删顶级导航功能(详细属性未设置);
  • 添加子导航功能(详细属性未设置);
  • 添加导航前台验证;
  • 增添后台权重排序;

遗留BUG

  1. 删除导航时文档去留问题(不保留文档);
  2. 删除导航时是否保留原文件(不删除文件);
  3. 创建子导航时如何设置父导航继承问题(设置隐藏字段id或注入变量pid);
  4. 导航属性设置;

8.20记

碎碎念

  • 前台方法public,后台方法private or protected;

开发进程

  1. 前台显示顶级导航并按权重值排序;
  2. 分离登陆登出方法;
  3. 将目前作品上传到服务器;

实操问题

  1. 今天我把进行了一小半的项目上传到了服务器上做测试,结果却返现主页没办法显示,登录页显示编译错误,于是就开始排错。目前发现错误:文件权限设置错误、mysqli拓展没有打开(检查这两个错误花了我一下午的时间);

遗留BUG

  1. 设置导航隐藏属性;
  2. 设置服务器网站目录文件夹权限;

8.21记

开发进程

  1. 创建列表模版 list.tpl;
  2. 通过导航显示列表;
  3. 创建文档管理页面,添加导航实体类和控制器;
  4. 创建文档发布页面;
  5. 嵌入Ckeditor编辑器;

实操问题

  1. 文件加载时间太长;
  2. 启动缓存文件后依旧会进行长时间加载,而不是直接通过缓存文件启动;

8.22记

开发进程

  1. 创建上传文件页面,增添上传文件实体类;
  2. DIY设置CKeditor图片上传;

8.23记

开发进程

  1. 创建图片处理实体类和方法;
  2. 实现编辑器上传图片加水印;
  3. 获取栏目下拉菜单;

遗留BUG

  1. 获取栏目下拉菜单的方式可以改进;