黑马程序员技术交流社区
标题: 【黑马程序员南京】PHP博客项目架构(下) [打印本页]
作者: 黑马小奇 时间: 2017-11-8 22:27
标题: 【黑马程序员南京】PHP博客项目架构(下)
实现无限极分类管理无限极分类分析,实现无限极分类,简单来说就是对分类表中的数据进行增删改查,首先获取一条顶级分类的数据,顶级分类就是父元素id(c_parent_id)为0 的元素并获取到他的id,然后检索出父元素id为之前元素的id的数据并将其储存起来,然后再通过id找到其子元素的id,以此类推,直到找不到子分类,再去上一级的同级元素查找其子分类,直到找不到其子分类,再去上一级查找,直到查找完所有数据,将所有的数据放到一个静态的属性中,因为静态属性不会因为方法的自调用而改变其原来的值,这个过程需要用到递归算法。
无限极分类就是无限制分类的数量,分类出现在首页,所以应该在首页实现分类管理。找到后台登录的页面,然后在其添加相应的链接,使其完善对表数据的增删改查功能以及跳转到对应的html文件。
然后增加一个控制器来管理分类,在后台的控制文件夹下创建category.class.php文件来管理分类。在分类里增加相应的方法,通过SQL语句获取所有的分类,然后在静态的html文件里使用assign方法和display方法将数据库中的数据添加到静态的html文件中,修改过CSS和JS文件的路径之后将从数据库得到的数据遍历到静态页面中。
在控制器中增加方法来添加分类,并完善方法,需要从数据库中得到分类列表,并根据分类id来确定分类添加的父分类,然后在模型中添加相应的方法来判断提交数据的合法性和合理性,数据不能为空,而且分类的名字不能和已有名字相同,判断通过后,将提交的数据写入数据库中,然后通过assign和display方法将数据显示在静态html文件中。
增加删除分类的功能,删除分类实质上就是将分类数据从数据库中删除,所以要在控制器中增加删除分类的方法,同时在模型中判断该分类是否可以被删除,首先判断要删除的分类的名字是否存在,然后判断该分类下有没有子分类,拥有子分类的分类不能被删除,然后调用控制器中的方法来删除分类。还要考虑到,如果用户误操作点击了删除按钮,要改用户一个缓冲的过程,即在html文件中增加JS脚本来确认是否真的要删除该分类。
增加编辑分类的功能,通过id从数据库中取出要编辑的分类,并进行编辑,将编辑完成后的数据写入数据库,然后实现在静态html文件中。
增加表单更新功能,从页面中获取到更新的内容并进行合法性合理性判断,不能为空且同一分类下不能有名字相同的子分类,通过验证之后将数据写入数据库中,并实现在静态页面中。
实现博文管理功能博文管理实际上也是对博文进行增删改查等操作,需要连接数据库得到所有的文章列表,然后将内容显示到静态的html文件中。
在实现过程中发现,网页的头部,侧边栏和页脚都是不变的,所以可以将这几段代码提取出来,放入公共代码中,再在html页面中将文件加载进来,可以提高代码利用率,减少代码量,提高页面的加载速度。将html页面中的header、sidebar和footer部分提取出来,分别放入新建的public文件夹中,修改文件中的CSS和JS路径,再使用include方法将这三个部分分别加载进html页面中。
实现显示博文的功能,在后台控制器中增加方法来显示所有文章,然后通过模型中的方法从数据库中取出所有数据,通过控制器调用assign和display方法来显示数据,过程中要确定文章的分类信息,才能使文章正常显示出来。静态页面中使用遍历将动态数据加载到静态页面中。
实现添加博文功能,文章的发布需要在分类里进行,所以需要获取到分类的id进行关联,需要用控制器获取所有的分类,使用视图将分类显示出来。在用户提交内容后要调用模型实现数据入库,入库同样需要验证数据的合法性,即所有提交的内容都不能为空,完成验证后将数据显示到页面中。
实现博文删除功能,在控制器中添加对应的方法来实现博文删除功能,在模型中添加方法来实现对数据库内容的删除的方法。
实现博文编辑功能,在控制器中添加对应的方法来实现对博文的编辑功能,需要在模型中添加方法来连接数据库,并通过id来获取需要编辑的博文的内容,分类等数据,编辑完成后进行数据的合法性验证,内容、日期等数据不能为空,验证通过后将数据写入到数据库中。
实现博文的分页功能,所谓分页,就是将数据库中的所有内容分成多页来显示,每一页有固定显示的数量,在用户浏览不同页数的时候,页数也显示相应的样式。首先应该修改前端的html页面的分页连接,然后使用控制器调用相应的分页类,而分页是对博文列表进行分页的,所以需要使用控制器获取到文章的所有内容,从而获取总记录数。分页时每页显示的数量都是一致的,所以应该在配置文件中配置每页显示的博文数量,而且要在分页类中引入配置文件,在控制器调用模型和获取数据时传入相应的页码,然后在模型中使用limit进行分页,然后将需要显示的分页连接引入到html文件即可。
实现显示博文的功能,显示博文简单来说就是将数据从数据库取出,然后通过视图加载入html文件中。使用控制器获取到所有博文的内容,然后通过模型调用视图将数据显示在页面上;同时调用之前的分页类,将数据进行分页显示,并添加分页连接。
实现查看博文内容,因为每个博文的内容的长度都不是固定不变的,所以需要将前台显示的博文内容的长度进行控制,并添加显示更多的链接使其跳转到博文内容的页面。调用控制器获取到所有所有博文的内容,调用视图将数据显示出来。
实现前台用户管理前台用户管理就是对前台用户实现注册登录功能、以及用户登录后得到评论点赞功能,文章的筛选检索功能等。
实现用户注册及登录功能首先修改前台的页面,修改CSS和JS路径,在控制器中增加相应方法来实现注册功能。方法中进行数据的接收,并验证其合理性和合法性,验证通过后将数据写入数据库。
然后实现用户登录功能,增加控制器接收用户提交的数据,并进行合法性和合理性验证,在模型中增加方法来获取用户信息,验证通过后跳转到相应的前台页面,并在页面显示用户的登录信息,如用户名等。
实现后台用户列表功能首先增加用户操作的入口连接,然后在后台增加控制器,增加方法,实现获取用户列表并将其显示出来,增加模型方法来实现与数据库的获取数据的功能,将得到的用户数据加载到静态页面中。后期可能用户数量较多,所以要采用分页的功能,在控制器中实现分页功能,然后增加配置文件中每页显示的用户对的数量的配置项。然后调用模型来实现分页功能,先获取到所有的用户数据,然后调用控制器将数据分配给静态页面并显示。
实现其他拓展功能拓展功能包括一些用户的登录后评论、点赞以及分类筛选等功能。
实现点赞功能点按功能的实现,需要一个新的列表字段来接收点赞的数量。然后在页面中添加一个可以点赞的链接,在控制器中增加相应的点赞方法,模型增加方法来实现点赞功能,同时要控制点赞操作,及每个用户对每篇文章只能点赞一次。
实现前台评论功能前台评论功能就是实现用户对文章的评论,所以只有当用户登录之后才能进行评论。首先编辑前台评论的页面,使其在用户没有登录的状态下不可以发起评论。
增加实现评论的控制器及方法,接收数据,用户的id和用户评论的内容,并进行合法性验证,验证通过后,在模型中增加方法来实现评论内容的入库,并调用视图将数据显示出来。后期用户对的评论数据会增多,要用到分页功能,在控制器调用分页,模型中增加相应的方法,同时修改配置文件里的配置项,模型中调用方法来实现分页的功能,最后通过视图将分页加载到html页面中。
实现分类筛选功能在首页控制器中获取到所有分类信息及文章数量,将数据分配给页面来显示数据,增加连接,使其在点击分类时可以查看到当前分类下的所有文章,使用控制器接收相应的数据并给模型,修改模型中的方法,使其按照条件进行获取数据,如果没有数据将提示用户。
实现显示最新博文的功能最新博文就是发布时间最晚的文章,之前发布时会提交发布时间,所以可以根据这个数据来进行最新博文的显示。
在前台首页增加显示最新博文的功能,在首页控制器中增加方法来获取到最近更新的三条数据,需要在模型中增加方法来获取新文章,同时调用控制器来将数据显示在页面中。
细节的完善前后台页面中添加回到首页的链接,前后台文章数量和评论数量的显示更新,完善页面中其他快捷方式从而使项目更为完善。
作者: 黑马小奇 时间: 2017-11-9 19:52
沙发自己坐
作者: zhangsiyuan 时间: 2017-11-10 13:49
送你82分,剩下18分以666形式发送给你
作者: 黑马小奇 时间: 2017-11-10 16:30
自己再顶一哈
作者: 南京PHP最强 时间: 2017-11-10 16:34
楼主好棒
作者: 南京PHP最强 时间: 2017-11-10 16:35
壮哉我大PHP
作者: 南京PHP最强 时间: 2017-11-10 16:36
后续还有吗
作者: 黑马南京 时间: 2017-11-10 16:40
除了666无话可说
作者: 南京PHP最强 时间: 2017-11-10 16:41
写的好详细呀
作者: 南京PHP最强 时间: 2017-11-10 16:43
作者: 黑马南京 时间: 2017-11-10 16:43
棒棒哒~
作者: 黑马南京 时间: 2017-11-10 16:44
棒棒哒٩(๑ơలơ)۶♡
作者: 无敌小金刚 时间: 2017-11-13 14:56
男神男神!!{:8_488:}
作者: 秒杀女神 时间: 2017-11-13 14:56
666
作者: 无敌小金刚 时间: 2017-12-30 13:52
{:8_468:}{:8_468:}
作者: 无敌小金刚 时间: 2017-12-30 13:54
越来越棒
作者: 无敌小金刚 时间: 2017-12-30 14:37
小粉丝来吹捧~
作者: 无敌小金刚 时间: 2017-12-30 14:39
比心
作者: 无敌小金刚 时间: 2017-12-30 14:40
棒棒的~
作者: 无敌小金刚 时间: 2017-12-30 14:42
{:8_483:}{:8_487:}{:8_489:}表情包好评
作者: 一匹英俊的小马 时间: 2017-12-30 14:43
{:8_469:}{:8_470:}{:8_472:}6666
作者: 无敌小金刚 时间: 2017-12-30 14:47
{:8_506:}{:8_506:}{:8_506:}
作者: 一匹英俊的小马 时间: 2017-12-30 14:48
小粉丝来吹捧~{:8_468:}{:8_470:}
作者: zhangsiyuan 时间: 2017-12-30 14:48
66666666666双击666666666666
作者: 无敌小金刚 时间: 2017-12-30 14:49
伸出你发财的小手
作者: @狂奔 时间: 2017-12-30 14:50
加油!! 6666666666666
作者: 孙雷 时间: 2017-12-30 14:52
6666
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |