diff options
Diffstat (limited to 'modules/system')
-rw-r--r-- | modules/system/page.tpl.php | 2 | ||||
-rw-r--r-- | modules/system/system.install | 18 | ||||
-rw-r--r-- | modules/system/system.module | 23 |
3 files changed, 42 insertions, 1 deletions
diff --git a/modules/system/page.tpl.php b/modules/system/page.tpl.php index fce977e5f..5bf9e423b 100644 --- a/modules/system/page.tpl.php +++ b/modules/system/page.tpl.php @@ -41,7 +41,7 @@ <h1 class="title"><?php print $title ?></h1> <div class="tabs"><?php print $tabs ?></div> <?php print $help ?> - <?php print $messages ?> + <?php if ($show_messages) { print $messages; }?> <?php print $content; ?> <?php print $feed_icons; ?> </div> diff --git a/modules/system/system.install b/modules/system/system.install index f409de7fa..7cf9b1979 100644 --- a/modules/system/system.install +++ b/modules/system/system.install @@ -190,6 +190,15 @@ function system_install() { UNIQUE KEY authname (authname) ) /*!40100 DEFAULT CHARACTER SET UTF8 */ "); + db_query("CREATE TABLE {batch} ( + bid int(11) NOT NULL, + sid varchar(64) NOT NULL, + timestamp int(11) NOT NULL, + batch longtext, + PRIMARY KEY (bid), + KEY sid (sid) + ) /*!40100 DEFAULT CHARACTER SET UTF8 */ "); + db_query("CREATE TABLE {blocks} ( module varchar(64) DEFAULT '' NOT NULL, delta varchar(32) NOT NULL default '0', @@ -666,6 +675,15 @@ function system_install() { UNIQUE (authname) )"); + db_query("CREATE TABLE {batch} ( + bid int NOT NULL default '0', + sid varchar(64) NOT NULL default '', + timestamp int NOT NULL default '0', + batch text, + PRIMARY KEY (bid), + )"); + db_query("CREATE INDEX {batch}_sid_idx ON {batch} (sid)"); + db_query("CREATE TABLE {blocks} ( module varchar(64) DEFAULT '' NOT NULL, delta varchar(32) NOT NULL default '0', diff --git a/modules/system/system.module b/modules/system/system.module index fab91e2d6..a18439e07 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -327,6 +327,12 @@ function system_menu() { 'page callback' => 'system_sql', 'type' => MENU_CALLBACK, ); + // Default page for batch operations + $items['batch'] = array( + 'page callback' => 'system_batch_page', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); return $items; } @@ -2459,5 +2465,22 @@ function theme_system_admin_by_module($menu_items) { function system_cron() { // Cleanup the flood db_query('DELETE FROM {flood} WHERE timestamp < %d', time() - 3600); + // Cleanup the batch table + db_query('DELETE FROM {batch} WHERE timestamp < %d', time() - 864000); } +/** + * Default page callback for batches. + */ +function system_batch_page() { + require_once './includes/batch.inc'; + $output = _batch_page(); + if ($output === FALSE) { + drupal_access_denied(); + } + else { + // Force a page without blocks or messages to + // display a list of collected messages later. + print theme('page', $output, FALSE, FALSE); + } +} |