summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2008-05-06 12:18:54 +0000
committerDries Buytaert <dries@buytaert.net>2008-05-06 12:18:54 +0000
commit2e18cb8924eb9a83a0ec9857f405ed038a1d3ded (patch)
tree5159327c54df6625e8377db268e8b074b43ae79c
parentc100468cf232d34b85534277d3fc01ee95f02256 (diff)
downloadbrdo-2e18cb8924eb9a83a0ec9857f405ed038a1d3ded.tar.gz
brdo-2e18cb8924eb9a83a0ec9857f405ed038a1d3ded.tar.bz2
- Patch #221964 by chx, dopry, webernet, moshe, webchick, justinrandall, flobruit
et al. Can you say 'registry'? Drupal now maintains an internal registry of all functions or classes in the system, allowing it to lazy-load code files as needed (reducing the amount of code that must be parsed on each request). The list of included files is cached per menu callback for subsequent loading by the menu router. This way, a given page request will have all the code it needs but little else, minimizing time spent parsing unneeded code.
-rw-r--r--includes/bootstrap.inc182
-rw-r--r--includes/common.inc13
-rw-r--r--includes/form.inc13
-rw-r--r--includes/install.inc5
-rw-r--r--includes/mail.inc2
-rw-r--r--includes/menu.inc38
-rw-r--r--includes/module.inc55
-rw-r--r--includes/theme.inc6
-rw-r--r--includes/xmlrpcs.inc2
-rw-r--r--install.php4
-rw-r--r--modules/aggregator/aggregator.info3
-rw-r--r--modules/aggregator/aggregator.module19
-rw-r--r--modules/block/block.info2
-rw-r--r--modules/block/block.module6
-rw-r--r--modules/blog/blog.info2
-rw-r--r--modules/blog/blog.module4
-rw-r--r--modules/blogapi/blogapi.info1
-rw-r--r--modules/book/book.info3
-rw-r--r--modules/book/book.module8
-rw-r--r--modules/color/color.info1
-rw-r--r--modules/comment/comment.info3
-rw-r--r--modules/comment/comment.module5
-rw-r--r--modules/contact/contact.info3
-rw-r--r--modules/contact/contact.module8
-rw-r--r--modules/dblog/dblog.info2
-rw-r--r--modules/dblog/dblog.module6
-rw-r--r--modules/filter/filter.info3
-rw-r--r--modules/filter/filter.module9
-rw-r--r--modules/forum/forum.info3
-rw-r--r--modules/forum/forum.module8
-rw-r--r--modules/help/help.info2
-rw-r--r--modules/help/help.module2
-rw-r--r--modules/locale/locale.info1
-rw-r--r--modules/menu/menu.info2
-rw-r--r--modules/menu/menu.module14
-rw-r--r--modules/node/node.info4
-rw-r--r--modules/node/node.module25
-rw-r--r--modules/openid/openid.info4
-rw-r--r--modules/openid/openid.module3
-rw-r--r--modules/path/path.info2
-rw-r--r--modules/path/path.module4
-rw-r--r--modules/php/php.info1
-rw-r--r--modules/poll/poll.info2
-rw-r--r--modules/poll/poll.module3
-rw-r--r--modules/profile/profile.info3
-rw-r--r--modules/profile/profile.module7
-rw-r--r--modules/search/search.info3
-rw-r--r--modules/search/search.module5
-rw-r--r--modules/simpletest/simpletest.info1
-rw-r--r--modules/statistics/statistics.info3
-rw-r--r--modules/statistics/statistics.module8
-rw-r--r--modules/syslog/syslog.info1
-rw-r--r--modules/system/system.info2
-rw-r--r--modules/system/system.install97
-rw-r--r--modules/system/system.module29
-rw-r--r--modules/taxonomy/taxonomy.info3
-rw-r--r--modules/taxonomy/taxonomy.module8
-rw-r--r--modules/tracker/tracker.info2
-rw-r--r--modules/tracker/tracker.module2
-rw-r--r--modules/translation/translation.info2
-rw-r--r--modules/translation/translation.module1
-rw-r--r--modules/trigger/trigger.info2
-rw-r--r--modules/trigger/trigger.module8
-rw-r--r--modules/update/update.info5
-rw-r--r--modules/update/update.module4
-rw-r--r--modules/upload/upload.info2
-rw-r--r--modules/upload/upload.module1
-rw-r--r--modules/user/user.info3
-rw-r--r--modules/user/user.module18
69 files changed, 433 insertions, 275 deletions
diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 49659f8ca..c5a8ba404 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 371f3443f..710d2e3c2 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 bb02accab..94aa380b1 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 9398077a1..54bfd4bc4 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 56c765e7c..c2394a414 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 2e57234dd..1a52d3da4 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)) {
+ $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 ($router_item['file']) {
- require_once($router_item['file']);
+ 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 d0f100298..e62558af4 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 d675e1564..3b4d1dc1c 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 21509d494..ffa5fd8c3 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 034150000..902fe2b8f 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 2d16c0792..ae6d3e767 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 d9af23b27..565a3617c 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 75bd66ede..4b9dd2afc 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 ba1257a06..d3660c1ec 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 f40da2c42..ae6430bef 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 a2a207b76..1cc82a16d 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 b094bba4a..fbe20346a 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 9c2f3537a..23684b43e 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 3d33ce5bc..990002a08 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 7c1d7b089..d6794ab12 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 cdd764b48..00f29d422 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 05fe9a11e..ead3cc906 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 e88c4c08c..2ddd526c4 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 867f77109..cd849cf05 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 3ec37051f..b00b387f4 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 f5d74c4b4..7003a1b3c 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 7f9059c02..2c9a8a32b 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 737198d2f..edc6e2936 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 0d480c0f3..3a642adbc 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 f2e391d61..7903c6569 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 503f73957..cdf601be6 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 ee972498d..00a9b9a34 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 9bd5fc8eb..aeebbc2f0 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 e3fa441a6..30a771270 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 a9b1fd043..060e3b948 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 ce8986be9..64eba8462 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 ed82a31f8..ede648a26 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 f747ff9bd..c55d44bfa 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 b3a515c99..8b49a0ac0 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 ce0490943..10fa65748 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 49ea6c000..36a975de0 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 56f6b5ea5..c22d515de 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 2cface906..d3279f2e8 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 c43fc61dd..2a1ab86a2 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 cc2f86bcb..d1eee555a 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 e467791d1..ac81ab065 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 6d6590cd2..72ea93a24 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 f34478260..fe2e32793 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 9a162e714..87db58443 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 031e3b6a0..71052696a 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 fcf990765..68de78e11 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 8b22a77f4..2e02aaf20 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 b4daf5205..649436908 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 d09eabb48..9207e6e2d 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();
@@ -2861,8 +2904,48 @@ function system_update_7005() {
}
/**
+ * 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 e8e9d0e14..2cc438463 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 c7a93e350..df213cefb 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 77b90f883..56f15b119 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 37c1be304..18fc939a2 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 e11d8a983..0044bd480 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 87ccf945a..dd5d0f4f4 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 946744018..79a542ac8 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 bc333940b..69566095f 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 9be132ca5..d3d900fad 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 1df3eda4c..016552547 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 92a8ca586..d3e60ce69 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 2b2a94826..aaae110d4 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 d300a13d3..431d5bf00 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 fb382ebe6..c7ac1b737 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 2b1414c59..3fa75e296 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',
);
}
}