Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.

(no description)

File Size: 347 lines (13 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class


Class: base  - X-Ref

Base class for handling progress information.

Subclasses should generally override the {@link current_progress} function which
summarises all progress information.

start_progress($description, $max = self::INDETERMINATE,$parentcount = 1)   X-Ref
Marks the start of an operation that will display progress.

This can be called multiple times for nested progress sections. It must
be paired with calls to end_progress.

The progress maximum may be {@link self::INDETERMINATE} if the current operation has
an unknown number of steps. (This is default.)

Calling this function will always result in a new display, so this
should not be called exceedingly frequently.

When it is complete by calling {@link end_progress()}, each {@link start_progress} section
automatically adds progress to its parent, as defined by $parentcount.

param: string $description Description to display
param: int $max Maximum value of progress for this section
param: int $parentcount How many progress points this section counts for

end_progress()   X-Ref
Marks the end of an operation that will display progress.

This must be paired with each {@link start_progress} call.

If there is a parent progress section, its progress will be increased
automatically to reflect the end of the child section.


progress($progress = self::INDETERMINATE)   X-Ref
Indicates that progress has occurred.

The progress value should indicate the total progress so far, from 0
to the value supplied for $max (inclusive) in {@link start_progress}.

You do not need to call this function for every value. It is OK to skip
values. It is also OK to call this function as often as desired; it
doesn't update the display if called more than once per second.

It must be INDETERMINATE if {@link start_progress} was called with $max set to
INDETERMINATE. Otherwise it must not be indeterminate.

param: int $progress Progress so far

increment_progress($incby = 1)   X-Ref
An alternative to calling progress. This keeps track of the number of items done internally. Call this method
with no parameters to increment the internal counter by one or you can use the $incby parameter to specify a positive
change in progress. The internal progress counter should not exceed $max as passed to {@link start_progress} for this
section.

If you called {@link start_progress} with parameter INDETERMINATE then you cannot call this method.


get_time()   X-Ref
Gets time (this is provided so that unit tests can override it).

return: int Current system time

is_in_progress_section()   X-Ref

return: bool True if currently inside a progress section

get_current_max()   X-Ref
Checks max value of current progress section.

return: int Current max value - may be {@link \core\progress\base::INDETERMINATE}.

get_current_description()   X-Ref

return: string Current progress section description

get_progress_proportion_range()   X-Ref
Obtains current progress in a way suitable for drawing a progress bar.

Progress is returned as a minimum and maximum value. If there is no
indeterminate progress, these values will be identical. If there is
intermediate progress, these values can be different. (For example, if
the top level progress sections is indeterminate, then the values will
always be 0.0 and 1.0.)

return: array Minimum and maximum possible progress proportions

get_progress_count()   X-Ref
Obtains current indeterminate progress in a way suitable for adding to
the progress display.

This returns the number of indeterminate calls (at any level) during the
lifetime of this progress reporter, whether or not there is a current
indeterminate step. (The number will not be ridiculously high because
progress calls are limited to one per second.)

return: int Number of indeterminate progress calls