当前位置: 首页 > 工具软件 > Drupal Create > 使用案例 >

在drupal创建简单的module

公冶阳德
2023-12-01

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 模块了,启用此模块,并且可以在用户-》权限中 配置权限。

可以新注册一个用户来查看权限功能, 不要用超级用户(安装时的第一个用户)。


 类似资料: