Extension:GWToolset/Technical Implementation

Below are sections that describe the implementation in further detail.

Code conventions
GWToolset attempts, as much as possible, to adhere to MediaWiki Code conventions. Below are a few code conventions mentioned for clarity.

PHP namespace
GWToolset uses a PHP namespace in order to prevent conflicts with other code within the MediaWiki global namespace; the root namespace is.

MediaWiki namespace
GWToolset defines two.

This namespace is used to define a unique space within the wiki to store metadata mappings used by this extension and potentially the metadata content used in conjunction with those mappings.

Configuration
GWToolset uses a Config class,, to add configuration settings within the GWToolset namespace. Settings can be changed with:

User group requirement
GWToolset adds a new user group,, that users must be a part of in order to use the extension. This method of permission control was chosen in order to isolate users similar to UploadWizard’s ‘upwizcampeditors’ and Translate’s ‘translate-proofr’ user groups.

Upload process
The current steps within the upload process are:
 * 1) Metadata detection
 * 2) Metadata mapping
 * 3) Batch preview
 * 4) Batch job creation

Application entry
Further detail on application entry into the extension.

Handlers
Further detail on each of the main handlers used within the application:
 * MetadataDetectHandler
 * MetadataMappingHandler
 * MetadataMappingSaveHandler

Jobs
Further detail on each of the jobs used within the application:
 * UploadMediafileJob
 * UploadMetadataJob