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.
AMOS BEGIN
CPY [availabilityconditions,core_condition],[restrictaccess,core_availability]
CPY [enableavailability,core_condition],[enableavailability,core_availability]
CPY [configenableavailability,core_condition],[enableavailability_desc,core_availability]
AMOS END
1) Moved the calendar types location to a sub-folder in the calendar directory.
2) Removed/moved language strings.
3) Removed calendar types that should be downloaded as plugins.
4) Removed a Non-English language pack for the Gregorian calendar type that
should be downloaded separately.
5) Removed custom files responsible for checking for updates and uninstalling
calendar types, which should be done by core.
6) Removed JS from the calendar_month block as there is no non-JS alternative
provided and the JS written does not make use of the YUI library to ensure
multiple browser support.
7) Removed code from the base class responsible for creating timestamps that
are saved in the DB.
8) Added PHPDocs.
Note: In the original patch we are editing core functions responsible for saving
time in the database in the calendar base class. This is very dangerous, we do
not want to touch these functions as it could cause a complete fubar of the
database. There are places we are forcing the use of the gregorian calendar as
we are passing dates generated by the PHP date function, where as sometimes
we pass dates from usergetdate (which was being overwritten to return the
date specific to the calendar). We can not expect third party modules to
change the calendar type depending on the format they pass to these functions.
Not all add-ons require administrator's attention during the upgrade
now. They are now listed only if there is an update available for them.
Also, it's not true any more that add-ons must be updated manually. They
can be updated using the automatic deployment feature, too.
Plugins may use this general tool for uninstallation and eventually
removal of the deployed source code. At the moment, this is implemented
as a wrapper for the core function uninstall_plugin() with an extra hook
in the relevant plugin info subclass.
For non-standard add-ons, the tool can remove the deployed plugin source
code as well, if the web server has required write permissions. Ideally,
all add-ons installed via the new tool_installaddon should be removable
via the web interface as well.
This patch makes Moodle call HTTP HEAD method via cURL to see if the ZIP
is expected to be downloadable by mdeploy.php. This is mainly intended
for SSL certificates check.
From now on, Moodle verifies the available updates provider server. To
make it work, either there must be a valid CA certificate available in
the operating system, or the administrator has to upload the valid CA
certificate to moodledata/moodleorgca.crt (PEM format) file manually.
If the stored response has still 1.0 version (which is expected during
the upgrade to 2.4), a debugging message is displayed. Added a string to
explain what's going on and how to recover from the state.
This follows the same path as we have in CLI installers. Plugin
dependencies are checked right after the environment checks and the
install can't continue unless all dependencies are fixed.
The status_uptodate is a flag that the plugin's on-disk version and the
in-db version are in sync, that is no upgrade will be performed.
However, there can be a newer version of the plugin available. So using
the term "up-to-date" may be confusing.
AMOS BEGIN
MOV [outline:view,coursereport_outline],[outline:view,report_outline]
MOV [pluginpagetype,coursereport_outline],[pluginpagetype,report_outline]
MOV [pluginname,coursereport_outline],[pluginname,report_outline]
AMOS END
The new strings file core_plugin defines names of all plugin types
supported by Moodle. Some strings have already been defined elsewhere
and we use AMOS script here to copy their translation, if it is
available.
AMOS BEGIN
CPY [settings,core],[settings,core_plugin]
CPY [status,core],[status,core_plugin]
CPY [missingfromdisk,core],[status_missing,core_plugin]
CPY [nodatabase,core_admin],[status_nodb,core_plugin]
CPY [authenticationplugins,core],[type_auth_plural,core_plugin]
CPY [block,core],[type_block,core_plugin]
CPY [blocks,core],[type_block_plural,core_plugin]
CPY [coursereport,core],[type_coursereport,core_plugin]
CPY [coursereports,core],[type_coursereport_plural,core_plugin]
CPY [filter,core],[type_filter,core_plugin]
CPY [courseformats,core],[type_format_plural,core_plugin]
CPY [activitymodule,core],[type_mod,core_plugin]
CPY [activitymodules,core],[type_mod_plural,core_plugin]
CPY [plagiarism,core_plagiarism],[type_plagiarism,core_plugin]
CPY [portfolio,core_portfolio],[type_portfolio,core_plugin]
CPY [portfolios,core_portfolio],[type_portfolio_plural,core_plugin]
CPY [questiontype,core_admin],[type_qtype,core_plugin]
CPY [questiontypes,core_admin],[type_qtype_plural,core_plugin]
CPY [repository,core_repository],[type_repository,core_plugin]
CPY [theme,core],[type_theme,core_plugin]
CPY [themes,core],[type_theme_plural,core_plugin]
CPY [uninstallplugin,core_admin],[uninstall,core_plugin]
CPY [version,core],[version,core_plugin]
CPY [assignmenttype,mod_assignment],[subplugintype_assignment,mod_assignment]
CPY [presets,mod_data],[subplugintype_datapreset_plural,mod_data]
CPY [evaluationmethod,mod_workshop],[subplugintype_workshopeval,mod_workshop]
CPY [strategy,mod_workshop],[subplugintype_workshopform,mod_workshop]
AMOS END