diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc index 49659f8caf2..c5a8ba4049c 100644 --- a/includes/bootstrap.inc +++ b/includes/bootstrap.inc @@ -949,6 +949,9 @@ function _drupal_bootstrap($phase) { // Initialize the default database. require_once './includes/database.inc'; db_set_active(); + // Register autoload functions so that we can access classes and interfaces. + spl_autoload_register('drupal_autoload_class'); + spl_autoload_register('drupal_autoload_interface'); break; case DRUPAL_BOOTSTRAP_ACCESS: @@ -1134,3 +1137,182 @@ function ip_address() { return $ip_address; } + +/** + * @ingroup registry + * @{ + */ + +/** + * Confirm that a function is available. + * + * If the function is already available, this function does nothing. + * If the function is not available, it tries to load the file where the + * function lives. If the file is not available, it returns false, so that it + * can be used as a drop-in replacement for function_exists(). + * + * @param $function + * The name of the function to check or load. + * @return + * TRUE if the function is now available, FALSE otherwise. + */ +function drupal_function_exists($function) { + static $checked = array(); + + if (defined('MAINTENANCE_MODE')) { + return function_exists($function); + } + + if (isset($checked[$function])) { + return $checked[$function]; + } + $checked[$function] = FALSE; + + if (function_exists($function)) { + registry_mark_code('function', $function); + $checked[$function] = TRUE; + return TRUE; + } + + $file = db_result(db_query("SELECT filename FROM {registry} WHERE name = '%s' AND type = '%s'", $function, 'function')); + if ($file) { + require_once($file); + $checked[$function] = function_exists($function); + if ($checked[$function]) { + registry_mark_code('function', $function); + } + } + + return $checked[$function]; +} + +/** + * Confirm that an interface is available. + * + * This function parallels drupal_function_exists(), but is rarely + * called directly. Instead, it is registered as an spl_autoload() + * handler, and PHP calls it for us when necessary. + * + * @param $interface + * The name of the interface to check or load. + * @return + * TRUE if the interface is currently available, FALSE otherwise. + */ +function drupal_autoload_interface($interface) { + return _registry_check_code('interface', $interface); +} + +/** + * Confirm that a class is available. + * + * This function parallels drupal_function_exists(), but is rarely + * called directly. Instead, it is registered as an spl_autoload() + * handler, and PHP calls it for us when necessary. + * + * @param $class + * The name of the class to check or load. + * @return + * TRUE if the class is currently available, FALSE otherwise. + */ +function drupal_autoload_class($class) { + return _registry_check_code('class', $class); +} + +/** + * Helper for registry_check_{interface, class}. + */ +function _registry_check_code($type, $name) { + $file = db_result(db_query("SELECT filename FROM {registry} WHERE name = '%s' AND type = '%s'", $name, $type)); + if ($file) { + require_once($file); + registry_mark_code($type, $name); + return TRUE; + } +} + +/** + * Collect the resources used for this request. + * + * @param $type + * The type of resource. + * @param $name + * The name of the resource. + * @param $return + * Boolean flag to indicate whether to return the resources. + */ +function registry_mark_code($type, $name, $return = FALSE) { + static $resources = array(); + + if ($type && $name) { + if (!isset($resources[$type])) { + $resources[$type] = array(); + } + if (!in_array($name, $resources[$type])) { + $resources[$type][] = $name; + } + } + + if ($return) { + return $resources; + } +} + +/** + * Rescan all enabled modules and rebuild the registry. + * + * Rescans all code in modules or includes directory, storing a mapping of + * each function, file, and hook implementation in the database. + */ +function drupal_rebuild_code_registry() { + require_once './includes/registry.inc'; + _drupal_rebuild_code_registry(); +} + +/** + * Save hook implementations cache. + * + * @param $hook + * Array with the hook name and list of modules that implement it. + * @param $write_to_persistent_cache + * Whether to write to the persistent cache. + */ +function registry_cache_hook_implementations($hook, $write_to_persistent_cache = FALSE) { + static $implementations; + + if ($hook) { + // Newer is always better, so overwrite anything that's come before. + $implementations[$hook['hook']] = $hook['modules']; + } + + if ($write_to_persistent_cache === TRUE) { + cache_set('hooks', $implementations, 'cache_registry'); + } +} + +/** + * Save the files required by the registry for this path. + */ +function registry_cache_path_files() { + if ($used_code = registry_mark_code(NULL, NULL, TRUE)) { + $files = array(); + $type_sql = array(); + $params = array(); + foreach ($used_code as $type => $names) { + $type_sql[] = "(name IN (" . db_placeholders($names, 'varchar') . ") AND type = '%s')"; + $params = array_merge($params, $names); + $params[] = $type; + } + $res = db_query("SELECT DISTINCT filename FROM {registry} WHERE " . implode(' OR ', $type_sql), $params); + while ($row = db_fetch_object($res)) { + $files[] = $row->filename; + } + if ($files) { + $menu = menu_get_item(); + cache_set('registry:' . $menu['path'], implode(';', $files), 'cache_registry'); + } + } +} + +/** + * @} End of "ingroup registry". + */ diff --git a/includes/common.inc b/includes/common.inc index 371f3443f0e..710d2e3c2b5 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -1460,11 +1460,15 @@ function l($text, $path, $options = array()) { * react to the closing of the page by calling hook_exit(). */ function drupal_page_footer() { + if (variable_get('cache', CACHE_DISABLED) != CACHE_DISABLED) { page_set_cache(); } module_invoke_all('exit'); + + registry_cache_hook_implementations(FALSE, TRUE); + registry_cache_path_files(); } /** @@ -2700,7 +2704,7 @@ function drupal_render(&$elements) { // element is rendered into the final text. if (isset($elements['#pre_render'])) { foreach ($elements['#pre_render'] as $function) { - if (function_exists($function)) { + if (drupal_function_exists($function)) { $elements = $function($elements); } } @@ -2762,7 +2766,7 @@ function drupal_render(&$elements) { // which allows the output'ed text to be filtered. if (isset($elements['#post_render'])) { foreach ($elements['#post_render'] as $function) { - if (function_exists($function)) { + if (drupal_function_exists($function)) { $content = $function($content, $elements); } } @@ -3142,7 +3146,7 @@ function drupal_uninstall_schema($module) { */ function drupal_get_schema_unprocessed($module, $table = NULL) { // Load the .install file to get hook_schema. - module_load_include('install', $module); + module_load_install($module); $schema = module_invoke($module, 'schema'); if (!is_null($table) && isset($schema[$table])) { @@ -3528,6 +3532,7 @@ function drupal_flush_all_caches() { // Change query-strings on css/js files to enforce reload for all users. _drupal_flush_css_js(); + drupal_rebuild_code_registry(); drupal_clear_css_cache(); drupal_clear_js_cache(); system_theme_data(); @@ -3536,7 +3541,7 @@ function drupal_flush_all_caches() { node_types_rebuild(); // Don't clear cache_form - in-progress form submissions may break. // Ordered so clearing the page cache will always be the last action. - $core = array('cache', 'cache_block', 'cache_filter', 'cache_page'); + $core = array('cache', 'cache_block', 'cache_filter', 'cache_registry', 'cache_page'); $cache_tables = array_merge(module_invoke_all('flush_caches'), $core); foreach ($cache_tables as $table) { cache_clear_all('*', $table, TRUE); diff --git a/includes/form.inc b/includes/form.inc index bb02accabcd..94aa380b16e 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -327,7 +327,7 @@ function drupal_retrieve_form($form_id, &$form_state) { // We first check to see if there's a function named after the $form_id. // If there is, we simply pass the arguments on to it to get the form. - if (!function_exists($form_id)) { + if (!drupal_function_exists($form_id)) { // In cases where many form_ids need to share a central constructor function, // such as the node editing form, modules can implement hook_forms(). It // maps one or more form_ids to the correct constructor functions. @@ -348,6 +348,7 @@ function drupal_retrieve_form($form_id, &$form_state) { } if (isset($form_definition['callback'])) { $callback = $form_definition['callback']; + drupal_function_exists($callback); } } @@ -504,13 +505,13 @@ function drupal_prepare_form($form_id, &$form, &$form_state) { $form += _element_info('form'); if (!isset($form['#validate'])) { - if (function_exists($form_id . '_validate')) { + if (drupal_function_exists($form_id . '_validate')) { $form['#validate'] = array($form_id . '_validate'); } } if (!isset($form['#submit'])) { - if (function_exists($form_id . '_submit')) { + if (drupal_function_exists($form_id . '_submit')) { // We set submit here so that it can be altered. $form['#submit'] = array($form_id . '_submit'); } @@ -712,7 +713,7 @@ function _form_validate($elements, &$form_state, $form_id = NULL) { // #value data. elseif (isset($elements['#element_validate'])) { foreach ($elements['#element_validate'] as $function) { - if (function_exists($function)) { + if (drupal_function_exists($function)) { $function($elements, $form_state, $complete_form); } } @@ -749,7 +750,7 @@ function form_execute_handlers($type, &$form, &$form_state) { } foreach ($handlers as $function) { - if (function_exists($function)) { + if (drupal_function_exists($function)) { if ($type == 'submit' && ($batch =& batch_get())) { // Some previous _submit handler has set a batch. We store the call // in a special 'control' batch set, for execution at the correct @@ -1032,7 +1033,7 @@ function _form_builder_handle_input_element($form_id, &$form, &$form_state, $com // checkboxes and files. if (isset($form['#process']) && !$form['#processed']) { foreach ($form['#process'] as $process) { - if (function_exists($process)) { + if (drupal_function_exists($process)) { $form = $process($form, isset($edit) ? $edit : NULL, $form_state, $complete_form); } } diff --git a/includes/install.inc b/includes/install.inc index 9398077a10a..54bfd4bc442 100644 --- a/includes/install.inc +++ b/includes/install.inc @@ -687,8 +687,9 @@ function drupal_check_profile($profile) { $requirements = array(); foreach ($installs as $install) { require_once $install->filename; - if (module_hook($install->name, 'requirements')) { - $requirements = array_merge($requirements, module_invoke($install->name, 'requirements', 'install')); + $function = $install->name. '_requirements'; + if (function_exists($function)) { + $requirements = array_merge($requirements, $function('install')); } } return $requirements; diff --git a/includes/mail.inc b/includes/mail.inc index 56c765e7c4f..c2394a41491 100644 --- a/includes/mail.inc +++ b/includes/mail.inc @@ -115,7 +115,7 @@ function drupal_mail($module, $key, $to, $language, $params = array(), $from = N // Build the e-mail (get subject and body, allow additional headers) by // invoking hook_mail() on this module. We cannot use module_invoke() as // we need to have $message by reference in hook_mail(). - if (function_exists($function = $module . '_mail')) { + if (drupal_function_exists($function = $module . '_mail')) { $function($key, $message, $params); } diff --git a/includes/menu.inc b/includes/menu.inc index 2e57234dd6f..1a52d3da487 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -339,11 +339,16 @@ function menu_execute_active_handler($path = NULL) { menu_rebuild(); } if ($router_item = menu_get_item($path)) { - if ($router_item['access']) { - if ($router_item['file']) { - require_once($router_item['file']); + $cache = cache_get('registry:' . $router_item['path'], 'cache_registry'); + if (!empty($cache->data)) { + foreach(explode(';', $cache->data) as $file) { + require_once($file); + } + } + if ($router_item['access']) { + if (drupal_function_exists($router_item['page_callback'])) { + return call_user_func_array($router_item['page_callback'], $router_item['page_arguments']); } - return call_user_func_array($router_item['page_callback'], $router_item['page_arguments']); } else { return MENU_ACCESS_DENIED; @@ -1665,7 +1670,7 @@ function menu_router_build($reset = FALSE) { // We need to manually call each module so that we can know which module // a given item came from. $callbacks = array(); - foreach (module_implements('menu') as $module) { + foreach (module_implements('menu', NULL, TRUE) as $module) { $router_items = call_user_func($module . '_menu'); if (isset($router_items) && is_array($router_items)) { foreach (array_keys($router_items) as $path) { @@ -2201,12 +2206,12 @@ function _menu_router_build($callbacks) { $load_functions[$k] = NULL; } else { - if (function_exists($matches[1] . '_to_arg')) { + if (drupal_function_exists($matches[1] . '_to_arg')) { $to_arg_functions[$k] = $matches[1] . '_to_arg'; $load_functions[$k] = NULL; $match = TRUE; } - if (function_exists($matches[1] . '_load')) { + if (drupal_function_exists($matches[1] . '_load')) { $function = $matches[1] . '_load'; // Create an array of arguments that will be passed to the _load // function when this menu path is checked, if 'load arguments' @@ -2293,12 +2298,6 @@ function _menu_router_build($callbacks) { if (!isset($item['page arguments']) && isset($parent['page arguments'])) { $item['page arguments'] = $parent['page arguments']; } - if (!isset($item['file']) && isset($parent['file'])) { - $item['file'] = $parent['file']; - } - if (!isset($item['file path']) && isset($parent['file path'])) { - $item['file path'] = $parent['file path']; - } } } } @@ -2326,34 +2325,25 @@ function _menu_router_build($callbacks) { 'tab_parent' => '', 'tab_root' => $path, 'path' => $path, - 'file' => '', - 'file path' => '', - 'include file' => '', ); - // Calculate out the file to be included for each callback, if any. - if ($item['file']) { - $file_path = $item['file path'] ? $item['file path'] : drupal_get_path('module', $item['module']); - $item['include file'] = $file_path . '/' . $item['file']; - } - $title_arguments = $item['title arguments'] ? serialize($item['title arguments']) : ''; db_query("INSERT INTO {menu_router} (path, load_functions, to_arg_functions, access_callback, access_arguments, page_callback, page_arguments, fit, number_parts, tab_parent, tab_root, title, title_callback, title_arguments, - type, block_callback, description, position, weight, file) + type, block_callback, description, position, weight) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', - %d, '%s', '%s', '%s', %d, '%s')", + %d, '%s', '%s', '%s', %d)", $path, $item['load_functions'], $item['to_arg_functions'], $item['access callback'], serialize($item['access arguments']), $item['page callback'], serialize($item['page arguments']), $item['_fit'], $item['_number_parts'], $item['tab_parent'], $item['tab_root'], $item['title'], $item['title callback'], $title_arguments, - $item['type'], $item['block callback'], $item['description'], $item['position'], $item['weight'], $item['include file']); + $item['type'], $item['block callback'], $item['description'], $item['position'], $item['weight']); } // Sort the masks so they are in order of descending fit, and store them. $masks = array_keys($masks); diff --git a/includes/module.inc b/includes/module.inc index d0f10029845..e62558af4cd 100644 --- a/includes/module.inc +++ b/includes/module.inc @@ -221,7 +221,7 @@ function _module_build_dependencies($files) { */ function module_exists($module) { $list = module_list(); - return array_key_exists($module, $list); + return isset($list[$module]); } /** @@ -231,7 +231,14 @@ function module_load_install($module) { // Make sure the installation API is available include_once './includes/install.inc'; - module_load_include('install', $module); + $file = module_load_include('install', $module); + // Ensure that you can module_invoke something inside the newly-loaded + // file during install. + $module_list = module_list(); + if (!isset($module_list[$module])) { + $module_list[$module]['filename'] = $file; + module_list(TRUE, FALSE, FALSE, $module_list); + } } /** @@ -253,6 +260,7 @@ function module_load_include($type, $module, $name = NULL) { if (is_file($file)) { require_once $file; + return $file; } else { return FALSE; @@ -292,7 +300,7 @@ function module_enable($module_list) { // Refresh the module list to include the new enabled module. module_list(TRUE, FALSE); // Force to regenerate the stored list of hook implementations. - module_implements('', FALSE, TRUE); + drupal_rebuild_code_registry(); } foreach ($invoke_modules as $module) { @@ -301,7 +309,7 @@ function module_enable($module_list) { // We check for the existence of node_access_needs_rebuild() since // at install time, module_enable() could be called while node.module // is not enabled yet. - if (function_exists('node_access_needs_rebuild') && !node_access_needs_rebuild() && module_hook($module, 'node_grants')) { + if (drupal_function_exists('node_access_needs_rebuild') && !node_access_needs_rebuild() && module_hook($module, 'node_grants')) { node_access_needs_rebuild(TRUE); } } @@ -333,7 +341,7 @@ function module_disable($module_list) { // Refresh the module list to exclude the disabled modules. module_list(TRUE, FALSE); // Force to regenerate the stored list of hook implementations. - module_implements('', FALSE, TRUE); + drupal_rebuild_code_registry(); } // If there remains no more node_access module, rebuilding will be @@ -376,7 +384,13 @@ function module_disable($module_list) { * implemented in that module. */ function module_hook($module, $hook) { - return function_exists($module . '_' . $hook); + $function = $module . '_' . $hook; + if (defined('MAINTENANCE_MODE')) { + return function_exists($function); + } + else { + return drupal_function_exists($function); + } } /** @@ -395,22 +409,26 @@ function module_hook($module, $hook) { * An array with the names of the modules which are implementing this hook. */ function module_implements($hook, $sort = FALSE, $refresh = FALSE) { - static $implementations; + static $implementations = array(); if ($refresh) { $implementations = array(); - return; + } + else if (!defined('MAINTENANCE_MODE') && empty($implementations)) { + if ($cache = cache_get('hooks', 'cache_registry')) { + $implementations = $cache->data; + } } if (!isset($implementations[$hook])) { $implementations[$hook] = array(); - $list = module_list(FALSE, TRUE, $sort); - foreach ($list as $module) { + foreach (module_list() as $module) { if (module_hook($module, $hook)) { $implementations[$hook][] = $module; } } } + registry_cache_hook_implementations(array('hook' => $hook, 'modules' => $implementations[$hook])); // The explicit cast forces a copy to be made. This is needed because // $implementations[$hook] is only a reference to an element of @@ -438,9 +456,8 @@ function module_invoke() { $module = $args[0]; $hook = $args[1]; unset($args[0], $args[1]); - $function = $module . '_' . $hook; if (module_hook($module, $hook)) { - return call_user_func_array($function, $args); + return call_user_func_array($module . '_' . $hook, $args); } } /** @@ -461,12 +478,14 @@ function module_invoke_all() { $return = array(); foreach (module_implements($hook) as $module) { $function = $module . '_' . $hook; - $result = call_user_func_array($function, $args); - if (isset($result) && is_array($result)) { - $return = array_merge_recursive($return, $result); - } - else if (isset($result)) { - $return[] = $result; + if (drupal_function_exists($function)) { + $result = call_user_func_array($function, $args); + if (isset($result) && is_array($result)) { + $return = array_merge_recursive($return, $result); + } + else if (isset($result)) { + $return[] = $result; + } } } diff --git a/includes/theme.inc b/includes/theme.inc index d675e156402..3b4d1dc1c9b 100644 --- a/includes/theme.inc +++ b/includes/theme.inc @@ -177,7 +177,9 @@ function _init_theme($theme, $base_theme = array(), $registry_callback = '_theme } } - $registry_callback($theme, $base_theme, $theme_engine); + if (drupal_function_exists($registry_callback)) { + $registry_callback($theme, $base_theme, $theme_engine); + } } /** @@ -628,7 +630,7 @@ function theme() { // call_user_func_array. $args = array(&$variables, $hook); foreach ($info['preprocess functions'] as $preprocess_function) { - if (function_exists($preprocess_function)) { + if (drupal_function_exists($preprocess_function)) { call_user_func_array($preprocess_function, $args); } } diff --git a/includes/xmlrpcs.inc b/includes/xmlrpcs.inc index 21509d494fa..ffa5fd8c3fd 100644 --- a/includes/xmlrpcs.inc +++ b/includes/xmlrpcs.inc @@ -202,7 +202,7 @@ function xmlrpc_server_call($xmlrpc_server, $methodname, $args) { } } - if (!function_exists($method)) { + if (!drupal_function_exists($method)) { return xmlrpc_error(-32601, t('Server error. Requested function @method does not exist.', array("@method" => $method))); } // Call the mapped function diff --git a/install.php b/install.php index 0341500008a..902fe2b8f73 100644 --- a/install.php +++ b/install.php @@ -785,8 +785,8 @@ if (Drupal.jsEnabled) { // The end of the install process. Remember profile used. if ($task == 'done') { - // Rebuild menu to get content type links registered by the profile, - // and possibly any other menu items created through the tasks. + // Rebuild menu and registry to get content type links registered by the + // profile, and possibly any other menu items created through the tasks. menu_rebuild(); // Register actions declared by any modules. diff --git a/modules/aggregator/aggregator.info b/modules/aggregator/aggregator.info index 2d16c0792ff..ae6d3e767a7 100644 --- a/modules/aggregator/aggregator.info +++ b/modules/aggregator/aggregator.info @@ -4,3 +4,6 @@ description = "Aggregates syndicated content (RSS, RDF, and Atom feeds)." package = Core - optional version = VERSION core = 7.x +files[] = aggregator.module +files[] = aggregator.admin.inc +files[] = aggregator.pages.inc diff --git a/modules/aggregator/aggregator.module b/modules/aggregator/aggregator.module index d9af23b2738..565a3617ccf 100644 --- a/modules/aggregator/aggregator.module +++ b/modules/aggregator/aggregator.module @@ -84,7 +84,6 @@ function aggregator_menu() { 'description' => "Configure which content your site aggregates from other sites, how often it polls them, and how they're categorized.", 'page callback' => 'aggregator_admin_overview', 'access arguments' => array('administer news feeds'), - 'file' => 'aggregator.admin.inc', ); $items['admin/content/aggregator/add/feed'] = array( 'title' => 'Add feed', @@ -93,7 +92,6 @@ function aggregator_menu() { 'access arguments' => array('administer news feeds'), 'type' => MENU_LOCAL_TASK, 'parent' => 'admin/content/aggregator', - 'file' => 'aggregator.admin.inc', ); $items['admin/content/aggregator/add/category'] = array( 'title' => 'Add category', @@ -102,7 +100,6 @@ function aggregator_menu() { 'access arguments' => array('administer news feeds'), 'type' => MENU_LOCAL_TASK, 'parent' => 'admin/content/aggregator', - 'file' => 'aggregator.admin.inc', ); $items['admin/content/aggregator/remove/%aggregator_feed'] = array( 'title' => 'Remove items', @@ -110,7 +107,6 @@ function aggregator_menu() { 'page arguments' => array('aggregator_admin_remove_feed', 4), 'access arguments' => array('administer news feeds'), 'type' => MENU_CALLBACK, - 'file' => 'aggregator.admin.inc', ); $items['admin/content/aggregator/update/%aggregator_feed'] = array( 'title' => 'Update items', @@ -118,7 +114,6 @@ function aggregator_menu() { 'page arguments' => array(4), 'access arguments' => array('administer news feeds'), 'type' => MENU_CALLBACK, - 'file' => 'aggregator.admin.inc', ); $items['admin/content/aggregator/list'] = array( 'title' => 'List', @@ -132,40 +127,34 @@ function aggregator_menu() { 'type' => MENU_LOCAL_TASK, 'weight' => 10, 'access arguments' => array('administer news feeds'), - 'file' => 'aggregator.admin.inc', ); $items['aggregator'] = array( 'title' => 'Feed aggregator', 'page callback' => 'aggregator_page_last', 'access arguments' => array('access news feeds'), 'weight' => 5, - 'file' => 'aggregator.pages.inc', ); $items['aggregator/sources'] = array( 'title' => 'Sources', 'page callback' => 'aggregator_page_sources', 'access arguments' => array('access news feeds'), - 'file' => 'aggregator.pages.inc', ); $items['aggregator/categories'] = array( 'title' => 'Categories', 'page callback' => 'aggregator_page_categories', 'access callback' => '_aggregator_has_categories', - 'file' => 'aggregator.pages.inc', ); $items['aggregator/rss'] = array( 'title' => 'RSS feed', 'page callback' => 'aggregator_page_rss', 'access arguments' => array('access news feeds'), 'type' => MENU_CALLBACK, - 'file' => 'aggregator.pages.inc', ); $items['aggregator/opml'] = array( 'title' => 'OPML feed', 'page callback' => 'aggregator_page_opml', 'access arguments' => array('access news feeds'), 'type' => MENU_CALLBACK, - 'file' => 'aggregator.pages.inc', ); $items['aggregator/categories/%aggregator_category'] = array( 'title callback' => '_aggregator_category_title', @@ -174,7 +163,6 @@ function aggregator_menu() { 'page arguments' => array(2), 'access callback' => 'user_access', 'access arguments' => array('access news feeds'), - 'file' => 'aggregator.pages.inc', ); $items['aggregator/categories/%aggregator_category/view'] = array( 'title' => 'View', @@ -187,7 +175,6 @@ function aggregator_menu() { 'page arguments' => array('aggregator_page_category', 2), 'access arguments' => array('administer news feeds'), 'type' => MENU_LOCAL_TASK, - 'file' => 'aggregator.pages.inc', ); $items['aggregator/categories/%aggregator_category/configure'] = array( 'title' => 'Configure', @@ -196,14 +183,12 @@ function aggregator_menu() { 'access arguments' => array('administer news feeds'), 'type' => MENU_LOCAL_TASK, 'weight' => 1, - 'file' => 'aggregator.admin.inc', ); $items['aggregator/sources/%aggregator_feed'] = array( 'page callback' => 'aggregator_page_source', 'page arguments' => array(2), 'access arguments' => array('access news feeds'), 'type' => MENU_CALLBACK, - 'file' => 'aggregator.pages.inc', ); $items['aggregator/sources/%aggregator_feed/view'] = array( 'title' => 'View', @@ -216,7 +201,6 @@ function aggregator_menu() { 'page arguments' => array('aggregator_page_source', 2), 'access arguments' => array('administer news feeds'), 'type' => MENU_LOCAL_TASK, - 'file' => 'aggregator.pages.inc', ); $items['aggregator/sources/%aggregator_feed/configure'] = array( 'title' => 'Configure', @@ -225,7 +209,6 @@ function aggregator_menu() { 'access arguments' => array('administer news feeds'), 'type' => MENU_LOCAL_TASK, 'weight' => 1, - 'file' => 'aggregator.admin.inc', ); $items['admin/content/aggregator/edit/feed/%aggregator_feed'] = array( 'title' => 'Edit feed', @@ -233,7 +216,6 @@ function aggregator_menu() { 'page arguments' => array('aggregator_form_feed', 5), 'access arguments' => array('administer news feeds'), 'type' => MENU_CALLBACK, - 'file' => 'aggregator.admin.inc', ); $items['admin/content/aggregator/edit/category/%aggregator_category'] = array( 'title' => 'Edit category', @@ -241,7 +223,6 @@ function aggregator_menu() { 'page arguments' => array('aggregator_form_category', 5), 'access arguments' => array('administer news feeds'), 'type' => MENU_CALLBACK, - 'file' => 'aggregator.admin.inc', ); return $items; diff --git a/modules/block/block.info b/modules/block/block.info index 75bd66eded1..4b9dd2afcd5 100644 --- a/modules/block/block.info +++ b/modules/block/block.info @@ -4,3 +4,5 @@ description = Controls the boxes that are displayed around the main content. package = Core - required version = VERSION core = 7.x +files[] = block.module +files[] = block.admin.inc diff --git a/modules/block/block.module b/modules/block/block.module index ba1257a06f9..d3660c1ec28 100644 --- a/modules/block/block.module +++ b/modules/block/block.module @@ -120,7 +120,6 @@ function block_menu() { 'description' => 'Configure what block content appears in your site\'s sidebars and other regions.', 'page callback' => 'block_admin_display', 'access arguments' => array('administer blocks'), - 'file' => 'block.admin.inc', ); $items['admin/build/block/list'] = array( 'title' => 'List', @@ -132,7 +131,6 @@ function block_menu() { 'page callback' => 'block_admin_display_js', 'access arguments' => array('administer blocks'), 'type' => MENU_CALLBACK, - 'file' => 'block.admin.inc', ); $items['admin/build/block/configure'] = array( 'title' => 'Configure block', @@ -140,7 +138,6 @@ function block_menu() { 'page arguments' => array('block_admin_configure'), 'access arguments' => array('administer blocks'), 'type' => MENU_CALLBACK, - 'file' => 'block.admin.inc', ); $items['admin/build/block/delete'] = array( 'title' => 'Delete block', @@ -148,7 +145,6 @@ function block_menu() { 'page arguments' => array('block_box_delete'), 'access arguments' => array('administer blocks'), 'type' => MENU_CALLBACK, - 'file' => 'block.admin.inc', ); $items['admin/build/block/add'] = array( 'title' => 'Add block', @@ -156,7 +152,6 @@ function block_menu() { 'page arguments' => array('block_add_block_form'), 'access arguments' => array('administer blocks'), 'type' => MENU_LOCAL_TASK, - 'file' => 'block.admin.inc', ); $default = variable_get('theme_default', 'garland'); foreach (list_themes() as $key => $theme) { @@ -165,7 +160,6 @@ function block_menu() { 'page arguments' => array($key), 'type' => $key == $default ? MENU_DEFAULT_LOCAL_TASK : MENU_LOCAL_TASK, 'weight' => $key == $default ? -10 : 0, - 'file' => 'block.admin.inc', 'access callback' => '_block_themes_access', 'access arguments' => array($theme), ); diff --git a/modules/blog/blog.info b/modules/blog/blog.info index f40da2c42a0..ae6430bef98 100644 --- a/modules/blog/blog.info +++ b/modules/blog/blog.info @@ -4,3 +4,5 @@ description = Enables keeping easily and regularly updated user web pages or blo package = Core - optional version = VERSION core = 7.x +files[] = blog.module +files[] = blog.pages.inc diff --git a/modules/blog/blog.module b/modules/blog/blog.module index a2a207b768d..1cc82a16d60 100644 --- a/modules/blog/blog.module +++ b/modules/blog/blog.module @@ -138,7 +138,6 @@ function blog_menu() { 'page callback' => 'blog_page_last', 'access arguments' => array('access content'), 'type' => MENU_SUGGESTED_ITEM, - 'file' => 'blog.pages.inc', ); $items['blog/%user_uid_optional'] = array( 'title' => 'My blog', @@ -146,7 +145,6 @@ function blog_menu() { 'page arguments' => array(1), 'access callback' => 'blog_page_user_access', 'access arguments' => array(1), - 'file' => 'blog.pages.inc', ); $items['blog/%user/feed'] = array( 'title' => 'Blogs', @@ -155,14 +153,12 @@ function blog_menu() { 'access callback' => 'blog_page_user_access', 'access arguments' => array(1), 'type' => MENU_CALLBACK, - 'file' => 'blog.pages.inc', ); $items['blog/feed'] = array( 'title' => 'Blogs', 'page callback' => 'blog_feed_last', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, - 'file' => 'blog.pages.inc', ); return $items; diff --git a/modules/blogapi/blogapi.info b/modules/blogapi/blogapi.info index b094bba4a7a..fbe20346ad1 100644 --- a/modules/blogapi/blogapi.info +++ b/modules/blogapi/blogapi.info @@ -4,3 +4,4 @@ description = Allows users to post content using applications that support XML-R package = Core - optional version = VERSION core = 7.x +files[] = blogapi.module diff --git a/modules/book/book.info b/modules/book/book.info index 9c2f3537a89..23684b43eab 100644 --- a/modules/book/book.info +++ b/modules/book/book.info @@ -4,3 +4,6 @@ description = Allows users to structure site pages in a hierarchy or outline. package = Core - optional version = VERSION core = 7.x +files[] = book.module +files[] = book.admin.inc +files[] = book.pages.inc diff --git a/modules/book/book.module b/modules/book/book.module index 3d33ce5bc89..990002a0836 100644 --- a/modules/book/book.module +++ b/modules/book/book.module @@ -85,7 +85,6 @@ function book_menu() { 'description' => "Manage your site's book outlines.", 'page callback' => 'book_admin_overview', 'access arguments' => array('administer book outlines'), - 'file' => 'book.admin.inc', ); $items['admin/content/book/list'] = array( 'title' => 'List', @@ -98,7 +97,6 @@ function book_menu() { 'access arguments' => array('administer site configuration'), 'type' => MENU_LOCAL_TASK, 'weight' => 8, - 'file' => 'book.admin.inc', ); $items['admin/content/book/%node'] = array( 'title' => 'Re-order book pages and change titles', @@ -107,21 +105,18 @@ function book_menu() { 'access callback' => '_book_outline_access', 'access arguments' => array(3), 'type' => MENU_CALLBACK, - 'file' => 'book.admin.inc', ); $items['book'] = array( 'title' => 'Books', 'page callback' => 'book_render', 'access arguments' => array('access content'), 'type' => MENU_SUGGESTED_ITEM, - 'file' => 'book.pages.inc', ); $items['book/export/%/%'] = array( 'page callback' => 'book_export', 'page arguments' => array(2, 3), 'access arguments' => array('access printer-friendly version'), 'type' => MENU_CALLBACK, - 'file' => 'book.pages.inc', ); $items['node/%node/outline'] = array( 'title' => 'Outline', @@ -131,7 +126,6 @@ function book_menu() { 'access arguments' => array(1), 'type' => MENU_LOCAL_TASK, 'weight' => 2, - 'file' => 'book.pages.inc', ); $items['node/%node/outline/remove'] = array( 'title' => 'Remove from outline', @@ -140,13 +134,11 @@ function book_menu() { 'access callback' => '_book_outline_remove_access', 'access arguments' => array(1), 'type' => MENU_CALLBACK, - 'file' => 'book.pages.inc', ); $items['book/js/form'] = array( 'page callback' => 'book_form_update', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, - 'file' => 'book.pages.inc', ); return $items; } diff --git a/modules/color/color.info b/modules/color/color.info index 7c1d7b0899a..d6794ab124c 100644 --- a/modules/color/color.info +++ b/modules/color/color.info @@ -4,3 +4,4 @@ description = Allows administrators to change the color scheme of compatible the package = Core - optional version = VERSION core = 7.x +files[] = color.module diff --git a/modules/comment/comment.info b/modules/comment/comment.info index cdd764b48a6..00f29d42297 100644 --- a/modules/comment/comment.info +++ b/modules/comment/comment.info @@ -4,3 +4,6 @@ description = Allows users to comment on and discuss published content. package = Core - optional version = VERSION core = 7.x +files[] = comment.module +files[] = comment.admin.inc +files[] = comment.pages.inc diff --git a/modules/comment/comment.module b/modules/comment/comment.module index 05fe9a11eb2..ead3cc906be 100644 --- a/modules/comment/comment.module +++ b/modules/comment/comment.module @@ -176,7 +176,6 @@ function comment_menu() { 'description' => 'List and edit site comments and the comment moderation queue.', 'page callback' => 'comment_admin', 'access arguments' => array('administer comments'), - 'file' => 'comment.admin.inc', ); // Tabs: @@ -190,7 +189,6 @@ function comment_menu() { 'page arguments' => array('approval'), 'access arguments' => array('administer comments'), 'type' => MENU_LOCAL_TASK, - 'file' => 'comment.admin.inc', ); $items['comment/delete'] = array( @@ -198,7 +196,6 @@ function comment_menu() { 'page callback' => 'comment_delete', 'access arguments' => array('administer comments'), 'type' => MENU_CALLBACK, - 'file' => 'comment.admin.inc', ); $items['comment/edit'] = array( @@ -206,7 +203,6 @@ function comment_menu() { 'page callback' => 'comment_edit', 'access arguments' => array('post comments'), 'type' => MENU_CALLBACK, - 'file' => 'comment.pages.inc', ); $items['comment/reply/%node'] = array( 'title' => 'Reply to comment', @@ -215,7 +211,6 @@ function comment_menu() { 'access callback' => 'node_access', 'access arguments' => array('view', 2), 'type' => MENU_CALLBACK, - 'file' => 'comment.pages.inc', ); return $items; diff --git a/modules/contact/contact.info b/modules/contact/contact.info index e88c4c08cab..2ddd526c4b7 100644 --- a/modules/contact/contact.info +++ b/modules/contact/contact.info @@ -4,3 +4,6 @@ description = Enables the use of both personal and site-wide contact forms. package = Core - optional version = VERSION core = 7.x +files[] = contact.module +files[] = contact.admin.inc +files[] = contact.pages.inc diff --git a/modules/contact/contact.module b/modules/contact/contact.module index 867f77109dc..cd849cf0530 100644 --- a/modules/contact/contact.module +++ b/modules/contact/contact.module @@ -51,13 +51,11 @@ function contact_menu() { 'description' => 'Create a system contact form and set up categories for the form to use.', 'page callback' => 'contact_admin_categories', 'access arguments' => array('administer site-wide contact form'), - 'file' => 'contact.admin.inc', ); $items['admin/build/contact/list'] = array( 'title' => 'List', 'page callback' => 'contact_admin_categories', 'type' => MENU_DEFAULT_LOCAL_TASK, - 'file' => 'contact.admin.inc', ); $items['admin/build/contact/add'] = array( 'title' => 'Add category', @@ -66,7 +64,6 @@ function contact_menu() { 'access arguments' => array('administer site-wide contact form'), 'type' => MENU_LOCAL_TASK, 'weight' => 1, - 'file' => 'contact.admin.inc', ); $items['admin/build/contact/edit/%contact'] = array( 'title' => 'Edit contact category', @@ -74,7 +71,6 @@ function contact_menu() { 'page arguments' => array('contact_admin_edit', 3, 4), 'access arguments' => array('administer site-wide contact form'), 'type' => MENU_CALLBACK, - 'file' => 'contact.admin.inc', ); $items['admin/build/contact/delete/%contact'] = array( 'title' => 'Delete contact', @@ -82,7 +78,6 @@ function contact_menu() { 'page arguments' => array('contact_admin_delete', 4), 'access arguments' => array('administer site-wide contact form'), 'type' => MENU_CALLBACK, - 'file' => 'contact.admin.inc', ); $items['admin/build/contact/settings'] = array( 'title' => 'Settings', @@ -91,14 +86,12 @@ function contact_menu() { 'access arguments' => array('administer site-wide contact form'), 'type' => MENU_LOCAL_TASK, 'weight' => 2, - 'file' => 'contact.admin.inc', ); $items['contact'] = array( 'title' => 'Contact', 'page callback' => 'contact_site_page', 'access arguments' => array('access site-wide contact form'), 'type' => MENU_SUGGESTED_ITEM, - 'file' => 'contact.pages.inc', ); $items['user/%user/contact'] = array( 'title' => 'Contact', @@ -108,7 +101,6 @@ function contact_menu() { 'access callback' => '_contact_user_tab_access', 'access arguments' => array(1), 'weight' => 2, - 'file' => 'contact.pages.inc', ); return $items; } diff --git a/modules/dblog/dblog.info b/modules/dblog/dblog.info index 3ec37051f41..b00b387f43a 100644 --- a/modules/dblog/dblog.info +++ b/modules/dblog/dblog.info @@ -4,3 +4,5 @@ description = Logs and records system events to the database. package = Core - optional version = VERSION core = 7.x +files[] = dblog.module +files[] = dblog.admin.inc diff --git a/modules/dblog/dblog.module b/modules/dblog/dblog.module index f5d74c4b4d0..7003a1b3c49 100644 --- a/modules/dblog/dblog.module +++ b/modules/dblog/dblog.module @@ -48,16 +48,13 @@ function dblog_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('dblog_admin_settings'), 'access arguments' => array('administer site configuration'), - 'file' => 'dblog.admin.inc', ); - $items['admin/reports/dblog'] = array( 'title' => 'Recent log entries', 'description' => 'View events that have recently been logged.', 'page callback' => 'dblog_overview', 'access arguments' => array('access site reports'), 'weight' => -1, - 'file' => 'dblog.admin.inc', ); $items['admin/reports/page-not-found'] = array( 'title' => "Top 'page not found' errors", @@ -65,7 +62,6 @@ function dblog_menu() { 'page callback' => 'dblog_top', 'page arguments' => array('page not found'), 'access arguments' => array('access site reports'), - 'file' => 'dblog.admin.inc', ); $items['admin/reports/access-denied'] = array( 'title' => "Top 'access denied' errors", @@ -73,7 +69,6 @@ function dblog_menu() { 'page callback' => 'dblog_top', 'page arguments' => array('access denied'), 'access arguments' => array('access site reports'), - 'file' => 'dblog.admin.inc', ); $items['admin/reports/event/%'] = array( 'title' => 'Details', @@ -81,7 +76,6 @@ function dblog_menu() { 'page arguments' => array(3), 'access arguments' => array('access site reports'), 'type' => MENU_CALLBACK, - 'file' => 'dblog.admin.inc', ); return $items; } diff --git a/modules/filter/filter.info b/modules/filter/filter.info index 7f9059c029f..2c9a8a32bad 100644 --- a/modules/filter/filter.info +++ b/modules/filter/filter.info @@ -4,3 +4,6 @@ description = Handles the filtering of content in preparation for display. package = Core - required version = VERSION core = 7.x +files[] = filter.module +files[] = filter.admin.inc +files[] = filter.pages.inc diff --git a/modules/filter/filter.module b/modules/filter/filter.module index 737198d2f9a..edc6e29360a 100644 --- a/modules/filter/filter.module +++ b/modules/filter/filter.module @@ -73,7 +73,6 @@ function filter_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('filter_admin_overview'), 'access arguments' => array('administer filters'), - 'file' => 'filter.admin.inc', ); $items['admin/settings/filters/list'] = array( 'title' => 'List', @@ -85,7 +84,6 @@ function filter_menu() { 'access arguments' => array('administer filters'), 'type' => MENU_LOCAL_TASK, 'weight' => 1, - 'file' => 'filter.admin.inc', ); $items['admin/settings/filters/delete'] = array( 'title' => 'Delete input format', @@ -93,14 +91,12 @@ function filter_menu() { 'page arguments' => array('filter_admin_delete'), 'access arguments' => array('administer filters'), 'type' => MENU_CALLBACK, - 'file' => 'filter.admin.inc', ); $items['filter/tips'] = array( 'title' => 'Compose tips', 'page callback' => 'filter_tips_long', 'access callback' => TRUE, 'type' => MENU_SUGGESTED_ITEM, - 'file' => 'filter.pages.inc', ); $items['admin/settings/filters/%filter_format'] = array( 'type' => MENU_CALLBACK, @@ -109,14 +105,11 @@ function filter_menu() { 'page callback' => 'filter_admin_format_page', 'page arguments' => array(3), 'access arguments' => array('administer filters'), - 'file' => 'filter.admin.inc', ); - $items['admin/settings/filters/%filter_format/edit'] = array( 'title' => 'Edit', 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => 0, - 'file' => 'filter.admin.inc', ); $items['admin/settings/filters/%filter_format/configure'] = array( 'title' => 'Configure', @@ -125,7 +118,6 @@ function filter_menu() { 'access arguments' => array('administer filters'), 'type' => MENU_LOCAL_TASK, 'weight' => 1, - 'file' => 'filter.admin.inc', ); $items['admin/settings/filters/%filter_format/order'] = array( 'title' => 'Rearrange', @@ -134,7 +126,6 @@ function filter_menu() { 'access arguments' => array('administer filters'), 'type' => MENU_LOCAL_TASK, 'weight' => 2, - 'file' => 'filter.admin.inc', ); return $items; } diff --git a/modules/forum/forum.info b/modules/forum/forum.info index 0d480c0f311..3a642adbc96 100644 --- a/modules/forum/forum.info +++ b/modules/forum/forum.info @@ -6,3 +6,6 @@ dependencies[] = comment package = Core - optional version = VERSION core = 7.x +files[] = forum.module +files[] = forum.admin.inc +files[] = forum.pages.inc diff --git a/modules/forum/forum.module b/modules/forum/forum.module index f2e391d6187..7903c65691b 100644 --- a/modules/forum/forum.module +++ b/modules/forum/forum.module @@ -87,7 +87,6 @@ function forum_menu() { 'page callback' => 'forum_page', 'access arguments' => array('access content'), 'type' => MENU_SUGGESTED_ITEM, - 'file' => 'forum.pages.inc', ); $items['admin/content/forum'] = array( 'title' => 'Forums', @@ -95,7 +94,6 @@ function forum_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('forum_overview'), 'access arguments' => array('administer forums'), - 'file' => 'forum.admin.inc', ); $items['admin/content/forum/list'] = array( 'title' => 'List', @@ -109,7 +107,6 @@ function forum_menu() { 'access arguments' => array('administer forums'), 'type' => MENU_LOCAL_TASK, 'parent' => 'admin/content/forum', - 'file' => 'forum.admin.inc', ); $items['admin/content/forum/add/forum'] = array( 'title' => 'Add forum', @@ -118,7 +115,6 @@ function forum_menu() { 'access arguments' => array('administer forums'), 'type' => MENU_LOCAL_TASK, 'parent' => 'admin/content/forum', - 'file' => 'forum.admin.inc', ); $items['admin/content/forum/settings'] = array( 'title' => 'Settings', @@ -128,13 +124,11 @@ function forum_menu() { 'weight' => 5, 'type' => MENU_LOCAL_TASK, 'parent' => 'admin/content/forum', - 'file' => 'forum.admin.inc', ); $items['admin/content/forum/edit/%forum_term'] = array( 'page callback' => 'forum_form_main', 'access arguments' => array('administer forums'), 'type' => MENU_CALLBACK, - 'file' => 'forum.admin.inc', ); $items['admin/content/forum/edit/container/%forum_term'] = array( 'title' => 'Edit container', @@ -142,7 +136,6 @@ function forum_menu() { 'page arguments' => array('container', 5), 'access arguments' => array('administer forums'), 'type' => MENU_CALLBACK, - 'file' => 'forum.admin.inc', ); $items['admin/content/forum/edit/forum/%forum_term'] = array( 'title' => 'Edit forum', @@ -150,7 +143,6 @@ function forum_menu() { 'page arguments' => array('forum', 5), 'access arguments' => array('administer forums'), 'type' => MENU_CALLBACK, - 'file' => 'forum.admin.inc', ); return $items; } diff --git a/modules/help/help.info b/modules/help/help.info index 503f739575d..cdf601be6cf 100644 --- a/modules/help/help.info +++ b/modules/help/help.info @@ -4,3 +4,5 @@ description = Manages the display of online help. package = Core - optional version = VERSION core = 7.x +files[] = help.module +files[] = help.admin.inc diff --git a/modules/help/help.module b/modules/help/help.module index ee972498d4d..00a9b9a34eb 100644 --- a/modules/help/help.module +++ b/modules/help/help.module @@ -15,7 +15,6 @@ function help_menu() { 'page callback' => 'help_main', 'access arguments' => array('access administration pages'), 'weight' => 9, - 'file' => 'help.admin.inc', ); foreach (module_implements('help', TRUE) as $module) { @@ -25,7 +24,6 @@ function help_menu() { 'page arguments' => array(2), 'access arguments' => array('access administration pages'), 'type' => MENU_CALLBACK, - 'file' => 'help.admin.inc', ); } diff --git a/modules/locale/locale.info b/modules/locale/locale.info index 9bd5fc8eb01..aeebbc2f0c7 100644 --- a/modules/locale/locale.info +++ b/modules/locale/locale.info @@ -4,3 +4,4 @@ description = Adds language handling functionality and enables the translation o package = Core - optional version = VERSION core = 7.x +files[] = locale.module diff --git a/modules/menu/menu.info b/modules/menu/menu.info index e3fa441a6c2..30a77127010 100644 --- a/modules/menu/menu.info +++ b/modules/menu/menu.info @@ -4,3 +4,5 @@ description = Allows administrators to customize the site navigation menu. package = Core - optional version = VERSION core = 7.x +files[] = menu.module +files[] = menu.admin.inc diff --git a/modules/menu/menu.module b/modules/menu/menu.module index a9b1fd04368..060e3b948e4 100644 --- a/modules/menu/menu.module +++ b/modules/menu/menu.module @@ -52,14 +52,11 @@ function menu_menu() { 'page callback' => 'menu_overview_page', 'access callback' => 'user_access', 'access arguments' => array('administer menu'), - 'file' => 'menu.admin.inc', ); - $items['admin/build/menu/list'] = array( 'title' => 'List menus', 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -10, - 'file' => 'menu.admin.inc', ); $items['admin/build/menu/add'] = array( 'title' => 'Add menu', @@ -67,7 +64,6 @@ function menu_menu() { 'page arguments' => array('menu_edit_menu', 'add'), 'access arguments' => array('administer menu'), 'type' => MENU_LOCAL_TASK, - 'file' => 'menu.admin.inc', ); $items['admin/build/menu/settings'] = array( 'title' => 'Settings', @@ -76,7 +72,6 @@ function menu_menu() { 'access arguments' => array('administer menu'), 'type' => MENU_LOCAL_TASK, 'weight' => 5, - 'file' => 'menu.admin.inc', ); $items['admin/build/menu-customize/%menu'] = array( 'title' => 'Customize menu', @@ -86,13 +81,11 @@ function menu_menu() { 'title arguments' => array(3), 'access arguments' => array('administer menu'), 'type' => MENU_CALLBACK, - 'file' => 'menu.admin.inc', ); $items['admin/build/menu-customize/%menu/list'] = array( 'title' => 'List items', 'weight' => -10, 'type' => MENU_DEFAULT_LOCAL_TASK, - 'file' => 'menu.admin.inc', ); $items['admin/build/menu-customize/%menu/add'] = array( 'title' => 'Add item', @@ -100,7 +93,6 @@ function menu_menu() { 'page arguments' => array('menu_edit_item', 'add', NULL, 3), 'access arguments' => array('administer menu'), 'type' => MENU_LOCAL_TASK, - 'file' => 'menu.admin.inc', ); $items['admin/build/menu-customize/%menu/edit'] = array( 'title' => 'Edit menu', @@ -108,7 +100,6 @@ function menu_menu() { 'page arguments' => array('menu_edit_menu', 'edit', 3), 'access arguments' => array('administer menu'), 'type' => MENU_LOCAL_TASK, - 'file' => 'menu.admin.inc', ); $items['admin/build/menu-customize/%menu/delete'] = array( 'title' => 'Delete menu', @@ -116,7 +107,6 @@ function menu_menu() { 'page arguments' => array(3), 'access arguments' => array('administer menu'), 'type' => MENU_CALLBACK, - 'file' => 'menu.admin.inc', ); $items['admin/build/menu/item/%menu_link/edit'] = array( 'title' => 'Edit menu item', @@ -124,7 +114,6 @@ function menu_menu() { 'page arguments' => array('menu_edit_item', 'edit', 4, NULL), 'access arguments' => array('administer menu'), 'type' => MENU_CALLBACK, - 'file' => 'menu.admin.inc', ); $items['admin/build/menu/item/%menu_link/reset'] = array( 'title' => 'Reset menu item', @@ -132,7 +121,6 @@ function menu_menu() { 'page arguments' => array('menu_reset_item_confirm', 4), 'access arguments' => array('administer menu'), 'type' => MENU_CALLBACK, - 'file' => 'menu.admin.inc', ); $items['admin/build/menu/item/%menu_link/delete'] = array( 'title' => 'Delete menu item', @@ -140,9 +128,7 @@ function menu_menu() { 'page arguments' => array(4), 'access arguments' => array('administer menu'), 'type' => MENU_CALLBACK, - 'file' => 'menu.admin.inc', ); - return $items; } diff --git a/modules/node/node.info b/modules/node/node.info index ce8986be978..64eba84626b 100644 --- a/modules/node/node.info +++ b/modules/node/node.info @@ -4,3 +4,7 @@ description = Allows content to be submitted to the site and displayed on pages. package = Core - required version = VERSION core = 7.x +files[] = node.module +files[] = content_types.inc +files[] = node.admin.inc +files[] = node.pages.inc diff --git a/modules/node/node.module b/modules/node/node.module index ed82a31f851..ede648a26a5 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -626,7 +626,8 @@ function _node_type_set_defaults($info) { function node_hook(&$node, $hook) { $module = node_get_types('module', $node); if ($module == 'node') { - $module = 'node_content'; // Avoid function name collisions. + // Avoid function name collisions. + $module = 'node_content'; } return module_hook($module, $hook); } @@ -926,7 +927,9 @@ function node_save(&$node) { db_query('UPDATE {node} SET vid = %d WHERE nid = %d', $node->vid, $node->nid); } - // Call the node specific callback (if any). + // Call the node specific callback (if any). This can be + // node_invoke($node, 'insert') or + // node_invoke($node, 'update'). node_invoke($node, $op); node_invoke_nodeapi($node, $op); @@ -1416,7 +1419,6 @@ function node_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('node_admin_content'), 'access arguments' => array('administer nodes'), - 'file' => 'node.admin.inc', ); $items['admin/content/node/overview'] = array( @@ -1431,12 +1433,10 @@ function node_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('node_configure'), 'access arguments' => array('administer nodes'), - 'file' => 'node.admin.inc', ); $items['admin/content/node-settings/rebuild'] = array( 'title' => 'Rebuild permissions', 'page arguments' => array('node_configure_rebuild_confirm'), - 'file' => 'node.admin.inc', // Any user than can potentially trigger a node_acess_needs_rebuild(TRUE) // has to be allowed access to the 'node access rebuild' confirm form. 'access arguments' => array('access administration pages'), @@ -1448,7 +1448,6 @@ function node_menu() { 'description' => 'Manage posts by content type, including default status, front page promotion, etc.', 'page callback' => 'node_overview_types', 'access arguments' => array('administer content types'), - 'file' => 'content_types.inc', ); $items['admin/build/types/list'] = array( 'title' => 'List', @@ -1460,7 +1459,6 @@ function node_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('node_type_form'), 'access arguments' => array('administer content types'), - 'file' => 'content_types.inc', 'type' => MENU_LOCAL_TASK, ); $items['node'] = array( @@ -1474,7 +1472,6 @@ function node_menu() { 'page callback' => 'node_add_page', 'access callback' => '_node_add_access', 'weight' => 1, - 'file' => 'node.pages.inc', ); $items['rss.xml'] = array( 'title' => 'RSS feed', @@ -1492,14 +1489,12 @@ function node_menu() { 'access callback' => 'node_access', 'access arguments' => array('create', $type->type), 'description' => $type->description, - 'file' => 'node.pages.inc', ); $items['admin/content/node-type/' . $type_url_str] = array( 'title' => $type->name, 'page callback' => 'drupal_get_form', 'page arguments' => array('node_type_form', $type), 'access arguments' => array('administer content types'), - 'file' => 'content_types.inc', 'type' => MENU_CALLBACK, ); $items['admin/content/node-type/' . $type_url_str . '/edit'] = array( @@ -1510,7 +1505,6 @@ function node_menu() { 'title' => 'Delete', 'page arguments' => array('node_type_delete_confirm', $type), 'access arguments' => array('administer content types'), - 'file' => 'content_types.inc', 'type' => MENU_CALLBACK, ); } @@ -1533,7 +1527,6 @@ function node_menu() { 'access callback' => 'node_access', 'access arguments' => array('update', 1), 'weight' => 1, - 'file' => 'node.pages.inc', 'type' => MENU_LOCAL_TASK, ); $items['node/%node/delete'] = array( @@ -1542,7 +1535,6 @@ function node_menu() { 'page arguments' => array('node_delete_confirm', 1), 'access callback' => 'node_access', 'access arguments' => array('delete', 1), - 'file' => 'node.pages.inc', 'weight' => 1, 'type' => MENU_CALLBACK); $items['node/%node/revisions'] = array( @@ -1552,7 +1544,6 @@ function node_menu() { 'access callback' => '_node_revision_access', 'access arguments' => array(1), 'weight' => 2, - 'file' => 'node.pages.inc', 'type' => MENU_LOCAL_TASK, ); $items['node/%node/revisions/%/view'] = array( @@ -1571,7 +1562,6 @@ function node_menu() { 'page arguments' => array('node_revision_revert_confirm', 1), 'access callback' => '_node_revision_access', 'access arguments' => array(1, 'update'), - 'file' => 'node.pages.inc', 'type' => MENU_CALLBACK, ); $items['node/%node/revisions/%/delete'] = array( @@ -1581,7 +1571,6 @@ function node_menu() { 'page arguments' => array('node_revision_delete_confirm', 1), 'access callback' => '_node_revision_access', 'access arguments' => array(1, 'delete'), - 'file' => 'node.pages.inc', 'type' => MENU_CALLBACK, ); return $items; @@ -2025,8 +2014,8 @@ function node_access($op, $node, $account = NULL) { return FALSE; } - // Can't use node_invoke(), because the access hook takes the $op parameter - // before the $node parameter. + // Can't use node_invoke('access', $node), because the access hook takes the + // $op parameter before the $node parameter. $module = node_get_types('module', $node); if ($module == 'node') { $module = 'node_content'; // Avoid function name collisions. diff --git a/modules/openid/openid.info b/modules/openid/openid.info index f747ff9bdec..c55d44bfa35 100644 --- a/modules/openid/openid.info +++ b/modules/openid/openid.info @@ -4,3 +4,7 @@ description = "Allows users to log into your site using OpenID." version = VERSION package = Core - optional core = 7.x +files[] = openid.module +files[] = openid.inc +files[] = openid.pages.inc +files[] = xrds.inc diff --git a/modules/openid/openid.module b/modules/openid/openid.module index b3a515c99c4..8b49a0ac033 100644 --- a/modules/openid/openid.module +++ b/modules/openid/openid.module @@ -15,7 +15,6 @@ function openid_menu() { 'page callback' => 'openid_authentication_page', 'access callback' => 'user_is_anonymous', 'type' => MENU_CALLBACK, - 'file' => 'openid.pages.inc', ); $items['user/%user/openid'] = array( 'title' => 'OpenID identities', @@ -24,7 +23,6 @@ function openid_menu() { 'access callback' => 'user_edit_access', 'access arguments' => array(1), 'type' => MENU_LOCAL_TASK, - 'file' => 'openid.pages.inc', ); $items['user/%user/openid/delete'] = array( 'title' => 'Delete OpenID', @@ -33,7 +31,6 @@ function openid_menu() { 'access callback' => 'user_edit_access', 'access arguments' => array(1), 'type' => MENU_CALLBACK, - 'file' => 'openid.pages.inc', ); return $items; } diff --git a/modules/path/path.info b/modules/path/path.info index ce0490943d9..10fa65748bc 100644 --- a/modules/path/path.info +++ b/modules/path/path.info @@ -4,3 +4,5 @@ description = Allows users to rename URLs. package = Core - optional version = VERSION core = 7.x +files[] = path.module +files[] = path.admin.inc diff --git a/modules/path/path.module b/modules/path/path.module index 49ea6c0008d..36a975de0c9 100644 --- a/modules/path/path.module +++ b/modules/path/path.module @@ -38,14 +38,12 @@ function path_menu() { 'description' => "Change your site's URL paths by aliasing them.", 'page callback' => 'path_admin_overview', 'access arguments' => array('administer url aliases'), - 'file' => 'path.admin.inc', ); $items['admin/build/path/edit'] = array( 'title' => 'Edit alias', 'page callback' => 'path_admin_edit', 'access arguments' => array('administer url aliases'), 'type' => MENU_CALLBACK, - 'file' => 'path.admin.inc', ); $items['admin/build/path/delete'] = array( 'title' => 'Delete alias', @@ -53,7 +51,6 @@ function path_menu() { 'page arguments' => array('path_admin_delete_confirm'), 'access arguments' => array('administer url aliases'), 'type' => MENU_CALLBACK, - 'file' => 'path.admin.inc', ); $items['admin/build/path/list'] = array( 'title' => 'List', @@ -65,7 +62,6 @@ function path_menu() { 'page callback' => 'path_admin_edit', 'access arguments' => array('administer url aliases'), 'type' => MENU_LOCAL_TASK, - 'file' => 'path.admin.inc', ); return $items; diff --git a/modules/php/php.info b/modules/php/php.info index 56f6b5ea5aa..c22d515dea4 100644 --- a/modules/php/php.info +++ b/modules/php/php.info @@ -4,3 +4,4 @@ description = Allows embedded PHP code/snippets to be evaluated. package = Core - optional version = VERSION core = 7.x +files[] = php.module diff --git a/modules/poll/poll.info b/modules/poll/poll.info index 2cface906fe..d3279f2e8b1 100644 --- a/modules/poll/poll.info +++ b/modules/poll/poll.info @@ -4,3 +4,5 @@ description = Allows your site to capture votes on different topics in the form package = Core - optional version = VERSION core = 7.x +files[] = poll.module +files[] = poll.pages.inc diff --git a/modules/poll/poll.module b/modules/poll/poll.module index c43fc61dd88..2a1ab86a237 100644 --- a/modules/poll/poll.module +++ b/modules/poll/poll.module @@ -87,7 +87,6 @@ function poll_menu() { 'page callback' => 'poll_page', 'access arguments' => array('access content'), 'type' => MENU_SUGGESTED_ITEM, - 'file' => 'poll.pages.inc', ); $items['node/%node/votes'] = array( @@ -98,7 +97,6 @@ function poll_menu() { 'access arguments' => array(1, 'inspect all votes', FALSE), 'weight' => 3, 'type' => MENU_LOCAL_TASK, - 'file' => 'poll.pages.inc', ); $items['node/%node/results'] = array( @@ -109,7 +107,6 @@ function poll_menu() { 'access arguments' => array(1, 'access content', TRUE), 'weight' => 3, 'type' => MENU_LOCAL_TASK, - 'file' => 'poll.pages.inc', ); $items['poll/js'] = array( diff --git a/modules/profile/profile.info b/modules/profile/profile.info index cc2f86bcbdc..d1eee555ae9 100644 --- a/modules/profile/profile.info +++ b/modules/profile/profile.info @@ -4,3 +4,6 @@ description = Supports configurable user profiles. package = Core - optional version = VERSION core = 7.x +files[] = profile.module +files[] = profile.admin.inc +files[] = profile.pages.inc diff --git a/modules/profile/profile.module b/modules/profile/profile.module index e467791d118..ac81ab065f6 100644 --- a/modules/profile/profile.module +++ b/modules/profile/profile.module @@ -81,7 +81,6 @@ function profile_menu() { 'page callback' => 'profile_browse', 'access arguments' => array('access user profiles'), 'type' => MENU_SUGGESTED_ITEM, - 'file' => 'profile.pages.inc', ); $items['admin/user/profile'] = array( 'title' => 'Profiles', @@ -89,7 +88,6 @@ function profile_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('profile_admin_overview'), 'access arguments' => array('administer users'), - 'file' => 'profile.admin.inc', ); $items['admin/user/profile/add'] = array( 'title' => 'Add field', @@ -97,14 +95,12 @@ function profile_menu() { 'page arguments' => array('profile_field_form'), 'access arguments' => array('administer users'), 'type' => MENU_CALLBACK, - 'file' => 'profile.admin.inc', ); $items['admin/user/profile/autocomplete'] = array( 'title' => 'Profile category autocomplete', 'page callback' => 'profile_admin_settings_autocomplete', 'access arguments' => array('administer users'), 'type' => MENU_CALLBACK, - 'file' => 'profile.admin.inc', ); $items['admin/user/profile/edit'] = array( 'title' => 'Edit field', @@ -112,7 +108,6 @@ function profile_menu() { 'page arguments' => array('profile_field_form'), 'access arguments' => array('administer users'), 'type' => MENU_CALLBACK, - 'file' => 'profile.admin.inc', ); $items['admin/user/profile/delete'] = array( 'title' => 'Delete field', @@ -120,14 +115,12 @@ function profile_menu() { 'page arguments' => array('profile_field_delete'), 'access arguments' => array('administer users'), 'type' => MENU_CALLBACK, - 'file' => 'profile.admin.inc', ); $items['profile/autocomplete'] = array( 'title' => 'Profile autocomplete', 'page callback' => 'profile_autocomplete', 'access arguments' => array('access user profiles'), 'type' => MENU_CALLBACK, - 'file' => 'profile.pages.inc', ); return $items; } diff --git a/modules/search/search.info b/modules/search/search.info index 6d6590cd243..72ea93a24a3 100644 --- a/modules/search/search.info +++ b/modules/search/search.info @@ -4,3 +4,6 @@ description = Enables site-wide keyword searching. package = Core - optional version = VERSION core = 7.x +files[] = search.module +files[] = search.admin.inc +files[] = search.pages.inc diff --git a/modules/search/search.module b/modules/search/search.module index f344782608c..fe2e3279311 100644 --- a/modules/search/search.module +++ b/modules/search/search.module @@ -174,7 +174,6 @@ function search_menu() { 'page callback' => 'search_view', 'access arguments' => array('search content'), 'type' => MENU_SUGGESTED_ITEM, - 'file' => 'search.pages.inc', ); $items['admin/settings/search'] = array( 'title' => 'Search settings', @@ -183,7 +182,6 @@ function search_menu() { 'page arguments' => array('search_admin_settings'), 'access arguments' => array('administer search'), 'type' => MENU_NORMAL_ITEM, - 'file' => 'search.admin.inc', ); $items['admin/settings/search/wipe'] = array( 'title' => 'Clear index', @@ -191,7 +189,6 @@ function search_menu() { 'page arguments' => array('search_wipe_confirm'), 'access arguments' => array('administer search'), 'type' => MENU_CALLBACK, - 'file' => 'search.admin.inc', ); $items['admin/reports/search'] = array( 'title' => 'Top search phrases', @@ -199,7 +196,6 @@ function search_menu() { 'page callback' => 'dblog_top', 'page arguments' => array('search'), 'access arguments' => array('access site reports'), - 'file' => 'dblog.admin.inc', 'file path' => drupal_get_path('module', 'dblog'), ); @@ -213,7 +209,6 @@ function search_menu() { 'access arguments' => array($name), 'type' => MENU_LOCAL_TASK, 'parent' => 'search', - 'file' => 'search.pages.inc', ); } return $items; diff --git a/modules/simpletest/simpletest.info b/modules/simpletest/simpletest.info index 9a162e7148a..87db5844314 100644 --- a/modules/simpletest/simpletest.info +++ b/modules/simpletest/simpletest.info @@ -4,3 +4,4 @@ description = "Provides a framework for unit and functional testing." package = Core - optional version = VERSION core = 7.x +files[] = simpletest.module diff --git a/modules/statistics/statistics.info b/modules/statistics/statistics.info index 031e3b6a00c..71052696a41 100644 --- a/modules/statistics/statistics.info +++ b/modules/statistics/statistics.info @@ -4,3 +4,6 @@ description = Logs access statistics for your site. package = Core - optional version = VERSION core = 7.x +files[] = statistics.module +files[] = statistics.admin.inc +files[] = statistics.pages.inc diff --git a/modules/statistics/statistics.module b/modules/statistics/statistics.module index fcf99076599..68de78e11bd 100644 --- a/modules/statistics/statistics.module +++ b/modules/statistics/statistics.module @@ -101,7 +101,6 @@ function statistics_menu() { 'description' => 'View pages that have recently been visited.', 'page callback' => 'statistics_recent_hits', 'access arguments' => array('access statistics'), - 'file' => 'statistics.admin.inc', ); $items['admin/reports/pages'] = array( 'title' => 'Top pages', @@ -109,7 +108,6 @@ function statistics_menu() { 'page callback' => 'statistics_top_pages', 'access arguments' => array('access statistics'), 'weight' => 1, - 'file' => 'statistics.admin.inc', ); $items['admin/reports/visitors'] = array( 'title' => 'Top visitors', @@ -117,14 +115,12 @@ function statistics_menu() { 'page callback' => 'statistics_top_visitors', 'access arguments' => array('access statistics'), 'weight' => 2, - 'file' => 'statistics.admin.inc', ); $items['admin/reports/referrers'] = array( 'title' => 'Top referrers', 'description' => 'View top referrers.', 'page callback' => 'statistics_top_referrers', 'access arguments' => array('access statistics'), - 'file' => 'statistics.admin.inc', ); $items['admin/reports/access/%'] = array( 'title' => 'Details', @@ -133,7 +129,6 @@ function statistics_menu() { 'page arguments' => array(3), 'access arguments' => array('access statistics'), 'type' => MENU_CALLBACK, - 'file' => 'statistics.admin.inc', ); $items['admin/reports/settings'] = array( 'title' => 'Access log settings', @@ -143,7 +138,6 @@ function statistics_menu() { 'access arguments' => array('administer site configuration'), 'type' => MENU_NORMAL_ITEM, 'weight' => 3, - 'file' => 'statistics.admin.inc', ); $items['user/%user/track/navigation'] = array( 'title' => 'Track page visits', @@ -152,7 +146,6 @@ function statistics_menu() { 'access arguments' => array('access statistics'), 'type' => MENU_LOCAL_TASK, 'weight' => 2, - 'file' => 'statistics.pages.inc', ); $items['node/%node/track'] = array( 'title' => 'Track', @@ -161,7 +154,6 @@ function statistics_menu() { 'access arguments' => array('access statistics'), 'type' => MENU_LOCAL_TASK, 'weight' => 2, - 'file' => 'statistics.pages.inc', ); return $items; diff --git a/modules/syslog/syslog.info b/modules/syslog/syslog.info index 8b22a77f402..2e02aaf20e7 100644 --- a/modules/syslog/syslog.info +++ b/modules/syslog/syslog.info @@ -4,3 +4,4 @@ description = Logs and records system events to syslog. package = Core - optional version = VERSION core = 7.x +files[] = syslog.module diff --git a/modules/system/system.info b/modules/system/system.info index b4daf520580..64943690854 100644 --- a/modules/system/system.info +++ b/modules/system/system.info @@ -4,3 +4,5 @@ description = Handles general site configuration for administrators. package = Core - required version = VERSION core = 7.x +files[] = system.module +files[] = system.admin.inc diff --git a/modules/system/system.install b/modules/system/system.install index d09eabb4805..9207e6e2d8e 100644 --- a/modules/system/system.install +++ b/modules/system/system.install @@ -603,6 +603,8 @@ function system_schema() { $schema['cache_page']['description'] = t('Cache table used to store compressed pages for anonymous users, if page caching is enabled.'); $schema['cache_menu'] = $schema['cache']; $schema['cache_menu']['description'] = t('Cache table for the menu system to store router information as well as generated link trees for various menu/page/user combinations.'); + $schema['cache_registry'] = $schema['cache']; + $schema['cache_registry']['description'] = t('Cache table for the code registry system to remember what code files need to be loaded on any given page.'); $schema['files'] = array( 'description' => t('Stores information for uploaded files.'), @@ -859,11 +861,6 @@ function system_schema() { 'not null' => TRUE, 'default' => 0, ), - 'file' => array( - 'description' => t('The file to include for this element, usually the page callback function lives in this file.'), - 'type' => 'text', - 'size' => 'medium', - ), ), 'indexes' => array( 'fit' => array('fit'), @@ -1056,6 +1053,52 @@ function system_schema() { 'primary key' => array('mlid'), ); + $schema['registry'] = array( + 'description' => t("Each record is a function, class, or interface name and the file it is in."), + 'fields' => array( + 'name' => array( + 'description' => t('The name of the function, class, or interface.'), + 'type' => 'varchar', + 'length' => 255, + 'not null' => TRUE, + 'default' => '', + ), + 'type' => array( + 'description' => t('Either function or class or interface.'), + 'type' => 'varchar', + 'length' => 9, + 'not null' => TRUE, + 'default' => '', + ), + 'filename' => array( + 'description' => t('Name of the file.'), + 'type' => 'varchar', + 'length' => 255, + 'not null' => TRUE, + ), + ), + 'primary key' => array('name', 'type'), + ); + + $schema['registry_file'] = array( + 'description' => t("Files parsed to build the registry."), + 'fields' => array( + 'filename' => array( + 'description' => t('Path to the file.'), + 'type' => 'varchar', + 'length' => 255, + 'not null' => TRUE, + ), + 'md5' => array( + 'description' => t("Md5 hash of the file's contents when last parsed."), + 'type' => 'varchar', + 'length' => 32, + 'not null' => TRUE, + ), + ), + 'primary key' => array('filename'), + ); + $schema['sessions'] = array( 'description' => t("Drupal's session handlers read and write into the sessions table. Each record represents a user session, either anonymous or authenticated."), 'fields' => array( @@ -2682,7 +2725,7 @@ function system_update_7000() { } /** - * Generate a cron key and save it in the variables table + * Generate a cron key and save it in the variables table. */ function system_update_7001() { $ret = array(); @@ -2860,9 +2903,49 @@ function system_update_7005() { return $ret; } +/** + * Registry tables and drop the file key of the menu router, since it is no + * longer needed. + */ +function system_update_7006() { + $ret = array(); + db_drop_field($ret, 'menu_router', 'file'); + $schema['registry'] = array( + 'fields' => array( + 'name' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'type' => array('type' => 'varchar', 'length' => 9, 'not null' => TRUE, 'default' => ''), + 'filename' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + ), + 'primary key' => array('name', 'type'), + ); + $schema['registry_file'] = array( + 'fields' => array( + 'filename' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'md5' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''), + ), + 'primary key' => array('filename'), + ); + $schema['cache_registry'] = array( + 'fields' => array( + 'cid' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'data' => array('type' => 'blob', 'not null' => FALSE, 'size' => 'big'), + 'expire' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'created' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'headers' => array('type' => 'text', 'not null' => FALSE), + 'serialized' => array('type' => 'int', 'size' => 'small', 'not null' => TRUE, 'default' => 0) + ), + 'indexes' => array('expire' => array('expire')), + 'primary key' => array('cid'), + ); + db_create_table($ret, 'cache_registry', $schema['cache_registry']); + db_create_table($ret, 'registry', $schema['registry']); + db_create_table($ret, 'registry_file', $schema['registry_file']); + drupal_rebuild_code_registry(); + return $ret; +} + /** * @} End of "defgroup updates-6.x-to-7.x" * The next series of updates should start at 8000. */ - diff --git a/modules/system/system.module b/modules/system/system.module index e8e9d0e144f..2cc438463fe 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -331,27 +331,23 @@ function system_menu() { 'access arguments' => array('access administration pages'), 'page callback' => 'system_main_admin_page', 'weight' => 9, - 'file' => 'system.admin.inc', ); $items['admin/compact'] = array( 'title' => 'Compact mode', 'page callback' => 'system_admin_compact_page', 'access arguments' => array('access administration pages'), 'type' => MENU_CALLBACK, - 'file' => 'system.admin.inc', ); $items['admin/by-task'] = array( 'title' => 'By task', 'page callback' => 'system_main_admin_page', 'access arguments' => array('access administration pages'), - 'file' => 'system.admin.inc', 'type' => MENU_DEFAULT_LOCAL_TASK, ); $items['admin/by-module'] = array( 'title' => 'By module', 'page callback' => 'system_admin_by_module', 'access arguments' => array('access administration pages'), - 'file' => 'system.admin.inc', 'type' => MENU_LOCAL_TASK, 'weight' => 2, ); @@ -362,7 +358,6 @@ function system_menu() { 'weight' => -10, 'page callback' => 'system_admin_menu_block_page', 'access arguments' => array('access administration pages'), - 'file' => 'system.admin.inc', ); // menu items that are basically just menu blocks @@ -373,7 +368,6 @@ function system_menu() { 'weight' => -5, 'page callback' => 'system_settings_overview', 'access arguments' => array('access administration pages'), - 'file' => 'system.admin.inc', ); $items['admin/build'] = array( 'title' => 'Site building', @@ -382,7 +376,6 @@ function system_menu() { 'weight' => -10, 'page callback' => 'system_admin_menu_block_page', 'access arguments' => array('access administration pages'), - 'file' => 'system.admin.inc', ); $items['admin/settings/admin'] = array( 'title' => 'Administration theme', @@ -392,7 +385,6 @@ function system_menu() { 'page arguments' => array('system_admin_theme_settings'), 'access arguments' => array('administer site configuration'), 'block callback' => 'system_admin_theme_settings', - 'file' => 'system.admin.inc', ); // Themes: $items['admin/build/themes'] = array( @@ -401,7 +393,6 @@ function system_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('system_themes_form', NULL), 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/build/themes/select'] = array( 'title' => 'List', @@ -439,7 +430,6 @@ function system_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('system_modules'), 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/build/modules/list'] = array( 'title' => 'List', @@ -504,7 +494,6 @@ function system_menu() { 'description' => 'Manage blocked IP addresses.', 'page callback' => 'system_ip_blocking', 'access arguments' => array('block IP addresses'), - 'file' => 'system.admin.inc', ); $items['admin/settings/ip-blocking/delete/%blocked_ip'] = array( 'title' => 'Delete IP address', @@ -512,7 +501,6 @@ function system_menu() { 'page arguments' => array('system_ip_blocking_delete', 4), 'access arguments' => array('block IP addresses'), 'type' => MENU_CALLBACK, - 'file' => 'system.admin.inc', ); // Settings: @@ -522,7 +510,6 @@ function system_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('system_site_information_settings'), 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/settings/error-reporting'] = array( 'title' => 'Error reporting', @@ -530,14 +517,12 @@ function system_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('system_error_reporting_settings'), 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/settings/logging'] = array( 'title' => 'Logging and alerts', 'description' => "Settings for logging and alerts modules. Various modules can route Drupal's system events to different destination, such as syslog, database, email, ...etc.", 'page callback' => 'system_logging_overview', 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/settings/performance'] = array( 'title' => 'Performance', @@ -545,7 +530,6 @@ function system_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('system_performance_settings'), 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/settings/file-system'] = array( 'title' => 'File system', @@ -553,7 +537,6 @@ function system_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('system_file_system_settings'), 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/settings/image-toolkit'] = array( 'title' => 'Image toolkit', @@ -561,7 +544,6 @@ function system_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('system_image_toolkit_settings'), 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/content/rss-publishing'] = array( 'title' => 'RSS publishing', @@ -569,7 +551,6 @@ function system_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('system_rss_feeds_settings'), 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/settings/date-time'] = array( 'title' => 'Date and time', @@ -577,14 +558,12 @@ function system_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('system_date_time_settings'), 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/settings/date-time/lookup'] = array( 'title' => 'Date and time lookup', 'type' => MENU_CALLBACK, 'page callback' => 'system_date_time_lookup', 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/settings/site-maintenance'] = array( 'title' => 'Site maintenance', @@ -592,7 +571,6 @@ function system_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('system_site_maintenance_settings'), 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/settings/clean-urls'] = array( 'title' => 'Clean URLs', @@ -600,7 +578,6 @@ function system_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('system_clean_url_settings'), 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/settings/clean-urls/check'] = array( 'title' => 'Clean URL check', @@ -627,7 +604,6 @@ function system_menu() { 'access arguments' => array('access site reports'), 'weight' => 5, 'position' => 'left', - 'file' => 'system.admin.inc', ); $items['admin/reports/status'] = array( 'title' => 'Status report', @@ -635,35 +611,30 @@ function system_menu() { 'page callback' => 'system_status', 'weight' => 10, 'access arguments' => array('administer site configuration'), - 'file' => 'system.admin.inc', ); $items['admin/reports/status/run-cron'] = array( 'title' => 'Run cron', 'page callback' => 'system_run_cron', 'access arguments' => array('administer site configuration'), 'type' => MENU_CALLBACK, - 'file' => 'system.admin.inc', ); $items['admin/reports/status/php'] = array( 'title' => 'PHP', 'page callback' => 'system_php', 'access arguments' => array('administer site configuration'), 'type' => MENU_CALLBACK, - 'file' => 'system.admin.inc', ); $items['admin/reports/status/sql'] = array( 'title' => 'SQL', 'page callback' => 'system_sql', 'access arguments' => array('administer site configuration'), 'type' => MENU_CALLBACK, - 'file' => 'system.admin.inc', ); // Default page for batch operations $items['batch'] = array( 'page callback' => 'system_batch_page', 'access callback' => TRUE, 'type' => MENU_CALLBACK, - 'file' => 'system.admin.inc', ); return $items; } diff --git a/modules/taxonomy/taxonomy.info b/modules/taxonomy/taxonomy.info index c7a93e3509c..df213cefb48 100644 --- a/modules/taxonomy/taxonomy.info +++ b/modules/taxonomy/taxonomy.info @@ -4,3 +4,6 @@ description = Enables the categorization of content. package = Core - optional version = VERSION core = 7.x +files[] = taxonomy.module +files[] = taxonomy.admin.inc +files[] = taxonomy.pages.inc diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module index 77b90f883ab..56f15b1191c 100644 --- a/modules/taxonomy/taxonomy.module +++ b/modules/taxonomy/taxonomy.module @@ -117,7 +117,6 @@ function taxonomy_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('taxonomy_overview_vocabularies'), 'access arguments' => array('administer taxonomy'), - 'file' => 'taxonomy.admin.inc', ); $items['admin/content/taxonomy/list'] = array( @@ -133,7 +132,6 @@ function taxonomy_menu() { 'access arguments' => array('administer taxonomy'), 'type' => MENU_LOCAL_TASK, 'parent' => 'admin/content/taxonomy', - 'file' => 'taxonomy.admin.inc', ); $items['admin/content/taxonomy/edit/vocabulary/%taxonomy_vocabulary'] = array( @@ -142,7 +140,6 @@ function taxonomy_menu() { 'page arguments' => array(5), 'access arguments' => array('administer taxonomy'), 'type' => MENU_CALLBACK, - 'file' => 'taxonomy.admin.inc', ); $items['admin/content/taxonomy/edit/term'] = array( @@ -150,7 +147,6 @@ function taxonomy_menu() { 'page callback' => 'taxonomy_admin_term_edit', 'access arguments' => array('administer taxonomy'), 'type' => MENU_CALLBACK, - 'file' => 'taxonomy.admin.inc', ); $items['taxonomy/term/%'] = array( @@ -159,7 +155,6 @@ function taxonomy_menu() { 'page arguments' => array(2), 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, - 'file' => 'taxonomy.pages.inc', ); $items['taxonomy/autocomplete'] = array( @@ -167,7 +162,6 @@ function taxonomy_menu() { 'page callback' => 'taxonomy_autocomplete', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, - 'file' => 'taxonomy.pages.inc', ); $items['admin/content/taxonomy/%taxonomy_vocabulary'] = array( 'title' => 'List terms', @@ -175,7 +169,6 @@ function taxonomy_menu() { 'page arguments' => array('taxonomy_overview_terms', 3), 'access arguments' => array('administer taxonomy'), 'type' => MENU_CALLBACK, - 'file' => 'taxonomy.admin.inc', ); $items['admin/content/taxonomy/%taxonomy_vocabulary/list'] = array( @@ -191,7 +184,6 @@ function taxonomy_menu() { 'access arguments' => array('administer taxonomy'), 'type' => MENU_LOCAL_TASK, 'parent' => 'admin/content/taxonomy/%taxonomy_vocabulary', - 'file' => 'taxonomy.admin.inc', ); return $items; diff --git a/modules/tracker/tracker.info b/modules/tracker/tracker.info index 37c1be304dd..18fc939a275 100644 --- a/modules/tracker/tracker.info +++ b/modules/tracker/tracker.info @@ -5,3 +5,5 @@ dependencies[] = comment package = Core - optional version = VERSION core = 7.x +files[] = tracker.module +files[] = tracker.pages.inc diff --git a/modules/tracker/tracker.module b/modules/tracker/tracker.module index e11d8a9830c..0044bd48017 100644 --- a/modules/tracker/tracker.module +++ b/modules/tracker/tracker.module @@ -28,7 +28,6 @@ function tracker_menu() { 'page callback' => 'tracker_page', 'access arguments' => array('access content'), 'weight' => 1, - 'file' => 'tracker.pages.inc', ); $items['tracker/all'] = array( 'title' => 'All recent posts', @@ -49,7 +48,6 @@ function tracker_menu() { 'access callback' => '_tracker_user_access', 'access arguments' => array(1), 'type' => MENU_LOCAL_TASK, - 'file' => 'tracker.pages.inc', ); $items['user/%user/track/posts'] = array( 'title' => 'Track posts', diff --git a/modules/translation/translation.info b/modules/translation/translation.info index 87ccf945a87..dd5d0f4f468 100644 --- a/modules/translation/translation.info +++ b/modules/translation/translation.info @@ -5,3 +5,5 @@ dependencies[] = locale package = Core - optional version = VERSION core = 7.x +files[] = translation.module +files[] = translation.pages.inc diff --git a/modules/translation/translation.module b/modules/translation/translation.module index 9467440184e..79a542ac85f 100644 --- a/modules/translation/translation.module +++ b/modules/translation/translation.module @@ -63,7 +63,6 @@ function translation_menu() { 'access arguments' => array(1), 'type' => MENU_LOCAL_TASK, 'weight' => 2, - 'file' => 'translation.pages.inc', ); return $items; } diff --git a/modules/trigger/trigger.info b/modules/trigger/trigger.info index bc333940be1..69566095f4d 100644 --- a/modules/trigger/trigger.info +++ b/modules/trigger/trigger.info @@ -4,3 +4,5 @@ description = Enables actions to be fired on certain system events, such as when package = Core - optional version = VERSION core = 7.x +files[] = trigger.module +files[] = trigger.admin.inc diff --git a/modules/trigger/trigger.module b/modules/trigger/trigger.module index 9be132ca571..d3d900fadda 100644 --- a/modules/trigger/trigger.module +++ b/modules/trigger/trigger.module @@ -41,7 +41,6 @@ function trigger_menu() { 'page callback' => 'trigger_assign', 'access callback' => 'trigger_access_check', 'access arguments' => array('node'), - 'file' => 'trigger.admin.inc', ); // We don't use a menu wildcard here because these are tabs, // not invisible items. @@ -52,7 +51,6 @@ function trigger_menu() { 'access callback' => 'trigger_access_check', 'access arguments' => array('node'), 'type' => MENU_LOCAL_TASK, - 'file' => 'trigger.admin.inc', ); $items['admin/build/trigger/user'] = array( 'title' => 'Users', @@ -61,7 +59,6 @@ function trigger_menu() { 'access callback' => 'trigger_access_check', 'access arguments' => array('user'), 'type' => MENU_LOCAL_TASK, - 'file' => 'trigger.admin.inc', ); $items['admin/build/trigger/comment'] = array( 'title' => 'Comments', @@ -70,7 +67,6 @@ function trigger_menu() { 'access callback' => 'trigger_access_check', 'access arguments' => array('comment'), 'type' => MENU_LOCAL_TASK, - 'file' => 'trigger.admin.inc', ); $items['admin/build/trigger/taxonomy'] = array( 'title' => 'Taxonomy', @@ -79,7 +75,6 @@ function trigger_menu() { 'access callback' => 'trigger_access_check', 'access arguments' => array('taxonomy'), 'type' => MENU_LOCAL_TASK, - 'file' => 'trigger.admin.inc', ); $items['admin/build/trigger/cron'] = array( 'title' => 'Cron', @@ -87,7 +82,6 @@ function trigger_menu() { 'page arguments' => array('cron'), 'access arguments' => array('administer actions'), 'type' => MENU_LOCAL_TASK, - 'file' => 'trigger.admin.inc', ); // We want contributed modules to be able to describe @@ -107,7 +101,6 @@ function trigger_menu() { 'page arguments' => array($module), 'access arguments' => array($module), 'type' => MENU_LOCAL_TASK, - 'file' => 'trigger.admin.inc', ); } $items['admin/build/trigger/unassign'] = array( @@ -117,7 +110,6 @@ function trigger_menu() { 'page arguments' => array('trigger_unassign'), 'access arguments' => array('administer actions'), 'type' => MENU_CALLBACK, - 'file' => 'trigger.admin.inc', ); return $items; diff --git a/modules/update/update.info b/modules/update/update.info index 1df3eda4c6e..0165525473f 100644 --- a/modules/update/update.info +++ b/modules/update/update.info @@ -4,3 +4,8 @@ description = Checks the status of available updates for Drupal and your install version = VERSION package = Core - optional core = 7.x +files[] = update.module +files[] = update.compare.inc +files[] = update.fetch.inc +files[] = update.report.inc +files[] = update.settings.inc diff --git a/modules/update/update.module b/modules/update/update.module index 92a8ca586f7..d3e60ce69e6 100644 --- a/modules/update/update.module +++ b/modules/update/update.module @@ -121,14 +121,12 @@ function update_menu() { 'description' => 'Get a status report about available updates for your installed modules and themes.', 'page callback' => 'update_status', 'access arguments' => array('administer site configuration'), - 'file' => 'update.report.inc', 'weight' => 10, ); $items['admin/reports/updates/list'] = array( 'title' => 'List', 'page callback' => 'update_status', 'access arguments' => array('administer site configuration'), - 'file' => 'update.report.inc', 'type' => MENU_DEFAULT_LOCAL_TASK, ); $items['admin/reports/updates/settings'] = array( @@ -136,14 +134,12 @@ function update_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('update_settings'), 'access arguments' => array('administer site configuration'), - 'file' => 'update.settings.inc', 'type' => MENU_LOCAL_TASK, ); $items['admin/reports/updates/check'] = array( 'title' => 'Manual update check', 'page callback' => 'update_manual_status', 'access arguments' => array('administer site configuration'), - 'file' => 'update.fetch.inc', 'type' => MENU_CALLBACK, ); diff --git a/modules/upload/upload.info b/modules/upload/upload.info index 2b2a948263c..aaae110d460 100644 --- a/modules/upload/upload.info +++ b/modules/upload/upload.info @@ -4,3 +4,5 @@ description = Allows users to upload and attach files to content. package = Core - optional version = VERSION core = 7.x +files[] = upload.module +files[] = upload.admin.inc diff --git a/modules/upload/upload.module b/modules/upload/upload.module index d300a13d327..431d5bf0096 100644 --- a/modules/upload/upload.module +++ b/modules/upload/upload.module @@ -92,7 +92,6 @@ function upload_menu() { 'page arguments' => array('upload_admin_settings'), 'access arguments' => array('administer site configuration'), 'type' => MENU_NORMAL_ITEM, - 'file' => 'upload.admin.inc', ); return $items; } diff --git a/modules/user/user.info b/modules/user/user.info index fb382ebe6ef..c7ac1b73705 100644 --- a/modules/user/user.info +++ b/modules/user/user.info @@ -4,3 +4,6 @@ description = Manages the user registration and login system. package = Core - required version = VERSION core = 7.x +files[] = user.module +files[] = user.admin.inc +files[] = user.pages.inc diff --git a/modules/user/user.module b/modules/user/user.module index 2b1414c5921..3fa75e296bf 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -852,7 +852,6 @@ function user_menu() { 'access callback' => 'user_access', 'access arguments' => array('access user profiles'), 'type' => MENU_CALLBACK, - 'file' => 'user.pages.inc', ); // Registration and login pages. @@ -861,7 +860,6 @@ function user_menu() { 'page callback' => 'user_page', 'access callback' => TRUE, 'type' => MENU_CALLBACK, - 'file' => 'user.pages.inc', ); $items['user/login'] = array( @@ -876,7 +874,6 @@ function user_menu() { 'page arguments' => array('user_register'), 'access callback' => 'user_register_access', 'type' => MENU_LOCAL_TASK, - 'file' => 'user.pages.inc', ); $items['user/password'] = array( @@ -885,7 +882,6 @@ function user_menu() { 'page arguments' => array('user_pass'), 'access callback' => 'user_is_anonymous', 'type' => MENU_LOCAL_TASK, - 'file' => 'user.pages.inc', ); $items['user/reset/%/%/%'] = array( 'title' => 'Reset password', @@ -893,7 +889,6 @@ function user_menu() { 'page arguments' => array('user_pass_reset', 2, 3, 4), 'access callback' => TRUE, 'type' => MENU_CALLBACK, - 'file' => 'user.pages.inc', ); // User administration pages. @@ -903,8 +898,6 @@ function user_menu() { 'position' => 'left', 'page callback' => 'system_admin_menu_block_page', 'access arguments' => array('access administration pages'), - 'file' => 'system.admin.inc', - 'file path' => drupal_get_path('module', 'system'), ); $items['admin/user/user'] = array( 'title' => 'Users', @@ -912,7 +905,6 @@ function user_menu() { 'page callback' => 'user_admin', 'page arguments' => array('list'), 'access arguments' => array('administer users'), - 'file' => 'user.admin.inc', ); $items['admin/user/user/list'] = array( 'title' => 'List', @@ -924,7 +916,6 @@ function user_menu() { 'page arguments' => array('create'), 'access arguments' => array('administer users'), 'type' => MENU_LOCAL_TASK, - 'file' => 'user.admin.inc', ); $items['admin/user/settings'] = array( 'title' => 'User settings', @@ -932,7 +923,6 @@ function user_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('user_admin_settings'), 'access arguments' => array('administer users'), - 'file' => 'user.admin.inc', ); // Permission administration pages. @@ -942,7 +932,6 @@ function user_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('user_admin_perm'), 'access arguments' => array('administer permissions'), - 'file' => 'user.admin.inc', ); $items['admin/user/roles'] = array( 'title' => 'Roles', @@ -950,14 +939,12 @@ function user_menu() { 'page callback' => 'drupal_get_form', 'page arguments' => array('user_admin_new_role'), 'access arguments' => array('administer permissions'), - 'file' => 'user.admin.inc', ); $items['admin/user/roles/edit'] = array( 'title' => 'Edit role', 'page arguments' => array('user_admin_role'), 'access arguments' => array('administer permissions'), 'type' => MENU_CALLBACK, - 'file' => 'user.admin.inc', ); $items['logout'] = array( @@ -965,7 +952,6 @@ function user_menu() { 'access callback' => 'user_is_logged_in', 'page callback' => 'user_logout', 'weight' => 10, - 'file' => 'user.pages.inc', ); $items['user/%user_uid_optional'] = array( @@ -977,7 +963,6 @@ function user_menu() { 'access callback' => 'user_view_access', 'access arguments' => array(1), 'parent' => '', - 'file' => 'user.pages.inc', ); $items['user/%user/view'] = array( @@ -993,7 +978,6 @@ function user_menu() { 'access callback' => 'user_access', 'access arguments' => array('administer users'), 'type' => MENU_CALLBACK, - 'file' => 'user.pages.inc', ); $items['user/%user_category/edit'] = array( @@ -1004,7 +988,6 @@ function user_menu() { 'access arguments' => array(1), 'type' => MENU_LOCAL_TASK, 'load arguments' => array('%map', '%index'), - 'file' => 'user.pages.inc', ); $items['user/%user_category/edit/account'] = array( @@ -1029,7 +1012,6 @@ function user_menu() { 'weight' => $category['weight'], 'load arguments' => array('%map', '%index'), 'tab_parent' => 'user/%/edit', - 'file' => 'user.pages.inc', ); } }