搜索
系统检测到您的用户名不符合规范:

我用ThinkPHP搞这么一个管理程序,尽可能地集合表和程序

浏览:1296 发布日期:2013年08月03日 分类:技术分享 关键字: 管理程序
地址:qp500.cn/company_v3 后台:qp500.cn/company_v3/admin


最近,一直想一个问题,就是对于一个普通的公司网站来说,实际的数据并不多,功能也不多,大体上主要的都是,公司文档、产品、新闻等。



而这三中数据,分析起来也是类似的,都是有标题、内容、和图片。

最复杂的也就是产品了,它有标题、详细内容、展示图片等,而公司文档和行业新闻就简化了一点,它们有标题和详细内容,可能没有展示图片。

那么,我就把它们都集中在一个表中就可以了。建了一个文档表,主要字段有:
标题、时间、摘要、图片路径、类别。其中产品都有图片,所以要有一个图片路径的字段,公司文档和行业新闻,如果不要图片就让图片路径空着,浪费了一丁点资源也没关系。

另建一个类别表,这个类别表是公用的,即所有的类别都在一个表中,类别表有级层关系,不管是产品的大小分类、公司文档的类别,或者是行业新闻的多级类别,所有的类别都在一个类别表中了,因为,类别只起到一个作用,就是让每个文档归属到各自的类别中。所以,每个文档都有一个类别字段。

文档和类别都在有表了,现在到程序了。显示一个产品列表,跟显示一个行业新闻和公司新闻的列表,实际上程序处理的过程很近似,都是列出标题、时间、缩略图等。

那也用一个程序来处理这三类文档吧,只是提供不同的类别就可以。
产品列表就获取产品类别下的文档,
公司新闻就获取公司新闻类别下的文档,
行业新闻就获取行业新闻下的类别文档。


这样一来,整个管理程序的主要部分就三个:

文档表、类别表、一个数据输出程序。


产品列表链接,数据程序获取产品类别的文档,输出给模板显示产品。
案例列表链接,数据程序获取产品类别的文档,输出给模板显示施工案例。
文档列表链接,数据程序获取产品类别的文档,输出给模板显示文档列表。

数据处理是相同的一个处理程序,三个链接可以搞三个输出模板(在演示的地址中,还没有搞多个输出模板)。


之前,使用了ThinkPHP的路由规则,本来我是想让不同的链接都指向同一个程序,但一直没有弄通。

后来,用了另一个办法,就是通过修改ThinkPHP的A方法,来让不同的链接地址中的模块,实际使用的是同一个模块(控制器)。


过程是这样的:
根据ThinkPHP的规则,链接地址中包含了控制器和方法,ThinkPHP通过链接地址使用了A方法,来确定使用那个控制器,并查找实际的Action目录下的对应的PHP文件,A方法导入了PHP类文件返回的是类的对象,并用常量MODULE_NAME来保存当前控制器的名称。

那么,我就得在原来的A方法之前,调用实际的控制器,并把实际的控制器的名字赋值给MODULE_NAME,再接着运行A方法的后续部分,并按指定的模板输出显示,这样一来,链接地址就变化了,和实际的控制器却跟链接地址中的控制器不同名,从而起到了不同的程序,实际使用的一个相同的控制器的作用。


这样一来,就可以建立多个模块,使用不同的模块链接,各个模块调用各自的类别,抽取各自的数据,而实际使用的是同一个模块程序(控制器)。产品程序最复杂,就按产品模块的需要来写模块,文档模块只是产品模块的简化。比如:产品有标题、详细、封面图、图片集,而文档去掉图片集就是简化了。实际上,详细内容是单独的一个表,图片集也是单独的一个表,这两个表都包含一个文档表的Id,当显示详细内容的时候,就合并一个文档的在这三个表中的数据,就得到了完整的标题、封面图、详细和图片集。


最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
50030
积分:1129 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /