第二节 drupal的基本机制
来源:互联网 发布:nginx htaccess 编辑:程序博客网 时间:2024/06/03 23:39
在drupal开发时最常使用的机制就是钩子机制。有人问我什么是钩子?其实就是一些函数而已,但是这些函数功能都是分门别类的,功能各不相同。而且有固定的格式。
前几天看到一个笑话,说一个老程序员退休之后练书法。写下的第一个作品是hello world,所以我决定就以一个hello world来做第一个《零基础drupal教程》的例子,来阐述drupal的钩子机制。
下面我们来建立一个hello world模块。
第一步:在sites/all/modules/custom下面建立一个hello world的文件夹。
第二部:在hello world里面建立两个文件,hello_world.info和hello_world.module,这两个是建立一个模块必不可少的文件。
第三部:要往里面写代码。
hello_world.info文件代码如下:
; $Id$
name = hello world
description = 零基础drupal教程第一个例子-hello world
package = Pro Drupal Development
core = 6.x
version = "6.17"
以上就是info文件的代码,参数很好理解就说一下package,这个就是模块启用时候在列表区域的名称。
core就是内核版本。
下面就是hello_world.module的代码:
<?
function hello_world_menu(){
$items['hello'] = array(
'title' => t('hello world'),
'description' => t('第一个例子'),
'page callback' => 'hello_world',
'access callback' => true,
'type' => MENU_CALLBACK,
);
return $items;
}
function hello_world(){
return "hello world!";
}
上面就是hello_world.module的代码。这个就用到了一个menu的钩子,写法是 文件名+钩子名。这里要注意:一个文件夹下面,所有的文件名都一样,比如hello world下面的 hello_world.info 和 hello_world.module区别只是在文件格式上。那么钩子名前面的文件名也要一致。所以就是hello_world.menu,这是drupal的命名规则。接下来为大家讲解这些参数的作用。
menu这个钩子主要是为了增加新页面的。
$items['hello']里面的hello是个相对路径,也就是说这个页面的路径是localhost/teach/hello;(这里的teach就是你的项目名称,第一节已经讲过)
title 就是页面的标题;
description 是这个页面的描述,一般都是说明这个页面是要干什么的;
page callback是这个页面要调用的函数,后面就是要调用的函数名称
access callback是页面的访问权限,设为true就是谁都可以访问
type 就是页面的位置,MENU_CALLBACK就是通过输入地址才让页面显示出来,它还有好几种格式,用到了再详细说明
return $items 一定得记得写
下面就是自己 定义的函数 写法是function hello_world(){}
这个页面我让它显示一个hello world! 就直接 return "hello world!";
下面保存这两个文件,到管理->模块 模块列表下面启用这个hello world模块,然后再浏览器地址栏输入 localhost/teach/hello,就会看到这个页面的内容,显示了hello world!
- 第二节 drupal的基本机制
- drupal:hook_menu 的基本应用
- drupal:hook_menu 的基本应用
- Drupal 的基本元件和基本概念
- Drupal 內的基本CSS (一)
- drupal 中基本的数据库操作
- 第二篇drupal文章
- Drupal ajax html和bootstrap dropdown button的事件机制
- 第二节 css常用的基本样式
- 基本的线程机制
- 并发的基本机制
- drupal drupal drupal 你家养的猪娃跑了
- 好的Drupal实践,Drupal角色
- 好的Drupal实践,Drupal角色
- 第二节 控制台应用程序的基本结构,变量
- drupal的views学习
- 强大的Drupal
- Drupal的开发方式
- LDD3源码分析之阻塞型I/O
- Google AJAX 搜索 API
- Lua在.net下的应用
- 使用JMETER做Webservice Security(WSS)测试
- 【MCS-51】【A51】8路LED的二进制加法器
- 第二节 drupal的基本机制
- 使用CStdioFile操作文件
- android之单元测试——下
- 单向链表的c++实现
- gdb调式程序
- CreateThread()、_beginthreadex()及、AfxBeginThread()函数的讨论
- Python中的easy_install的使用
- ant入门教程
- xlsx简单分析