1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-30 21:40:43 +02:00

[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
This commit is contained in:
Nathaniel Guse
2013-05-01 13:00:43 -05:00
parent c182ab0e7b
commit 9db4e856db
2 changed files with 28 additions and 27 deletions

View File

@@ -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 . '&action=enable&ext_name=' . urlencode($ext_name));
meta_refresh(0, $this->u_action . '&action=enable&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 . '&action=disable&ext_name=' . urlencode($ext_name));
meta_refresh(0, $this->u_action . '&action=disable&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 . '&action=purge&ext_name=' . urlencode($ext_name));
meta_refresh(0, $this->u_action . '&action=purge&ext_name=' . urlencode($ext_name));
}
}
}
catch (phpbb_db_migration_exception $e)