module_set_weight($module, $weight)
Sets weight of a particular module.
The weight of uninstalled modules cannot be changed.
Parameters
string $module: The name of the module (without the .module extension).
int $weight: An integer representing the weight of the module.
File
- core/includes/module.inc, line 178
- API for loading and interacting with Drupal modules.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | function module_set_weight( $module , $weight ) { $extension_config = \Drupal::configFactory()->getEditable( 'core.extension' ); if ( $extension_config ->get( "module.$module" ) !== NULL) { // Pre-cast the $weight to an integer so that we can save this without using // schema. This is a performance improvement for module installation. $extension_config ->set( "module.$module" , (int) $weight ) ->set( 'module' , module_config_sort( $extension_config ->get( 'module' ))) ->save(TRUE); // Prepare the new module list, sorted by weight, including filenames. // @see \Drupal\Core\Extension\ModuleInstaller::install() $module_handler = \Drupal::moduleHandler(); $current_module_filenames = $module_handler ->getModuleList(); $current_modules = array_fill_keys( array_keys ( $current_module_filenames ), 0); $current_modules = module_config_sort( array_merge ( $current_modules , $extension_config ->get( 'module' ))); $module_filenames = array (); foreach ( $current_modules as $name => $weight ) { $module_filenames [ $name ] = $current_module_filenames [ $name ]; } // Update the module list in the extension handler. $module_handler ->setModuleList( $module_filenames ); return ; } } |
Please login to continue.