Commit f55b2ffc authored by Johannes Haseitl's avatar Johannes Haseitl
Browse files

Issue #2034991 by derhasi: Fixed Required modules may never be disabled by master.

parent 90b7ce5b
Loading
Loading
Loading
Loading
+13 −5
Changes for master.module: 13 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -137,8 +137,9 @@ function master_get_module_data($reset = FALSE) {
 *   Array of module machine names of the master modules.
 *
 * @return array
 *   Array of module names required by the master modules. The list does not
 *   contain the master modules themselves.
 *   Array of module names required by the master modules or defined as required
 *   in the module info (as for core modules like field or user). The list does
 *   not contain the master modules themselves.
 */
function master_get_required_modules($master_modules) {

@@ -152,10 +153,17 @@ function master_get_required_modules($master_modules) {
  // iterate over the whole module list.
  foreach ($module_data as $module => $data) {
    // If this is a master module, we skip it.
    if (!in_array($module, $master_modules) && !empty($data->required_by)) {

    if (in_array($module, $master_modules)) {
      // Do nothing.
    }
    // If the module is required via the module info, we do not ignore that and
    // add it to the list.
    elseif (!empty($data->info['required'])) {
      $required_modules[] = $module;
    }
    // If one or more master modules require this module, we add it to the list.
    elseif (!empty($data->required_by)) {
      $intersect = array_intersect_key($data->required_by, $master_keys);
      // If one or more master module require this module, we add it to the list.
      if (count($intersect) > 0) {
        $required_modules[] = $module;
      }