diff --git a/lib/adminlib.php b/lib/adminlib.php index 9644c54dcdb..e66d181c73c 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -290,4 +290,45 @@ function set_cron_lock($name,$value=true,$staleafter=7200,$clobberstale=false) { } return true; } + +function print_progress($done, $total, $updatetime=5, $sleeptime=1) { + static $count; + static $starttime; + static $lasttime; + + if (empty($starttime)) { + $starttime = $lasttime = time(); + $lasttime = $starttime - $updatetime; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo ''; + } + + if (!isset($count)) { + $count = 0; + } + + $count++; + + $now = time(); + + if ($done && (($now - $lasttime) >= $updatetime)) { + $elapsedtime = $now - $starttime; + $projectedtime = (int)(((float)$total / (float)$done) * $elapsedtime) - $elapsedtime; + $percentage = format_float((float)$done / (float)$total, 2); + $width = (int)(500 * $percentage); + + echo ''; + + $lasttime = $now; + sleep($sleeptime); + } +} ?>