- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Drupal项目实战 – 公司员工订餐系统的设计与实现 方医生 2009/4/23 介绍 本实例主要展示如何使用Drupal构建一个简单的数据库系统。 充分利用Drupal的CMS功能,以及CMF(内容管理框架)的特性。 极常用的Drupal模块的使用:CCK和Views 使用Drupal的Form API进行数据库操作。 需求 分析需求的首要问题 做系统最首要的问题是要确定参于的人(stakeholder),最主要的是: 谁用 给谁用 他们间的关系 开发这系统的主要用途 确定后,分别站在这两个角色的基础上思考。 本系统是: 谁用?饭店用 给谁用?给公司员工用。 他们是什么关系?饭店做饭,员工买来吃。 做这系统干啥?员工看哪些饭可以买,饭店看哪些员工买饭吃。 功能列表 员工可以浏览各种菜的信息。 为了简单,我们先假设可以浏览的是“套餐” 员工在选择好菜后,就可以购买,并可以选择购买数量。 饭店可以查看员工所下订单,并根据订单进行送餐。 菜单的主要属性:套餐名、说明、照片、价格 用例图 选择Drupal 用Drupal作为框架来构建系统,其实就是一个“映射”的过程。 把需求中的角色和类以及功能,映射到Drupal中去。 充分利用Drupal现有功能,实现需求。 其实就是CMS的功能 慎重选择模块 页面原型 分别站在使用者的角度。 主要页面: 菜单详细信息页面(订餐) 菜单列表 订餐列表 其它一些页面如发布页面等,均为Drupal自带功能,不重复列出。 菜单详细信息页面-订餐前 订餐完成 预计要使用的模块 有人说,Drupal开发就是“拼模块”,此话有一定道理。大多数人刚使用Drupal开发时,马上头脑中就无数个模块翻腾。 其实这不是一个很好的现象, 很容易在还没真正弄清楚需求前就陷入了模块泥潭。 使用Drupal模块有两个准则: 少用 巧用 确定模块 根据页面原型和功能,确定要使用的模块。 CCK 扩展内容类型 Views 生成节点列表 ? Ubercart:电子商务相关的重量级模块 自定义模块 从页面角度考虑 主要页面: 菜单列表:Views 菜单详细信息页面: Node 订餐列表: Custom Database List 其它一些页面如发布页面等,均为Drupal自带功能,不重复列出。 开发步骤 安装Drupal,下载及开启模块。 创建Lunch内容类型 使用CCK扩展其属性 使用Views生成列表 开发自定义模块 CCK模块简介 扩展节点属性 OO思想 扩展Content Type 必备模块 Video Demo – 使用CCK创建午餐内容类型 Views模块 Views 2模块可以生成各种列表 只需在界面上操作,无须写SQL脚本。 以节点、分类、评论、用户为主。 有缓存机制,用于提升性能 必备模块 Video Demo – 使用Views 2创建午餐列表。 开发订餐模块-Lunch Order 主要功能: 在午餐浏览页面显示订餐表单 将订餐信息存入数据库 显示员工订餐列表 1.创建数据表 2. 使用FAPI生成表单 FAPI – Form API Drupal中的表单相关函数 生成表单、检查表单、处理表单 Function lunch_order_form() Function lunch_order_form_validate() Function lunch_order_form_submit() return drupal_get_form(“lunch_order_form”) 3. 将表单放置在合适的位置 放在node-lunch.tpl.php中 (推荐) if (module_exists(“lunch_order”)) { print drupal_get_form(“lunch_order_form”); } 使用hook_nodeapi 3. 显示订餐列表 hook_menu 权限 function lunch_order_list_page() { $sql = ‘SELECT * FROM {lunch_order}’; $result = db_query($sql); while ($row = db_fetch_object($result)) { /// } } 效果展示 Thanks 我的博客在进行连载,欢迎访问: D
您可能关注的文档
- 爱颈椎,每天只爱一点点.ppt
- 服饰行业加盟手册.ppt
- 江阴金山新城项目09.06.11.ppt
- 物理惯性说课课件.ppt
- 职业生涯规划概论(一).ppt
- 成人和小儿法洛氏四联症外科治疗.ppt
- 奔驰 S400 混合动力 电动汽车--高压电板块.ppt
- 商务翻译说课.ppt
- 汇创经纪人营销培训教程.ppt
- 林海山庄风筝节.ppt
- AN024_星历原始观测数据协议.pdf
- APM32F051x6x8数据操作说明 V1.6中文.pdf
- AN1086_APM32F4xx_ISP应用笔记中文.pdf
- APM32F051R8 EVAL Board使用调试操作说明V1.0中文.pdf
- APM32F4xxx用户操作说明 V2.2中文.pdf
- APM32F411xCxE 数据操作说明 V1.3中文.pdf
- AN019_NMEA0183协议说明_北云科技.pdf
- AGP21系列电容式薄膜真空规说明书 A1-20240628.pdf
- AHT40温湿度传感器说明书中文版 A1-202406.pdf
- AN1096_APM32F035_HvMOTOR EVAL无感矢量控制方案_V1.1中文.pdf
文档评论(0)