学习总结

drupal学习总结

时间:2020-09-29 10:12:12 学习总结 我要投稿

drupal学习总结

  原理

drupal学习总结

  模块(Modules)

  drupal是一个高度模块化,开源的web内容管理框架。它被设计为可被定制的,但是定制是通过覆写核心功能或者增加模块来完成的,而不是修改核心组件中的代码。Drupal中一般通过三种方式来添加功能:启用已存在的模块(核

  心模块),安装Drupal社区成员编写的模块(第3方模块),编写自己的模块。

  钩子

  Drupal的所有功能都通过模块来实现,而模块又通过钩子来和系统联系起来,被系统调用的。钩子可以看作是Drupal的内部事件,不同的事件类型由不同钩子函数来调用,这些钩子函数的命名规则都是由drupal定义好的。我们只需要了解什么样的事件动作要用什么钩子来实现调用。这样,当我们在网站上执行某些操作时,drupal就会根据我们操作的类型来查找相应的钩子,通过钩子,调用符合条件的模块。

  主题(Themes)

  Drupal是被设计为内容和显示分离的,这样既利于开发,也方便维护。所以,当后台的数据内容要被显示时,就会通过主题(主题函数或主题模版)来进行包装,最后显示在页面上的是数据和主题包装后的效果。Drupal支持多种模版引擎,比如smarty,PHPTemplate. 主题也是通过主题钩子来实现调用的,

  首先,我们先写好相应的.模版文件,

  然后在模块中通过“模块名+theme”来注册这些主题。

  最后当模块要输出数据时,就会通过theme(“主题”,“数据”)来调用相应的主题模版,并把数据也传进模版,然后theme函数把整合后的html页面返回。

  节点(nodes)

  Drupal中的内容类型都被看做是一个节点来管理,并且所有节点的底层结构都是一样的。这样有利于扩展。

  区块(blocks)

  区块用来展示一些特定内容的信息。比如在线用户数,流量统计等,一般用于首页。 一个区块包括标题和内容。

  执行过程

  1. 从index.php开始,Drupal的大多数请求都从这里开始。

  2. 对于每个请求,Drupal通过一系列的引导指令阶段来引导它自己

  3. 建立初始链接以供数据库查询使用

  4. 检查请求IP是否来自一个被禁的主机;如果是,那么将拒绝访问。

  5.Drupal 加载足够的支持代码来决定是否需要从页面缓存中提供一个页面。如果在会话中显示请求来自于匿名用户并且启用了页面缓存,那么将从缓存中返回页面,执行到此停止。

  6. 在路径阶段,将加载处理路径和路径别名的(aliasing)的代码。该阶段使得用户可读的URL被转化为Drupal路径,并处理内部Drupal 路径的缓存和查询操作。

  7.加载一个通用函数库,主题支持,和支持回调映

  射,文件处理,Unicode,PHP 图片工具集,表单的创建和处理,自动排序的表格,和结果集的分页。并加载所有启用了的模块。最后Drupal 调用init钩子,这样在对请求正式开始处理以前,将有机会通知相应的模块。

  8.现在是时候获得浏览器的请求并将它委托给一个处理它的函数。

  9.当Drupal 为浏览器请求的URL 找到一个存在的回调函数,并且用户有权访问该回调函数,那么控制权将转移给回调函数。

  10.回调函数做了流程要求做的事情,并收集满足请求所需要的数据。

  11.主体化涉及到将已被取回,操作或者创建的数据转化为HTML。Drupal 将使用管理员选用的主题来为网页提供一个合适的外观,并将生成的HTML 移交给web浏览器。

  使用方法

  环境和目录设置

  1. 在sitesdefaultsettings.php里设置数据库连接信息。

  2. 核心模块和主题目录不要动,所有新开发的模块和主题模版都集中在sitesallmodules

  和sitesall hemes中。

  3. 新添加的模块在系统的“管理站点构建”中设置启用/禁用。

  4. Drupal中的所有文件和数据库默认都是用的utf-8编码。

  模块开发步骤:

  1.首先为模块起一个名字,比如叫mytest,然后模块目录名,info文件,module文件都用这个名字命名。

  2.在sitesallmodules里建立一个文件夹叫mytest,在mytest文件夹下建立如下文件: mytest.info:用来向Drupal提供一些关于我们模块的信息

  mytest.install:启用模块时用来创建数据库信息(如果此模块涉及到改数据库的话)。 mytest.module:模块内容。

  如果有自己的主题模版,在sitesall hemes建立一个主题,模版文件和css,图片等文件都放到这个目录下

  3.模块中的钩子函数

  1.hook_menu:菜单钩子,每一个菜单钩子里都是一个联合数组。从菜单钩子开始,执

  行一系列的功能操作。通过菜单钩子,可以创建网站各个模块功能的入口链接。 菜单钩子的回调类型(type):

  1. MENU_CALLBACK 普通的菜单回调,不在菜单区块显示,只能通过url访问

  2、MENU_NORMAL_TIEM 可以在菜单区块显示

  3. MENU_DEFAULT_LOCAL_TASK //可以继承父菜单的类型

  2. 表单函数名_submit($form,$form_values) :提交表单操作。

  3.表单函数名_validate($form_id, $form_values):对表单里输入的内容进行验证,

  如果不符合条件,将会提示错误信息。

  4. drupal_get_form() 生成表单html,

  5.User_access():测试用户是否有访问权限。有则反回true,没有则反回false.

  6.hook_perm():定义用户权限。

  7.hook_user($op, &$edit, &$user, $category = NULL) 对用户帐号进行操作,以及修改$user 对象.

  8.节点中用到的钩子

  hook_($node)保存一个新的节点时将会调用此钩子

  hook_update($node) 编辑完一个节点时调用该钩子。

  hook_(&$node) 删除一个节点时调用

  hook_view($node, $teaser = FALSE, $page = FALSE) 显示一个节点信息

  hook_access() 用来限制对一个节点类型的访问

  9. 数据库操作:

  db_query() 执行sql语句,返回一个结果集

  db_fetch_object()从结果集中取出一行作为一个对象。

  db_fetch_array()取出的结果作为一个数组

  10.主题

  Hook_theme() 注册模块要用到的主题钩子

  Theme_主题名() 定义主题函数,用这种方法可以不写主题模版,在这里直接定义主

  题样式。

  Theme(‘主题名’,’参数’) :调用主题函数,此函数返回处理后的html,用于输出到览器。

  个人理解

  了解drupal的关键在于理解它的模块化框架和钩子系统,它的功能都是通过模块来实现的,每个模块又可以被启用或者禁用,而系统对模块的控制就是通过钩子来实现的。也就是说模块只有通过钩子才能被系统所调用。

  要灵活的运用drupal,我觉的首先要掌握drupal为实现各个功能而定义的钩子函数,这样,当我们在写模块时,就知道什么功能要用什么钩子函数。

  

【drupal学习总结】相关文章:

毕业学习总结11-25

专升本学习总结08-26

教师学习总结02-20

出纳学习总结02-07

学习锻炼总结01-17

课程学习总结01-17

外出学习总结01-15

团校学习总结12-09

出差学习总结12-09

参观学习总结12-07