At my company, we are thinking about replacing MediaWiki's uploaded file tree (/w/images) with a third-party content management system (CMS), as transparently as possible. An example might be a subversion repository, WebDAV system, or Microsoft SharePoint. What would people recommend as the most MW-compatible way to do this, using extensions when possible, likely to survive MW updates, and without making big changes to the core MediaWiki source code?
I think the major integration points are:
- Image pages (e.g., Image:Foobar.jpg), which must retrieve the uploaded file and the revision history from the CMS - Image links, e.g., [[Image:Foobar.jpg]], which must retrieve the uploaded file from the CMS - Media links, which must access the uploaded file within the CMS and render a useful link - Special:Upload, which must add new revisions to the CMS - The various other File-related special pages like Special:Imagelist, Special:Newimages, etc.
I see a few helpful hooks: ImageOpenShowImageInlineBefore in ImagePage.php, BadImage in ImageFunctions.php, BeforeParserrenderImageGallery and BeforeParserMakeImageLinkObj in Parser.php, etc. I am comfortable adding new hooks, but if possible would like not to make any other core code modifications.
Thanks for any tips. DanB