Drupal 模組開發基本教程(一)

2021-04-13 21:36:47 字數 1487 閱讀 9708

第一部分:基本模組結構

事實上,模組真正必須實現的函式只有乙個,那就是hook_help()。這裡我們約定在本文中對drupal的系統「鉤子」我們都寫為「hook_鉤子名」的形式,你實現的時候的函式名實際上是「模組名_鉤子名」的形式。

什麼是鉤子(hook)?

drupal 是乙個內容管理系統的程式設計框架,其核心功能已經很完備了。我們編寫擴充套件模組時並不需要自己完成每乙個功能,大多數擴充套件系統的方法只是按命名規則寫好鉤子 (hook)的實現函式,系統就會在特定的時候來呼叫你的函式,這樣你的擴充套件功能就被實現了。記住,不是你去呼叫系統,而是系統來呼叫你,我覺得這個和 windows的訊息迴圈是有點類似的。

hook_help()可以告訴drupal系統模組的資訊以使模組在「模組」管理頁面上列出來,這樣使用者就可以選擇是否啟用或禁用此模組了。模組一但被 啟用,模組檔案裡的全部**都被包含到系統中,同時,模組的函式也可以呼叫drupal的所有可用函式和訪問所有可用變數了。

下面是最簡單的hook_help()寫法,這裡的模組檔名是example.module,模組名是example,記得在php檔案要有〈?php和?〉標記在檔案首尾。

function example_help($section)

}

只要將包含上面函式的example.module檔案放到drupal目錄下的modules子目錄裡,訪問「模組」管理頁面(在admin/modules)就可以啟用這個模組了,簡單吧。

注:上面的返回值中我們使用了t()函式,這個函式用以實現drupal的本地化,雖然**裡是寫的英文,但如果我們有對應的本地語言的翻譯,使用者會看到對應的本地化字串。

現在,我們有了乙個可啟用/禁用的模組了,在開始為它新增功能之前,我們先了解一下drupal的模組開發程式設計規範(全文見 http://cvs.drupal.org/viewcvs/*checkout*/drupal/contributions/coding_standards.html?rev=1.1&content-type=text%2fplain )。drupal為了最大程度的相容php的不同版本,它不使用命名空間或類的封裝特性,因此,我們需要特別注意命名的問題,一般的約定是:

1)函式和方法使用小寫字元,並用下劃線分隔單詞。函式應當使用模組名作為字首以避免不同模組間的函式名衝突。私有的函式和方法再在名稱前加乙個下劃線。

2)常量名完全大寫,並用下劃線分隔單詞。前面應當加上大寫的模組名字首。

3)你定義的全域性變數的名字前加上「_模組名_」字首。

其他的約定請參見編碼規範。

模組可以實現的功能很多,一般分為如下幾個功能類別:

1)產生頁面顯示內容;

2)自定義node型別;

3)擴充套件現有的node型別;

4)生成定製的區塊(block);

5)控制node的顯示許可權;

6)檔案上傳;

7)定製過濾器(filter);

8)其他高階應用。

下面我們以自定義頁面顯示內容為例開始module開發之旅。

drupal模組開發分析

drupal模組開發常見問題 1 一般的模組分析方法 安裝後先分析menu 根據menu查詢函式,menu的型別大概分為 menu default local task 預設顯示tab menu local task這種的顯示在右側tab tab顯示需要最少兩個才會顯示 menu default i...

Drupal常用開發工具(一) Devel模組

進行 drupal 開發時有許多模組和工具可供使用,其中最常用的兩項便是 devel 及 drupal for firebug。本文和 drupal常用開發工具 二 drupal for firebug 將分別對它們進行介紹。devel 集合了多個開發輔助模組,除了作為核心的 devel 模組外,d...

drupal 7 模組開發,hook form

因為不是系統學習,只能把每天自己學習到的東西零碎的記錄下來。一來方便自己記憶,二來可供大家查閱。後續有精力再去做進一步的整理。1 開發乙個模組分為有下面幾個檔案 hook.admin.inc hook.info hook.install hook.module 這裡hook可以替換成你開發模組的名字...