Commit 4bc255ba authored by webchick's avatar webchick

Roll-back of #310467: Breaks installer requirements check and update.php.

parent 02c85927
......@@ -3556,7 +3556,8 @@ function drupal_common_theme() {
'maintenance_page' => array(
'arguments' => array('content' => NULL, 'show_blocks' => TRUE, 'show_messages' => TRUE),
'template' => 'maintenance-page',
'path' => 'includes'
'path' => 'includes',
'file' => 'theme.maintenance.inc',
),
'update_page' => array(
'arguments' => array('content' => NULL, 'show_messages' => TRUE),
......
......@@ -311,7 +311,7 @@ function drupal_theme_rebuild() {
function _theme_process_registry(&$cache, $name, $type, $theme, $path) {
$result = array();
$function = $name . '_theme';
if (drupal_function_exists($function)) {
if (function_exists($function)) {
$result = $function($cache, $type, $theme, $path);
foreach ($result as $hook => $info) {
......@@ -322,6 +322,18 @@ function _theme_process_registry(&$cache, $name, $type, $theme, $path) {
if (!isset($info['template']) && !isset($info['function'])) {
$result[$hook]['function'] = ($type == 'module' ? 'theme_' : $name . '_') . $hook;
}
// If a path is set in the info, use what was set. Otherwise use the
// default path. This is mostly so system.module can declare theme
// functions on behalf of core .include files.
// All files are included to be safe. Conditionally included
// files can prevent them from getting registered.
if (isset($info['file']) && !isset($info['path'])) {
$result[$hook]['file'] = $path . '/' . $info['file'];
include_once DRUPAL_ROOT . '/' . $result[$hook]['file'];
}
elseif (isset($info['file']) && isset($info['path'])) {
include_once DRUPAL_ROOT . '/' . $info['path'] . '/' . $info['file'];
}
if (isset($info['template']) && !isset($info['path'])) {
$result[$hook]['template'] = $path . '/' . $info['template'];
......@@ -364,10 +376,10 @@ function _theme_process_registry(&$cache, $name, $type, $theme, $path) {
}
foreach ($prefixes as $prefix) {
if (drupal_function_exists($prefix . '_preprocess')) {
if (function_exists($prefix . '_preprocess')) {
$info['preprocess functions'][] = $prefix . '_preprocess';
}
if (drupal_function_exists($prefix . '_preprocess_' . $hook)) {
if (function_exists($prefix . '_preprocess_' . $hook)) {
$info['preprocess functions'][] = $prefix . '_preprocess_' . $hook;
}
}
......@@ -396,10 +408,10 @@ function _theme_process_registry(&$cache, $name, $type, $theme, $path) {
if (!isset($info['preprocess functions'])) {
$cache[$hook]['preprocess functions'] = array();
}
if (drupal_function_exists($name . '_preprocess')) {
if (function_exists($name . '_preprocess')) {
$cache[$hook]['preprocess functions'][] = $name . '_preprocess';
}
if (drupal_function_exists($name . '_preprocess_' . $hook)) {
if (function_exists($name . '_preprocess_' . $hook)) {
$cache[$hook]['preprocess functions'][] = $name . '_preprocess_' . $hook;
}
// Ensure uniqueness.
......@@ -647,6 +659,14 @@ function theme() {
// point path_to_theme() to the currently used theme path:
$theme_path = $info['theme path'];
// Include a file if the theme function or preprocess function is held elsewhere.
if (!empty($info['file'])) {
$include_file = $info['file'];
if (isset($info['path'])) {
$include_file = $info['path'] . '/' . $include_file;
}
include_once DRUPAL_ROOT . '/' . $include_file;
}
if (isset($info['function'])) {
// The theme call is a function.
if (drupal_function_exists($info['function'])) {
......
......@@ -36,13 +36,16 @@ function aggregator_theme() {
return array(
'aggregator_wrapper' => array(
'arguments' => array('content' => NULL),
'file' => 'aggregator.pages.inc',
'template' => 'aggregator-wrapper',
),
'aggregator_categorize_items' => array(
'arguments' => array('form' => NULL),
'file' => 'aggregator.pages.inc',
),
'aggregator_feed_source' => array(
'arguments' => array('feed' => NULL),
'file' => 'aggregator.pages.inc',
'template' => 'aggregator-feed-source',
),
'aggregator_block_item' => array(
......@@ -50,21 +53,26 @@ function aggregator_theme() {
),
'aggregator_summary_items' => array(
'arguments' => array('summary_items' => NULL, 'source' => NULL),
'file' => 'aggregator.pages.inc',
'template' => 'aggregator-summary-items',
),
'aggregator_summary_item' => array(
'arguments' => array('item' => NULL),
'file' => 'aggregator.pages.inc',
'template' => 'aggregator-summary-item',
),
'aggregator_item' => array(
'arguments' => array('item' => NULL),
'file' => 'aggregator.pages.inc',
'template' => 'aggregator-item',
),
'aggregator_page_opml' => array(
'arguments' => array('feeds' => NULL),
'file' => 'aggregator.pages.inc',
),
'aggregator_page_rss' => array(
'arguments' => array('feeds' => NULL, 'category' => NULL),
'file' => 'aggregator.pages.inc',
),
);
}
......
......@@ -98,6 +98,7 @@ function block_theme() {
),
'block_admin_display_form' => array(
'template' => 'block-admin-display-form',
'file' => 'block.admin.inc',
'arguments' => array('form' => NULL),
),
);
......
......@@ -47,12 +47,15 @@ function filter_theme() {
return array(
'filter_admin_overview' => array(
'arguments' => array('form' => NULL),
'file' => 'filter.admin.inc',
),
'filter_admin_order' => array(
'arguments' => array('form' => NULL),
'file' => 'filter.admin.inc',
),
'filter_tips' => array(
'arguments' => array('tips' => NULL, 'long' => FALSE),
'file' => 'filter.pages.inc',
),
'filter_tips_more_info' => array(
'arguments' => array(),
......
......@@ -142,9 +142,11 @@ function menu_menu() {
function menu_theme() {
return array(
'menu_overview_form' => array(
'file' => 'menu.admin.inc',
'arguments' => array('form' => NULL),
),
'menu_admin_overview' => array(
'file' => 'menu.admin.inc',
'arguments' => array('title' => NULL, 'name' => NULL, 'description' => NULL),
),
);
......
......@@ -105,21 +105,27 @@ function node_theme() {
),
'node_filter_form' => array(
'arguments' => array('form' => NULL),
'file' => 'node.admin.inc',
),
'node_filters' => array(
'arguments' => array('form' => NULL),
'file' => 'node.admin.inc',
),
'node_admin_nodes' => array(
'arguments' => array('form' => NULL),
'file' => 'node.admin.inc',
),
'node_add_list' => array(
'arguments' => array('content' => NULL),
'file' => 'node.pages.inc',
),
'node_form' => array(
'arguments' => array('form' => NULL),
'file' => 'node.pages.inc',
),
'node_preview' => array(
'arguments' => array('node' => NULL),
'file' => 'node.pages.inc',
),
'node_log_message' => array(
'arguments' => array('log' => NULL),
......
......@@ -67,6 +67,7 @@ function profile_theme() {
),
'profile_admin_overview' => array(
'arguments' => array('form' => NULL),
'file' => 'profile.admin.inc',
)
);
}
......
......@@ -126,10 +126,12 @@ function search_theme() {
),
'search_result' => array(
'arguments' => array('result' => NULL, 'type' => NULL),
'file' => 'search.pages.inc',
'template' => 'search-result',
),
'search_results' => array(
'arguments' => array('results' => NULL, 'type' => NULL),
'file' => 'search.pages.inc',
'template' => 'search-results',
),
'search_results_listing' => array(
......
......@@ -70,9 +70,11 @@ function simpletest_theme() {
return array(
'simpletest_test_table' => array(
'arguments' => array('table' => NULL),
'file' => 'simpletest.pages.inc',
),
'simpletest_result_summary' => array(
'arguments' => array('form' => NULL),
'file' => 'simpletest.pages.inc',
),
);
}
......
......@@ -583,6 +583,10 @@ function hook_perm() {
* used as the default value if not specified to the theme() function.
* These arguments must be in the same order that they will be given to
* the theme() function.
* - file: The file the implementation resides in. This file will be included
* prior to the theme being rendered, to make sure that the function or
* preprocess function (as needed) is actually loaded; this makes it possible
* to split theme functions out into separate files quite easily.
* - path: Override the path of the file to be used. Ordinarily the module or
* theme path will be used, but if the file will not be in the default path,
* include it here. This path should be relative to the Drupal root
......
......@@ -121,33 +121,43 @@ function system_theme() {
return array_merge(drupal_common_theme(), array(
'system_theme_select_form' => array(
'arguments' => array('form' => NULL),
'file' => 'system.admin.inc',
),
'system_themes_form' => array(
'arguments' => array('form' => NULL),
'file' => 'system.admin.inc',
),
'system_modules_fieldset' => array(
'arguments' => array('form' => NULL),
'file' => 'system.admin.inc',
),
'system_modules_incompatible' => array(
'arguments' => array('message' => NULL),
'file' => 'system.admin.inc',
),
'system_modules_uninstall' => array(
'arguments' => array('form' => NULL),
'file' => 'system.admin.inc',
),
'status_report' => array(
'arguments' => array('requirements' => NULL),
'file' => 'system.admin.inc',
),
'admin_page' => array(
'arguments' => array('blocks' => NULL),
'file' => 'system.admin.inc',
),
'admin_block' => array(
'arguments' => array('block' => NULL),
'file' => 'system.admin.inc',
),
'admin_block_content' => array(
'arguments' => array('content' => NULL),
'file' => 'system.admin.inc',
),
'system_admin_by_module' => array(
'arguments' => array('menu_items' => NULL),
'file' => 'system.admin.inc',
),
'system_powered_by' => array(
'arguments' => array('image_path' => NULL),
......
......@@ -149,6 +149,7 @@ function trigger_theme() {
return array(
'trigger_display' => array(
'arguments' => array('element'),
'file' => 'trigger.admin.inc',
),
);
}
......
......@@ -42,32 +42,40 @@ function user_theme() {
'user_profile' => array(
'arguments' => array('elements' => NULL),
'template' => 'user-profile',
'file' => 'user.pages.inc',
),
'user_profile_category' => array(
'arguments' => array('element' => NULL),
'template' => 'user-profile-category',
'file' => 'user.pages.inc',
),
'user_profile_item' => array(
'arguments' => array('element' => NULL),
'template' => 'user-profile-item',
'file' => 'user.pages.inc',
),
'user_list' => array(
'arguments' => array('users' => NULL, 'title' => NULL),
),
'user_admin_perm' => array(
'arguments' => array('form' => NULL),
'file' => 'user.admin.inc',
),
'user_admin_new_role' => array(
'arguments' => array('form' => NULL),
'file' => 'user.admin.inc',
),
'user_admin_account' => array(
'arguments' => array('form' => NULL),
'file' => 'user.admin.inc',
),
'user_filter_form' => array(
'arguments' => array('form' => NULL),
'file' => 'user.admin.inc',
),
'user_filters' => array(
'arguments' => array('form' => NULL),
'file' => 'user.admin.inc',
),
'user_signature' => array(
'arguments' => array('signature' => NULL),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment