国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

Drupal模塊開發之創建自己的鉤子

2024-08-30 19:06:43
字體:
來源:轉載
供稿:網友

Drupal可以讓第三方模塊創建自己的鉤子,在通常的實踐中,有兩種類型的鉤子你可能想要創建,一種是內容修改類的鉤子,一種是攔截類的鉤子.

Drupal的鉤子系統允許和模塊交互并改變其他模塊的邏輯,甚至是改變Drupal核心邏輯,這是一個非常簡單的系統,甚至可以讓第三方模塊創建自己的鉤子,在通常的實踐中,有兩種類型的鉤子你可能想要創建,一種是內容修改類的鉤子,一種是攔截類的鉤子,修改類的鉤子提供了一個標準的方法來修改某個特定對象或變量的內容,典型的是使用 drupal_alter()函數,攔截類的鉤子可以讓第三方模塊在模塊執行過程中根據條件做出一些動作.

例1:簡單調用,代碼如下:

  1. <?php 
  2. // will call all modules implementing hook_hook_name 
  3. module_invoke_all('hook_name'); 
  4. ?> 

例2:聚合結果,代碼如下:

  1. <?php 
  2. $result = array(); 
  3. foreach (module_implements('hook_name'as $module) { 
  4. // will call all modules implementing hook_hook_name and 
  5. // push the results onto the $result array 
  6. $result[] = module_invoke($module'hook_name'); 
  7. }  //開源軟件:Vevb.com 
  8. ?> 

例3:使用 drupal_alter() 改變內容,代碼如下:

  1. <?php 
  2. $data = array
  3. 'key1' => 'value1'
  4. 'key2' => 'value2'
  5. ); 
  6. // will call all modules implementing hook_my_data_alter 
  7. drupal_alter('my_data'$data); 
  8. ?> 

例4:引用傳參,不能使用 module_invoke,代碼如下:

  1. <?php 
  2. // @see user_module_invoke() 
  3. foreach (module_implements('hook_name'as $module) { 
  4. $function = $module . '_hook_name'
  5. // will call all modules implementing hook_hook_name 
  6. // and can pass each argument as reference determined 
  7. // by the function declaration 
  8. $function($arg1$arg2); 
  9. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 衡水市| 阿合奇县| 库车县| 邹城市| 衡阳县| 资溪县| 柳林县| 新宁县| 乌苏市| 蒲城县| 通山县| 贡山| 定南县| 肥乡县| 平阳县| 霍邱县| 高阳县| 正镶白旗| 科技| 石屏县| 邓州市| 镇江市| 武胜县| 牙克石市| 夏河县| 育儿| 松溪县| 绿春县| 平定县| 读书| 丘北县| 南和县| 鲜城| 晴隆县| 织金县| 南乐县| 合水县| 大化| 博罗县| 云南省| 鹤庆县|