天天看點

drupal7寫一個自定義子產品

一個最簡單的Drupal子產品隻需要兩個檔案:info和module。info是個純文字檔案,以鍵值對的形式儲存子產品的基本資訊;module是個php檔案,用于儲存子產品的代碼。

首先我們建立一個helloworld.info檔案,helloworld這個檔案名就是子產品的機讀名。然後打開這個檔案輸入下列代碼:

name = Hello World

description = This is a hello world module

core = 7.x

files[] = helloworld.module

在上面的代碼中,name是子產品的名稱,即人讀名;description是子產品的說明;core聲明了子產品基于哪個drupal核心;files聲明了子產品代碼檔案的位置(本條聲明可以省略,drupal可以自動識别與子產品機讀名同名的module檔案)。

然後我們建立一個helloworld.module檔案,并輸入下列代碼:

<?php

function helloworld_menu() {

  $items['helloworld'] = array(

    'page callback' => 'helloworld_page',

    'access arguments' => array('access content'),

    'type' => MENU_CALLBACK,

  );

  return $items;

}

function helloworld_page() {

  return "Hello world!";

}

在上面的代碼中,helloworld_menu()函數是hook_menu鈎子函數在helloworld子產品中的具體實作,在該函數中使 用$items['helloworld'] 注冊了一個名為helloworld的URL,還為這個URL指定了一個名為helloworld_page的頁面回調函數,并為該回調函數指定了通路權 限和類型。helloworld_page()函數是頁面回調函數的具體實作,傳回了一句經典的字元串“Hello world!”。當使用者通路“網站域名/helloworld”這個URL的時候,helloworld_page()函數将被調用。

最後,我們在Drupal的子產品管理界面中啟用helloworld子產品,并通路“網站域名/helloworld”就可以看到成果了。