2011-01-12 10 views

答えて

19

標準的な方法は、インストールフックのクエリで実行することです。 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

でそれを行うための正しい方法これは体重を設定するだけで必要なdrupal_install_schema()の呼び出しを正しく見えるが、あるのでしょうか? – markdorison

+1

また、手で重量を設定することもできます... develのインストールフックがそのスキーマをインストールする必要があるので、drupal_install_schema()呼び出しがあります。 –

+0

体重を設定することは、必ずしもすべてを行う必要はないことに注意してください。場合によっては、 "ブートストラップ"の設定も必要でしたが、軽量で "ブートストラップ"付きのモジュールは "標準"モジュールの前にロードされています - それを考慮に入れてください... – Shushu

4

あなたは厄介に見える無害なエラーが出ないようにアップデートフックでそれを固執する必要が何らかの理由で、あなたは、適切update_sqlから結果を返すことになるでしょう場合。

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

これは、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

your_module.installファイルに配置する必要があります。 – duru

関連する問題