aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
authorNathaniel Guse <nathaniel.guse@gmail.com>2013-05-01 13:00:43 -0500
committerNathaniel Guse <nathaniel.guse@gmail.com>2013-05-01 13:00:43 -0500
commit9db4e856db426c68d0e3055dbcad9754ce65779d (patch)
tree757834dff6848a8b1d3bdce037c7c9939e283397 /phpBB/includes
parentc182ab0e7b2739ff70fb18611af5e1baa02d81a2 (diff)
downloadforums-9db4e856db426c68d0e3055dbcad9754ce65779d.tar
forums-9db4e856db426c68d0e3055dbcad9754ce65779d.tar.gz
forums-9db4e856db426c68d0e3055dbcad9754ce65779d.tar.bz2
forums-9db4e856db426c68d0e3055dbcad9754ce65779d.tar.xz
forums-9db4e856db426c68d0e3055dbcad9754ce65779d.zip
[ticket/11415] Move while loop from ext manager to acp_extensions.php
Now enable_step works as it's supposed to (do one step at a time) and less refreshes are required for the user. PHPBB3-11415
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/acp/acp_extensions.php34
-rw-r--r--phpBB/includes/extension/manager.php21
2 files changed, 28 insertions, 27 deletions
diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php
index e4defa0400..7fdeb1ff8b 100644
--- a/phpBB/includes/acp/acp_extensions.php
+++ b/phpBB/includes/acp/acp_extensions.php
@@ -44,6 +44,10 @@ class acp_extensions
$action = $request->variable('action', 'list');
$ext_name = $request->variable('ext_name', '');
+ // What is a safe limit of execution time? Half the max execution time should be safe.
+ $safe_time_limit = (ini_get('max_execution_time') / 2);
+ $start_time = time();
+
// Cancel action
if ($request->is_set_post('cancel'))
{
@@ -105,11 +109,15 @@ class acp_extensions
try
{
- if ($phpbb_extension_manager->enable_step($ext_name))
+ while ($phpbb_extension_manager->enable_step($ext_name))
{
- $template->assign_var('S_NEXT_STEP', true);
+ // Are we approaching the time limit? If so we want to pause the update and continue after refreshing
+ if ((time() - $start_time) >= $safe_time_limit)
+ {
+ $template->assign_var('S_NEXT_STEP', true);
- meta_refresh(0, $this->u_action . '&amp;action=enable&amp;ext_name=' . urlencode($ext_name));
+ meta_refresh(0, $this->u_action . '&amp;action=enable&amp;ext_name=' . urlencode($ext_name));
+ }
}
}
catch (phpbb_db_migration_exception $e)
@@ -139,11 +147,15 @@ class acp_extensions
break;
case 'disable':
- if ($phpbb_extension_manager->disable_step($ext_name))
+ while ($phpbb_extension_manager->disable_step($ext_name))
{
- $template->assign_var('S_NEXT_STEP', true);
+ // Are we approaching the time limit? If so we want to pause the update and continue after refreshing
+ if ((time() - $start_time) >= $safe_time_limit)
+ {
+ $template->assign_var('S_NEXT_STEP', true);
- meta_refresh(0, $this->u_action . '&amp;action=disable&amp;ext_name=' . urlencode($ext_name));
+ meta_refresh(0, $this->u_action . '&amp;action=disable&amp;ext_name=' . urlencode($ext_name));
+ }
}
$this->tpl_name = 'acp_ext_disable';
@@ -165,11 +177,15 @@ class acp_extensions
case 'purge':
try
{
- if ($phpbb_extension_manager->purge_step($ext_name))
+ while ($phpbb_extension_manager->purge_step($ext_name))
{
- $template->assign_var('S_NEXT_STEP', true);
+ // Are we approaching the time limit? If so we want to pause the update and continue after refreshing
+ if ((time() - $start_time) >= $safe_time_limit)
+ {
+ $template->assign_var('S_NEXT_STEP', true);
- meta_refresh(0, $this->u_action . '&amp;action=purge&amp;ext_name=' . urlencode($ext_name));
+ meta_refresh(0, $this->u_action . '&amp;action=purge&amp;ext_name=' . urlencode($ext_name));
+ }
}
}
catch (phpbb_db_migration_exception $e)
diff --git a/phpBB/includes/extension/manager.php b/phpBB/includes/extension/manager.php
index a1022762b8..d3e9d56501 100644
--- a/phpBB/includes/extension/manager.php
+++ b/phpBB/includes/extension/manager.php
@@ -546,22 +546,11 @@ class phpbb_extension_manager
$migrations = $finder->get_classes_from_files($migrations);
$this->migrator->set_migrations($migrations);
- // What is a safe limit of execution time? Half the max execution time should be safe.
- $safe_time_limit = (ini_get('max_execution_time') / 2);
- $start_time = time();
-
if ($mode == 'enable')
{
- while (!$this->migrator->finished())
- {
- $this->migrator->update();
+ $this->migrator->update();
- // Are we approaching the time limit? If so we want to pause the update and continue after refreshing
- if ((time() - $start_time) >= $safe_time_limit)
- {
- return false;
- }
- }
+ return $this->migrator->finished();
}
else if ($mode == 'purge')
{
@@ -571,11 +560,7 @@ class phpbb_extension_manager
{
$this->migrator->revert($migration);
- // Are we approaching the time limit? If so we want to pause the update and continue after refreshing
- if ((time() - $start_time) >= $safe_time_limit)
- {
- return false;
- }
+ return false;
}
}
}