2011-01-12 28 views

Trả lời

19

Cách tiêu chuẩn là thực hiện nó trong truy vấn trong móc cài đặt.

Từ module devel:

/** 
* Implementation of hook_install() 
*/ 
function devel_install() { 
    drupal_install_schema('devel'); 

    // New module weights in core: put devel as the very last in the chain. 
    db_query("UPDATE {system} SET weight = 88 WHERE name = 'devel'"); 

    ... 
} 
+1

này có vẻ đúng nhưng là cuộc gọi đến drupal_install_schema() yêu cầu chỉ để thiết lập cân? – markdorison

+1

Bạn cũng có thể đặt trọng lượng bằng tay ... lệnh gọi drupal_install_schema() có sẵn vì móc cài đặt của devel cần phải cài đặt lược đồ của nó. –

+0

Cân nhắc việc đặt trọng lượng không phải lúc nào cũng là tất cả những gì bạn cần làm. Trong một số trường hợp tôi gặp phải, thiết lập "bootstrap" cũng được yêu cầu, và các mô-đun có trọng lượng thấp hơn nhưng với "bootstrap" được tải trước các mô-đun "tiêu chuẩn" - hãy xem xét ... – Shushu

4

nếu vì một lý do bạn phải dính vào nó trong một cái móc cập nhật, bạn sẽ muốn quay trở lại đúng kết quả từ update_sql, kẻo bạn nhận được lỗi vô hại khó chịu nhìn.

function mymodule_update_6000(&$sandbox) { 
    $res[] = update_sql("UPDATE {system} SET weight = 1 WHERE name = 'mymodule'"); 
    return $res; 
} 
25

Đây là cách chính xác để làm điều đó trong Drupal 7

/** 
* Implements hook_enable() 
*/ 
function YOUR_MODULE_enable() { 
    db_update('system') 
    ->fields(array('weight' => 1)) 
    ->condition('type', 'module') 
    ->condition('name', 'YOUR_MODULE') 
    ->execute(); 
} 
+0

Nên được đặt trong tệp your_module.install. – duru

Các vấn đề liên quan