2011-01-12 23 views

Respuesta

19

La forma estándar es hacerlo en una consulta en el gancho de instalación.

Desde el módulo 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

Esto parece correcta, pero es la llamada a drupal_install_schema() que se requieren sólo para establecer el peso? – markdorison

+1

También podría establecer el peso manualmente ... la llamada drupal_install_schema() está allí porque el gancho de instalación de devel necesita instalar su esquema. –

+0

Tenga en cuenta que establecer el peso no siempre es todo lo que necesita hacer. En algunos casos que encontré, también era necesario configurar el "bootstrap", y los módulos con un peso menor pero con "bootstrap" se cargan antes que los módulos "estándar". Tenga esto en cuenta ... – Shushu

4

si por alguna razón usted tiene que pegarlo en un gancho de actualización, tendrá que volver adecuadamente el resultado de update_sql, para que no se producen errores inocuos-repugnantes que buscan.

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

Ésta es la forma correcta de hacerlo en 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

Debe colocarse en su archivo_module.install. – duru

Cuestiones relacionadas