• sam marshall's avatar
    MDL-44070 Conditional availability enhancements (2): subsystem, API · d3db4b03
    sam marshall authored
    This commit defines the new /availability root folder, with
    /availability/classes, /availability/tests, and
    /availability/condition where the condition plugins will live.
    Condition plugin prefix is availability_, e.g. availability_date.
    Rationale for this organisation:
    1. I was originally going to put this in /lib/availability but
       it has been pointed out that putting even more junk in lib
       is probably bad.
    2. 'availability' and 'condition' are the two names used in code
       to refer to this system ($CFG->enableavailability).
    3. The prefix has to be short enough to allow database tables
       (although in practice I assume that condition plugins will not
       normally contain database tables).
    The new API includes a Boolean tree structure that controls the
    availability of an item.
     CPY [availabilityconditions,core_condition],[restrictaccess,core_availability]
     CPY [enableavailability,core_condition],[enableavailability,core_availability]
     CPY [configenableavailability,core_condition],[enableavailability_desc,core_availability]