Projet

Général

Profil

Révision c8d66f01

Ajouté par Assos Assos il y a plus de 9 ans

Weekly update of contrib modules

Voir les différences:

drupal7/sites/all/modules/admin_menu/admin_menu.inc
497 497
    );
498 498
  }
499 499

  
500
  // Add link to toggle developer modules (performance).
501
  $saved_state = variable_get('admin_menu_devel_modules_enabled', NULL);
502
  $links['icon']['toggle-modules'] = array(
503
    '#title' => isset($saved_state) ? t('Enable developer modules') : t('Disable developer modules'),
504
    '#weight' => 88,
505
    '#access' => user_access('administer modules'),
506
    '#href' => 'admin_menu/toggle-modules',
507
    '#options' => array(
508
      'query' => $destination + array('token' => drupal_get_token('admin_menu/toggle-modules')),
509
    ),
510
  );
511

  
512 500
  // Add Devel module menu links.
513 501
  if (module_exists('devel')) {
514 502
    $devel_tree = menu_build_tree('devel');
......
697 685
    '#title' => t('Cache menu in client-side browser'),
698 686
    '#default_value' => variable_get('admin_menu_cache_client', 1),
699 687
  );
700
  // Fetch all available modules manually, since module_list() only returns
701
  // currently enabled modules, which makes this setting pointless if developer
702
  // modules are currently disabled.
703
  $all_modules = array();
704
  $result = db_query("SELECT name, filename, info FROM {system} WHERE type = 'module' ORDER BY name ASC");
705
  foreach ($result as $module) {
706
    if (file_exists($module->filename)) {
707
      $info = unserialize($module->info);
708
      $all_modules[$module->name] = $info['name'];
709
    }
710
  }
711
  $devel_modules = variable_get('admin_menu_devel_modules', _admin_menu_developer_modules());
712
  $devel_modules = array_intersect_key($all_modules, array_flip($devel_modules));
713
  $form['performance']['admin_menu_devel_modules_skip'] = array(
714
    '#type' => 'checkboxes',
715
    '#title' => t('Developer modules to keep enabled'),
716
    '#default_value' => variable_get('admin_menu_devel_modules_skip', array()),
717
    '#options' => $devel_modules,
718
    '#access' => !empty($devel_modules),
719
    '#description' => t('The selected modules will not be disabled when the link %disable-developer-modules below the icon in the menu is invoked.', array(
720
      '%disable-developer-modules' => t('Disable developer modules'),
721
    )),
722
  );
723 688

  
724 689
  return system_settings_form($form);
725 690
}
......
783 748
  );
784 749
}
785 750

  
786
/**
787
 * Menu callback; Enable/disable developer modules.
788
 *
789
 * This can save up to 150ms on each uncached page request.
790
 */
791
function admin_menu_toggle_modules() {
792
  if (!isset($_GET['token']) || !drupal_valid_token($_GET['token'], current_path())) {
793
    return MENU_ACCESS_DENIED;
794
  }
795

  
796
  $rebuild = FALSE;
797
  $saved_state = variable_get('admin_menu_devel_modules_enabled', NULL);
798
  if (isset($saved_state)) {
799
    // Re-enable modules that were enabled before.
800
    module_enable($saved_state);
801
    variable_del('admin_menu_devel_modules_enabled');
802
    drupal_set_message(t('Enabled these modules: !module-list.', array('!module-list' => implode(', ', $saved_state))));
803
    $rebuild = TRUE;
804
  }
805
  else {
806
    // Allow site admins to override this variable via settings.php.
807
    $devel_modules = variable_get('admin_menu_devel_modules', _admin_menu_developer_modules());
808
    // Store currently enabled modules in a variable.
809
    $devel_modules = array_intersect(module_list(FALSE, FALSE), $devel_modules);
810
    $devel_modules = array_diff($devel_modules, variable_get('admin_menu_devel_modules_skip', array()));
811
    if (!empty($devel_modules)) {
812
      variable_set('admin_menu_devel_modules_enabled', $devel_modules);
813
      // Disable developer modules.
814
      module_disable($devel_modules);
815
      drupal_set_message(t('Disabled these modules: !module-list.', array('!module-list' => implode(', ', $devel_modules))));
816
      $rebuild = TRUE;
817
    }
818
    else {
819
      drupal_set_message(t('No developer modules are enabled.'));
820
    }
821
  }
822
  if ($rebuild) {
823
    // Make sure everything is rebuilt, basically a combination of the calls
824
    // from system_modules() and system_modules_submit().
825
    drupal_theme_rebuild();
826
    menu_rebuild();
827
    cache_clear_all('schema', 'cache');
828
    cache_clear_all();
829
    drupal_clear_css_cache();
830
    drupal_clear_js_cache();
831
    // Synchronize to catch any actions that were added or removed.
832
    actions_synchronize();
833
    // Finally, flush admin_menu's cache.
834
    admin_menu_flush_caches();
835
  }
836
  drupal_goto();
837
}
838

  
839
/**
840
 * Helper function to return a default list of developer modules.
841
 */
842
function _admin_menu_developer_modules() {
843
  return array(
844
    'admin_devel',
845
    'cache_disable',
846
    'coder',
847
    'content_copy',
848
    'context_ui',
849
    'debug',
850
    'delete_all',
851
    'demo',
852
    'devel',
853
    'devel_node_access',
854
    'devel_themer',
855
    'field_ui',
856
    'fontyourface_ui',
857
    'form_controller',
858
    'imagecache_ui',
859
    'journal',
860
    'l10n_client',
861
    'l10n_update',
862
    'macro',
863
    'rules_admin',
864
    'stringoverrides',
865
    'trace',
866
    'upgrade_status',
867
    'user_display_ui',
868
    'util',
869
    'views_ui',
870
    'views_theme_wizard',
871
  );
872
}
873

  
874 751
/**
875 752
 * Flush all caches or a specific one.
876 753
 *

Formats disponibles : Unified diff