* Plugins can now explicitly declare supported and incompatible Moodle
versions in version.php
- $plugin->supported[37,39];
supported takes an array of ascending numbers, that correspond to a
range of branch numbers of supported versions, inclusive. Moodle
versions that are outside of this range will produce a message
notifying at install time, but will allow for installation.
- $plugin->incompatible = 36;
incompatible takes a single int corresponding to the first incompatible
branch. Any Moodle versions including and below this will be prevented
from installing the plugin, and a message will be given when
attempting installation.
The eventtype index will stop full table scans when the Event API
retrieves events for a group or category and there are a large number
of groups or categories so it cannot use the groupid or categoryid
indexes efficiently.
The modulename-instance index will improve the performance of queries
used by activity backup, deletion and visibility changes where all
the events for an individual activity need to be found.
\core\local\cli\shutdown::script_supports_graceful_exit();
Sets up interception of exit signals and keep the script running.
\core\local\cli\shutdown::should_gracefully_exit();
Use this to check whether you should exit, often inside a long running loop.
Before this change in most cases the queries generated by the API
would not be able to use an index as the subquery would use
conditions that coulde not be satisfied by a signle index.
By changing it to use UNIONs the database will be able to use an
appropriate index for each query in most cases.
Some browsers, notably Firefox, do not return the computed style for
background colour in a computed RGB format. Instead they return the RGBA
where the alpha channel is set to fully transparent.
To solve this we need to work up the hierarchy and compute the
background colour for each parent node until we reach full alpha (1).
We can use a standard calculation to approximate the value for the
resultant element background by multiplying the alpha of the current
transparent (or semi-transparent) node with the R, G, or B channel in
question, and that of the parent node's background colour.
There are cases where this will not be 100% accurate - notably where
there is some additional content in addition to the parent background,
but this gives us a reasoable approximation for the majority of cases.
Additionally the code has never considered the full set of node content
when calculating this information.