1. sites\all\modules目录下可以分别建两个目录,一个存放 安装别人写的module,名字可以叫contributed ,另一个存放自己写的,名字叫customized
举例:
2. 在customized目录下新建一个目录,名字和文件名同名。(例如project)
在此目录下至少创建两个文件。
project.info 和project.module
project.info 文件内容举例介绍:
name = project{必填项,模块显示的名字, 第一个单词的首字
母大写}
description = A simple projectmodule {必填项,简短的描写来说明
这个模块是干什么用,主要是在module administ的时候看到的}
package = “project ” {可选项,这个模块的分类,往往把相同功能的模
块放到同个package里}
version = “7.x-1.0 ” {可选项,这个模块的版本号}
core = 7.x {必填项,你写的模块,支持drupal的哪个版本}
dependencies[] = taxonomy
{可选项,这个模块依靠哪个模块?}
project.module 内容文件举例介绍:
我们可以在这里使用钩子函数来自定义自己的内容。(附:钩子函数具体内容请自己查阅)
此处只拿hook_menu() 和hook_permission()举例:
<?php
/**
* @file
* Main file for the project module.
*/
/**
* Implements hook_menu().
*/
function project_menu() {
$items = array();
# this first line is the url ('project')
$items['admin/config/project'] = array(
'title' => t('项目'),
'description' =>t('详情'),
'access arguments' => array('view project'),
'page callback' => 'system_admin_menu_block_page',
'page arguments' => NULL,
'file' => 'system.admin.inc',
'file path' => drupal_get_path('module', 'system'),
);
$items['admin/config/project/project_list'] = array(
'title' => t('项目列表'),
'access arguments' => array('view project_list'),
'description' =>t('显示所有项目'),
'page callback' => 'projects_list',
'page arguments' => NULL,
);
return $items;
}
function project_permission() {
return array(
'view project' => array (
'title' => t('项目'),
'description' => t('访问链接来查看项目'),
),
'view project_list' => array(
'title' => t('查看所有项目列表'),
'description' => t('访问链接来查看所有项目列表'),
),
);
}
function projects_list() {
$header = array('项目编号', '版本号', '项目名称', '操作');
$data = array();
# set the database table
$query = db_select('node', 'n');
# configure the query
$query->condition('type', 'project')
->fields('n', array('nid', 'vid', 'title'));
# execute the query
$results = $query->execute();
foreach ($results as $row) {
$data[] = array($row->nid, $row->vid, $row->title, '');
}
$output = theme('table', array('header' => $header, 'rows' => $data));
return $output;
}
在 结构-》内容类型-》添加内容类型中添加‘project’类型,并创建一个node 。就可以使用projects_list() 。
现在可以在module 列表中看到project 模块了,启用此模块,并且可以在用户-》权限中 配置权限。
可以新注册一个用户来查看权限功能, 不要用超级用户(安装时的第一个用户)。