Difference between revisions of "Extension inventory"

From Freephile Wiki
Jump to navigation Jump to search
m (fix link)
(consolidated table)
Line 1: Line 1:
 
This page serves to inventory and assess the mix of extensions that are in use for the DCS wiki:
 
This page serves to inventory and assess the mix of extensions that are in use for the DCS wiki:
; Regular:
+
 
: Code for "regular" extensions are hosted on Gerrit at the WMF (which is also mirrored to GitHub) with documentation at https://www.mediawiki.org/wiki.  
+
; Regular
; DCS Custom:
+
:
 +
: Code for "regular" extensions are hosted on Gerrit at the WMF (which is also mirrored to GitHub) with documentation at https://www.mediawiki.org/wiki. Regular is in quotes because ''all'' extensions modify the behavior and capabilities of MediaWiki. Those that are used by the WMF in their projects or are distributed in the official download should be considered stable, tested, and maintained. Over time, some extensions become part of MediaWiki core; and rarely core features are extracted into extensions.
 +
; DCS Custom
 +
:
 
: Code for the DCS extensions is in the [https://github.com/debtcompliance/mediawiki/tree/master/extensions private Debt Compliance GitHub repo]
 
: Code for the DCS extensions is in the [https://github.com/debtcompliance/mediawiki/tree/master/extensions private Debt Compliance GitHub repo]
; Organic Design:
+
; Organic Design
: Organic Design extensions are in the [https://github.com/OrganicDesign/extensions/tree/master/MediaWiki 'MediaWiki' tree of the Organic Design GitHub repo].
+
:
 +
: Organic Design extensions are in the [https://github.com/OrganicDesign/extensions/tree/master/MediaWiki 'MediaWiki' tree of the Organic Design GitHub repo]. Just because it's an OD extension doesn't mean it's not used by the wider MediaWiki community. We try to note usage below.
  
{{Highlight |
+
{{Highlight||text=Please review with the goal of adding info to the What does it do? column. That would be helpful to understand the function or utility of the extension -- especially as seen from the user perspective. Please note whichever role is involved: '''regular-user''', '''talk-editor''', '''client-admin''', or '''sysop'''.}}
| text=Please review with the goal of adding info to the What does it do? column. That would be helpful to understand the function or utility of the extension -- especially as seen from the user perspective. Please note whichever role is involved: '''regular-user''', '''talk-editor''', '''client-admin''', or '''sysop'''.
 
}}
 
  
 
The ultimate goal is two-fold: not only understand 'What does it do?', but also understand related questions like:
 
The ultimate goal is two-fold: not only understand 'What does it do?', but also understand related questions like:
 +
 
* "How critical is it? (Used all the time / occasionally, but still essential / never)"
 
* "How critical is it? (Used all the time / occasionally, but still essential / never)"
* "Does it need work? (known bugs or missing functionality)"  
+
* "Does it need work? (known bugs or missing functionality)"
 
* "Can or should this extension be replaced (with a more widely supported "regular" extension) to improve maintainability, features, security and lower cost?
 
* "Can or should this extension be replaced (with a more widely supported "regular" extension) to improve maintainability, features, security and lower cost?
  
 
Of course some features or functions are not really "user-centric" but might provide security or other features important to stakeholders like "Owner" or "Developer". For example: The DcsSkin provides a look and feel that is consistent with the company brand and makes the user experience more seamless while navigating between Website / Rails App / Wiki.
 
Of course some features or functions are not really "user-centric" but might provide security or other features important to stakeholders like "Owner" or "Developer". For example: The DcsSkin provides a look and feel that is consistent with the company brand and makes the user experience more seamless while navigating between Website / Rails App / Wiki.
  
I'm going to consolidate the inventory into one table, but you can add/edit at any time. I've put information about "[[Extension_inventory/sloc|Source lines of code]]" into a sub-article.
+
I've put information about "[[Extension inventory/sloc|Source lines of code]]" into a sub-article.
  
== "Regular" Extensions ==
 
Regular is in quotes because ''all'' extensions modify the behavior and capabilities of MediaWiki. Those that are used by the WMF in their projects or are distributed in the official download should be considered stable, tested, and maintained.  Extensions which are <span style="background:#90989e;">'unused' are grayed out</span>, to focus on the actual code being used. Unused means that the extension code is on the server, but not activated. This unused code will be removed as part of the general migration to QualityBox.
 
  
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
 +
!Extension
 +
!What does it do? (explain functionality by role: regular-user, talk-editor, client-admin, or sysop)
 +
!Maintenance / Last release
 +
!Used by WMF
 +
!Used by Meza
 +
!Used by QualityBox
 +
!Example / Notes / Alternatives?
 
|-
 
|-
! Extension
+
|[[mw:Extension:CirrusSearch|CirrusSearch]]
! What does it do? (explain functionality by role: regular-user, talk-editor, client-admin, or sysop)
+
|Extends the core search for MediaWiki to be able to use [[Elasticsearch]]. Elasticsearch provides a much better search capability to all users of the wiki. In particular, it allows DCS to index documents (file uploads).
! Maintenance / Last release
+
|Continuous
! Used by WMF
+
|Yes
! Used by Meza
+
|Yes
! Used by QualityBox
+
|Yes
! Used by DCS Alternatives?
+
|
|-
 
| [https://www.mediawiki.org/wiki/Extension:CirrusSearch CirrusSearch]  
 
| Extends the core search for MediaWiki to be able to use [https://en.wikipedia.org/wiki/Elasticsearch Elasticsearch]. Elasticsearch provides a much better search capability to all users of the wiki. In particular, it allows DCS to index documents (file uploads).
 
| Continuous  
 
| Yes
 
| Yes
 
| Yes
 
| Yes
 
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:Cite Cite]
 
| Provides <nowiki><references /> and <ref></ref></nowiki> tags
 
| Continuous
 
| Bundled in the official tarball release of MediaWiki (aka 'the download').
 
| Yes
 
| Yes
 
| UNUSED
 
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:CiteThisPage CiteThisPage]
 
| Provides [https://demo.qualitybox.us/wiki/Special:CiteThisPage Cite This Page] Special Page.
 
| Continuous
 
| Bundled
 
| No
 
| Yes
 
| UNUSED
 
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:ConfirmEdit ConfirmEdit]
 
| Adds CAPTCHAs for page saves and other user actions to protect against spam and password-guessing
 
| Continuous
 
| Bundled
 
| No
 
| Yes
 
| UNUSED
 
|-
 
| [https://www.mediawiki.org/wiki/Extension:Elastica Elastica]
 
| Base Elasticsearch functionality by providing the Elastica library; required by CirrusSearch.
 
| Continuous
 
| Yes
 
| Yes
 
| Yes
 
| Yes
 
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:Gadgets Gadgets]
 
| Provides a way for users to pick JavaScript or CSS based "gadgets" that other wiki users provide.
 
| Continuous
 
| Bundled
 
| No
 
| Yes
 
| UNUSED
 
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:ImageMap ImageMap]
 
| The ImageMap extension allows clickable image maps.
 
| Continuous
 
| Bundled
 
| Yes
 
| Yes
 
| UNUSED
 
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:InputBox InputBox ]
 
| The InputBox extension adds already created HTML forms to wiki pages.  So, for [https://www.mediawiki.org/wiki/MediaWiki_1.30#Subpages example], a search box on a page or category with many subpages; preconfigured to "Search this space".
 
| Continuous
 
| Bundled
 
| Yes
 
| Yes
 
| UNUSED
 
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:Interwiki Interwiki]
 
| The Interwiki extension adds the "Special:Interwiki" page to MediaWiki, to view and edit the interwiki table, and a log of any actions made with it.
 
| Continuous
 
| Bundled
 
| Yes
 
| Yes
 
| UNUSED
 
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:LocalisationUpdate LocalisationUpdate]
 
| Allows to update the localizations for MediaWiki messages at any time, without needing to upgrade the MediaWiki software.
 
| Continuous
 
| Bundled
 
| No
 
| No
 
| UNUSED
 
|-
 
| [https://www.mediawiki.org/wiki/Extension:Nuke Nuke]
 
| The Nuke extension makes it possible for sysops to [https://demo.qualitybox.us/wiki/Special:Nuke mass delete pages].
 
| Continuous
 
| Bundled
 
| No
 
| Yes
 
| For whatever reason, the DCSNuke extension intercepts page requests for the Nuke special page. DCSNuke has no added functionality. The DCSNuke code is roughly equivalent to the REL1_20 release of Nuke; and the current Nuke extension offers more functionality. I thought that potentially the reason to use a cloned extension was to totally customize the interface language strings, but that's not the case<ref>meld <(curl https://raw.githubusercontent.com/debtcompliance/mediawiki/master/extensions/DcsNuke/i18n/en.json?token=AACV4LWLt32dJzNg2zqcDRP_QZ6ecfOvks5bDx4MwA%3D%3D) <(curl https://raw.githubusercontent.com/wikimedia/mediawiki-extensions-Nuke/master/i18n/en.json)</ref>. Remove DCSNuke.
 
 
|-
 
|-
| [https://www.mediawiki.org/wiki/Extension:ParserFunctions ParserFunctions]
+
|[[mw:Extension:Elastica|Elastica]]
| Enhances the wikitext parser with helpful functions, mostly related to logic and string-handling.
+
|Base Elasticsearch functionality by providing the Elastica library; required by CirrusSearch.
| Continuous maintenance
+
|Continuous
| Bundled
+
|Yes
| Yes
+
|Yes
| Yes
+
|Yes
| Yes
+
|
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:PdfHandler PdfHandler]
 
| The PdfHandler extension shows uploaded pdf files in a multipage preview layout.
 
 
 
With the Proofread Page extension, pdfs can be displayed side-by-side with text. This allows users to transcribe books and other documents.
 
| Continuous
 
| Bundled
 
| Disabled
 
| Yes
 
| UNUSED
 
 
|-
 
|-
| [https://www.mediawiki.org/wiki/Extension:Pipe_Escape PipeEscape]
+
|[[mw:Extension:Nuke|Nuke]]
| The Pipe Escape extension allows for pipe characters in parser function arguments (and template argument calls) avoid being interpreted as an argument delimiter. This is primarily for the purpose of using wiki tables (or parts thereof) inside parser function calls or templates.  
+
|The Nuke extension makes it possible for sysops to [https://demo.qualitybox.us/wiki/Special:Nuke mass delete pages].
| Old but stable
+
|Continuous
| Bundled
+
|Bundled
| Yes
+
|No
| Yes
+
|Yes
| Included via DcsSetup
+
|For whatever reason, the DCSNuke extension intercepts page requests for the Nuke special page. DCSNuke has no added functionality. The DCSNuke code is roughly equivalent to the REL1_20 release of Nuke; and the current Nuke extension offers more functionality. I thought that potentially the reason to use a cloned extension was to totally customize the interface language strings, but that's not the case<ref>meld <(curl https://raw.githubusercontent.com/debtcompliance/mediawiki/master/extensions/DcsNuke/i18n/en.json?token=AACV4LWLt32dJzNg2zqcDRP_QZ6ecfOvks5bDx4MwA%3D%3D) <(curl https://raw.githubusercontent.com/wikimedia/mediawiki-extensions-Nuke/master/i18n/en.json)</ref>. Remove DCSNuke.
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:Poem Poem]
 
| The Poem extension allows easy formatting of poems and similar material within Wikitext. Once the extension is enabled, you can put any block of text within <nowiki><poem></poem></nowiki> tags
 
| Continuous updates
 
| Bundled
 
| No
 
| Yes
 
| UNUSED
 
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:Renameuser Renameuser]
 
| The Renameuser extension provides a special page which allows authorized users to rename user accounts. This will cause page histories, etc. to be updated. If you want to rename an account "into" another, already existing one, you need the User Merge and Delete extension.
 
| Continuous updates
 
| Bundled
 
| No
 
| Yes
 
| UNUSED
 
 
|-
 
|-
| [https://www.mediawiki.org/wiki/Extension:SimpleMathJax SimpleMathJax]
+
|[[mw:Extension:ParserFunctions|ParserFunctions]]
| The SimpleMathJax extension enables MathJax, a Javascript library, for typesetting TeX formula in MediaWiki inside math environments. This extension will load resources from cdnjs.cloudflare.com on all wiki pages that have math or chem tags.
+
|Enhances the wikitext parser with helpful functions, mostly related to logic and string-handling.
| Regular maintenance
+
|Continuous maintenance
| No, WMF uses the Math extension
+
|Bundled
| Yes
+
|Yes
| Yes
+
|Yes
| included by DcsSetup.php
+
|
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:SpamBlacklist SpamBlacklist]
 
| The SpamBlacklist extension prevents edits that contain URLs whose domains match regular expression patterns defined in specified files or wiki pages and registration by users using specified email addresses.
 
 
 
When someone tries to save a page, SpamBlacklist checks the text against a (potentially very large) list of illegal host names. If there is a match, the extension displays an error message to the user and refuses to save the page.
 
| Continuous updates
 
| Bundled
 
| No
 
| No
 
| UNUSED
 
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:SyntaxHighlight SyntaxHighlight_GeSHi] (now known simply as SyntaxHighlight)
 
| Provides rich formatting of source code using the <nowiki><syntaxhighlight></nowiki> tag. It is powered by the Pygments library and supports hundreds of different programming languages and file formats.
 
| continuous updates
 
| Bundled
 
| Yes
 
| Yes
 
| UNUSED
 
|- style="background:#90989e;"
 
| [https://www.mediawiki.org/wiki/Extension:TitleBlacklist TitleBlacklist]
 
| Combat spam and vandalism. Allows wiki administrators to block the creation, movement and upload of pages, the title of which matches one or more regular expressions, as well as blocking creation of accounts with matching usernames. (Prevent account creation by "he who shall not be named" or prevent pages like "Sh*t".
 
| 1.5.0 (2014-03-29) some oversight by WMF
 
| Bundled
 
| No
 
| No
 
| UNUSED
 
 
|-
 
|-
| [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor]
+
|[[mw:Extension:Pipe_Escape|PipeEscape]]
| The WikiEditor extension provides an improved interface for editing wikitext. It is the wikitext editing interface that Wikipedia started using in 2010 for desktop users, and so it is sometimes called the "2010 wikitext editor".  
+
|The Pipe Escape extension allows for pipe characters in parser function arguments (and template argument calls) avoid being interpreted as an argument delimiter. This is primarily for the purpose of using wiki tables (or parts thereof) inside parser function calls or templates.
| 0.5.1 (2016-04-15) some oversight by WMF
+
|Old but stable
| Bundled
+
|Bundled
| Yes
+
|Yes
| Yes
+
|Yes
| Yes
+
|Included via DcsSetup
 
|-
 
|-
|}
+
|[[mw:Extension:SimpleMathJax|SimpleMathJax]]
 
+
|The SimpleMathJax extension enables MathJax, a Javascript library, for typesetting TeX formula in MediaWiki inside math environments. This extension will load resources from cdnjs.cloudflare.com on all wiki pages that have math or chem tags.
== Custom DCS Extensions ==
+
|Regular maintenance
 
+
|No, WMF uses the Math extension
{| class="wikitable sortable"
+
|Yes
 +
|Yes
 +
|included by DcsSetup.php
 
|-
 
|-
! Extension
+
|[[mw:Extension:WikiEditor|WikiEditor]]
! Purpose
+
|The WikiEditor extension provides an improved interface for editing wikitext. It is the wikitext editing interface that Wikipedia started using in 2010 for desktop users, and so it is sometimes called the "2010 wikitext editor".
! Last release
+
|0.5.1 (2016-04-15) some oversight by WMF
! Example usage + notes
+
|Bundled
 +
|Yes
 +
|Yes
 +
|
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsamendments DcsAmmendments]
+
|[https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsamendments DcsAmmendments]
| Adds ammendments section to DCS loan pages. Sysop (only) can add/delete/edit/re-order (up/down) the ammendments; UX [https://github.com/debtcompliance/mediawiki/blob/master/extensions/DcsAmmendments/modules/dcsammendments.js implemented in JavaScript]. Extends the API with the same functions. Adds new log type: amendments; and logs all actions.
+
|Adds ammendments section to DCS loan pages. Sysop (only) can add/delete/edit/re-order (up/down) the ammendments; UX [https://github.com/debtcompliance/mediawiki/blob/master/extensions/DcsAmmendments/modules/dcsammendments.js implemented in JavaScript]. Extends the API with the same functions. Adds new log type: amendments; and logs all actions.
| Jan 2018 - new sort functionality ready for testing
+
|Jan 2018 - new sort functionality ready for testing
| https://clienttest.dm.dcstemporary.com/ARCA14:1.5_Time_References
+
| no
 +
| no
 +
| no
 +
|https://clienttest.dm.dcstemporary.com/ARCA14:1.5_Time_References
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsbaskets DcsBaskets]
+
|[https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsbaskets DcsBaskets]
| This extension allows the utilization column of the Baskets tables to be edited directly using AJAX and saving values into 'basket' tables rather than in the traditional wiki-text revision tables.
+
|This extension allows the utilization column of the Baskets tables to be edited directly using AJAX and saving values into 'basket' tables rather than in the traditional wiki-text revision tables.
| 1.4.3, 2018-05-25
+
|1.4.3, 2018-05-25
| "Baskets" can be found in the hierarchy list of the leftnav under the 'Compliance' folder. The page name, by convention, is 'Baskets' e.g. https://clienttest.dm.dcstemporary.com/Baskets  This is really neat, and very advanced.  However, now that Visual Editor is available, I'd suspect that the user experience of editing large tables in Visual Editor would be much better. '''Replace Baskets with Visual Editor'''
+
| no
 +
| no
 +
| no
 +
|"Baskets" can be found in the hierarchy list of the leftnav under the 'Compliance' folder. The page name, by convention, is 'Baskets' e.g. https://clienttest.dm.dcstemporary.com/Baskets  This is really neat, and very advanced.  However, now that Visual Editor is available, I'd suspect that the user experience of editing large tables in Visual Editor would be much better. '''Replace Baskets with Visual Editor'''
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcscommon DcsCommon]
+
|[https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcscommon DcsCommon]
| Cookie handling was [https://github.com/debtcompliance/mediawiki/commit/41b4c2a9af447c25143da7e39d959dae3affd0c8#diff-dfec3a4f5a263c72b06f5ceafcac3408 added on June 14, 2017]. The code (the cookie.js part) is from a project called [https://github.com/js-cookie/js-cookie/blob/master/src/js.cookie.js js-cookie]. So, we could update that code. Or, we could replace it with internal functions so we don't rely on 3rd party code. See the API documentation for [https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw.cookie mw.cookie] (Does '''not''' use the $wgCookieSecure configuration variable since 'detect' could not work with
+
|Cookie handling was [https://github.com/debtcompliance/mediawiki/commit/41b4c2a9af447c25143da7e39d959dae3affd0c8#diff-dfec3a4f5a263c72b06f5ceafcac3408 added on June 14, 2017]. The code (the cookie.js part) is from a project called [https://github.com/js-cookie/js-cookie/blob/master/src/js.cookie.js js-cookie]. So, we could update that code. Or, we could replace it with internal functions so we don't rely on 3rd party code. See the API documentation for [https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw.cookie mw.cookie] (Does '''not''' use the $wgCookieSecure configuration variable since 'detect' could not work with
 
ResourceLoaderStartUpModule; as module cache is not fragmented by protocol.) The mw.cookie (JavaScript) code is syntactically and functionally similar to the server-side cookie API (`[https://doc.wikimedia.org/mediawiki-core/master/php/classWebRequest.html#aa952980c6053a1e23c3ce673eb0f1d6d WebRequest#getCookie]` and `[https://doc.wikimedia.org/mediawiki-core/master/php/classWebResponse.html#a92cfd006677a1d96c3cee8ee3edcccd3 WebResponse#setcookie]`).
 
ResourceLoaderStartUpModule; as module cache is not fragmented by protocol.) The mw.cookie (JavaScript) code is syntactically and functionally similar to the server-side cookie API (`[https://doc.wikimedia.org/mediawiki-core/master/php/classWebRequest.html#aa952980c6053a1e23c3ce673eb0f1d6d WebRequest#getCookie]` and `[https://doc.wikimedia.org/mediawiki-core/master/php/classWebResponse.html#a92cfd006677a1d96c3cee8ee3edcccd3 WebResponse#setcookie]`).
  
https://www.mediawiki.org/wiki/Manual:Hooks/UserSetCookies is deprecated as of REL1_27, and session-handling extensions should be subclassing CookieSessionProvider. [https://www.mediawiki.org/wiki/Manual:$wgSessionProviders $wgSessionProviders]
+
https://www.mediawiki.org/wiki/Manual:Hooks/UserSetCookies is deprecated as of REL1_27, and session-handling extensions should be subclassing CookieSessionProvider. [[mw:Manual:$wgSessionProviders|$wgSessionProviders]]
  
The class creates methods for outputting messages, notices, dates, getting [https://gerrit.wikimedia.org/g/mediawiki/core/+/master/includes/content/ContentHandler.php#86 raw content].
+
The class creates methods for outputting messages, notices, dates, getting [[git:mediawiki/core/+/master/includes/content/ContentHandler.php#86|raw content]].
  
 
It loads some javascript (through resource loader). That [https://github.com/debtcompliance/mediawiki/blob/master/extensions/DcsCommon/modules/dcscommon.js javascript] could more easily be maintained as MediaWiki:Common.js? although there may be load order issues.  The JS defines like-named methods with varying features. E.g. <blockquote>Check if the passed page title string is in a loan namespace, returns boolean. Note that this function only checks if the namespace is in the list of all loan namespaces, it doesn't do any checks for whether the namespace is in use, or whether the title is in a DCS_TOC article like the DcsCommon::isLoanPage PHP function.</blockquote>
 
It loads some javascript (through resource loader). That [https://github.com/debtcompliance/mediawiki/blob/master/extensions/DcsCommon/modules/dcscommon.js javascript] could more easily be maintained as MediaWiki:Common.js? although there may be load order issues.  The JS defines like-named methods with varying features. E.g. <blockquote>Check if the passed page title string is in a loan namespace, returns boolean. Note that this function only checks if the namespace is in the list of all loan namespaces, it doesn't do any checks for whether the namespace is in use, or whether the title is in a DCS_TOC article like the DcsCommon::isLoanPage PHP function.</blockquote>
Line 239: Line 118:
  
 
The 'common' extension creates a singleton instance of the DcsCommon class that does a bunch of things according to [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcscommon notes in the wiki]. The permissions shouldn't really be hidden away in the class code. They should simply be in LocalSettings.php. onUserGetRights() is a big function.  The 'self:cache' is mostly called in connection with 'isLocal'. Any true caching should just be offloaded to APC and memcache. Although there is no 'dcs' table in the database on dcsTemporary, the [https://github.com/debtcompliance/mediawiki/blob/master/extensions/DcsCommon/DcsCommon.php#L653 setData()] method is used throughout the codebase so should update [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcscommon wiki] about where this data is stored.
 
The 'common' extension creates a singleton instance of the DcsCommon class that does a bunch of things according to [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcscommon notes in the wiki]. The permissions shouldn't really be hidden away in the class code. They should simply be in LocalSettings.php. onUserGetRights() is a big function.  The 'self:cache' is mostly called in connection with 'isLocal'. Any true caching should just be offloaded to APC and memcache. Although there is no 'dcs' table in the database on dcsTemporary, the [https://github.com/debtcompliance/mediawiki/blob/master/extensions/DcsCommon/DcsCommon.php#L653 setData()] method is used throughout the codebase so should update [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcscommon wiki] about where this data is stored.
| recent
+
|recent
| pervasive
+
| no
 +
| no
 +
| no
 +
|pervasive
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Compliance-Checklist DcsComplianceChecklist]
+
|[https://github.com/debtcompliance/mediawiki/wiki/Compliance-Checklist DcsComplianceChecklist]
| Provides a dropdown list of loans and responsibility terms by which the table can be filtered on the Checklist page (by convention). The parser function creates the page contents and form controls.
+
|Provides a dropdown list of loans and responsibility terms by which the table can be filtered on the Checklist page (by convention). The parser function creates the page contents and form controls.
| recent (2017 - 2018)
+
|recent (2017 - 2018)
| e.g. https://clienttest.dm.dcstemporary.com/Checklist
+
| no
 +
| no
 +
| no
 +
|e.g. https://clienttest.dm.dcstemporary.com/Checklist
 
|-
 
|-
| DcsComplianceChecklist2  
+
|DcsComplianceChecklist2
| purpose?
+
|purpose?
| release?
+
|release?
| only used in the '''checktest''' subdomain, or when `wgLocalTesting`; intention is to use a timestamp condition
+
| no
 +
| no
 +
| no
 +
|only used in the '''checktest''' subdomain, or when `wgLocalTesting`; intention is to use a timestamp condition
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/tree/master/extensions/DcsEmailLink DcsEmailLink]
+
|[https://github.com/debtcompliance/mediawiki/tree/master/extensions/DcsEmailLink DcsEmailLink]
| Allows you to send a link to a page in the wiki. Activated by the "Email Link" item in the primary navigation across the top of the page. Similar to the "Email Page" extension by Aran, which is also used.
+
|Allows you to send a link to a page in the wiki. Activated by the "Email Link" item in the primary navigation across the top of the page. Similar to the "Email Page" extension by Aran, which is also used.
| 11 months ago
+
|11 months ago
| visit any page
+
| no
 +
| no
 +
| no
 +
|visit any page
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsexportterms DcsExportTerms]
+
|[https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsexportterms DcsExportTerms]
| Allows terms to be downloaded in Comma Separated Value (CSV) format. CSV is easily imported to a spreadsheet.
+
|Allows terms to be downloaded in Comma Separated Value (CSV) format. CSV is easily imported to a spreadsheet.
| recent
+
|recent
| Visit https://clienttest.dm.dcstemporary.com/Category:Terms and you will see a "Export Terms" action in the primary navigation across the top of the page.
+
| no
 +
| no
 +
| no
 +
|Visit https://clienttest.dm.dcstemporary.com/Category:Terms and you will see a "Export Terms" action in the primary navigation across the top of the page.
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsfindtitle DcsFindTitle]
+
|[https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsfindtitle DcsFindTitle]
| helps to find a title regardless of case-sensitivity of the system.
+
|helps to find a title regardless of case-sensitivity of the system.
| recent
+
|recent
| integrates with the API, however I'm unsure where it's visible/usable to the user. I believe it's used from the Ruby side to create links that will match a wiki page even if there is a case mismatch.  If you wish to navigate to https://clienttest.dm.dcstemporary.com/ARCA14:TOC but request https://clienttest.dm.dcstemporary.com/arca14:toc instead, you'll get a 404 Not Found error. If you request https://clienttest.dm.dcstemporary.com/arca14:toc?action=findtitle then you will be redirected to the proper article.
+
| no
 +
| no
 +
| no
 +
|integrates with the API, however I'm unsure where it's visible/usable to the user. I believe it's used from the Ruby side to create links that will match a wiki page even if there is a case mismatch.  If you wish to navigate to https://clienttest.dm.dcstemporary.com/ARCA14:TOC but request https://clienttest.dm.dcstemporary.com/arca14:toc instead, you'll get a 404 Not Found error. If you request https://clienttest.dm.dcstemporary.com/arca14:toc?action=findtitle then you will be redirected to the proper article.
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsgroupadmin DcsGroupAdmin]
+
|[https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsgroupadmin DcsGroupAdmin]
| Leverages the DcsBlockPageAccess hook to allow/disallow access to files and namespaces.
+
|Leverages the DcsBlockPageAccess hook to allow/disallow access to files and namespaces.
| recent
+
|recent
| https://clienttest.dm.dcstemporary.com/Special:DcsGroupAdmin/equality
+
| no
 +
| no
 +
| no
 +
|https://clienttest.dm.dcstemporary.com/Special:DcsGroupAdmin/equality
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/tree/master/extensions/DcsJobAdmin DcsJobAdmin]
+
|[https://github.com/debtcompliance/mediawiki/tree/master/extensions/DcsJobAdmin DcsJobAdmin]
| See [https://github.com/debtcompliance/mediawiki/wiki/Background-jobs Background info on Background jobs]. Creates a Special Page [https://clienttest.dm.dcstemporary.com/Special:DcsJobAdmin Special:DcsJobAdmin] where you can start a new job; or view current and historical jobs.  Each job type loads it's own form into the Admin page. The job runner extends the Maintenance class, and loops over running jobs to provide some progress reporting. It saves the most recent 10 jobs to a 'history' list.
+
|See [https://github.com/debtcompliance/mediawiki/wiki/Background-jobs Background info on Background jobs]. Creates a Special Page [https://clienttest.dm.dcstemporary.com/Special:DcsJobAdmin Special:DcsJobAdmin] where you can start a new job; or view current and historical jobs.  Each job type loads it's own form into the Admin page. The job runner extends the Maintenance class, and loops over running jobs to provide some progress reporting. It saves the most recent 10 jobs to a 'history' list.
 
There are functions in the code for:
 
There are functions in the code for:
 +
 
* Return a list of the currently running jobs sorted by start time.
 
* Return a list of the currently running jobs sorted by start time.
 
* Add a job to the 'history' list of jobs executed (list is limited to 10 items).
 
* Add a job to the 'history' list of jobs executed (list is limited to 10 items).
Line 290: Line 191:
 
** UpgradeAttachments
 
** UpgradeAttachments
  
Each (or almost all?) PHP file is backed by a perl file which was the basis for the PHP development. Everything is written twice because it all started back when the best framework for handling MediaWiki jobs was a perl bot framework. Things have changed significantly over the recent past for [https://www.mediawiki.org/wiki/Manual:Job_queue MediaWiki's job queue].
+
Each (or almost all?) PHP file is backed by a perl file which was the basis for the PHP development. Everything is written twice because it all started back when the best framework for handling MediaWiki jobs was a perl bot framework. Things have changed significantly over the recent past for [[mw:Manual:Job_queue|MediaWiki's job queue]].
  
 
According to [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsjobadmin the documentation], it allows you to manage jobs. But, I'm wondering how much this is actually used? The job queue should be run automatically by cron, and the administrative user shouldn't have to worry about it really. If there is a usage pattern where job execution is time sensitive, there is a use for an Admin function; but I'm curious about the usage patterns that create large or numerous jobs.  Otherwise, set wgJobRunRate to zero, and put it into cron `0 0 * * * root /usr/bin/php /var/www/example.com/www/w/maintenance/runJobs.php > /var/log/runJobs.log 2>&1`
 
According to [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsjobadmin the documentation], it allows you to manage jobs. But, I'm wondering how much this is actually used? The job queue should be run automatically by cron, and the administrative user shouldn't have to worry about it really. If there is a usage pattern where job execution is time sensitive, there is a use for an Admin function; but I'm curious about the usage patterns that create large or numerous jobs.  Otherwise, set wgJobRunRate to zero, and put it into cron `0 0 * * * root /usr/bin/php /var/www/example.com/www/w/maintenance/runJobs.php > /var/log/runJobs.log 2>&1`
| 2018-05-25
+
|2018-05-25
| yes
+
| no
 +
| no
 +
| no
 +
|
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsloanpages DcsLoanPages]
+
|[https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsloanpages DcsLoanPages]
| creates "backlinks" which are links to content that contain a particular keyword or phrase found in a loan document. It also creates the <nowiki>"< Prev" and "Next >"</nowiki> navigation links (called 'breadcrumbs' in the code, but actually these are 'pager' links not breadcrumbs).
+
|creates "backlinks" which are links to content that contain a particular keyword or phrase found in a loan document. It also creates the <nowiki>"< Prev" and "Next >"</nowiki> navigation links (called 'breadcrumbs' in the code, but actually these are 'pager' links not breadcrumbs).
| recent
+
|recent
| If you go to a page like https://clienttest.dm.dcstemporary.com/ARCA14:Agreement You will see a large section of content called '''Index to ARCA14 pages containing "Agreement""'' So, in other words, it's a list of links to pages of the ARCA14 loan that have the word "Agreement" in them. These links are created by the extension.
+
| no
 +
| no
 +
| no
 +
|If you go to a page like https://clienttest.dm.dcstemporary.com/ARCA14:Agreement You will see a large section of content called '''Index to ARCA14 pages containing "Agreement""'' So, in other words, it's a list of links to pages of the ARCA14 loan that have the word "Agreement" in them. These links are created by the extension.
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsnamespaces DcsNamespaces]
+
|[https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsnamespaces DcsNamespaces]
| Manages the segregation of loan documents into their own separate namespaces. Also provides some functionality around moving/deleting/renaming namespaces via the https://clienttest.dm.dcstemporary.com/Special:DcsNamespaces special page.
+
|Manages the segregation of loan documents into their own separate namespaces. Also provides some functionality around moving/deleting/renaming namespaces via the https://clienttest.dm.dcstemporary.com/Special:DcsNamespaces special page.
| recent
+
|recent
| e.g. https://clienttest.dm.dcstemporary.com/Special:DcsNamespaces
+
| no
 +
| no
 +
| no
 +
|e.g. https://clienttest.dm.dcstemporary.com/Special:DcsNamespaces
 
|-
 
|-
| DcsNuke
+
|DcsNuke
| purpose?
+
|purpose?
| release?
+
|release?
| yes. REPLACE with [https://www.mediawiki.org/wiki/Extension:Nuke standard Nuke extension]
+
| no
 +
| no
 +
| no
 +
| REPLACE with [[mw:Extension:Nuke|standard Nuke extension]]
 
|-
 
|-
| DcsSearch
+
|DcsSearch
| Extends the Elasticsearch backend with additional business logic, and new features and UX (saving search "favorites" and indexing link paths traversed in connection with a search query). See https://github.com/debtcompliance/mediawiki/wiki/Search-&-sorting
+
|Extends the Elasticsearch backend with additional business logic, and new features and UX (saving search "favorites" and indexing link paths traversed in connection with a search query). See https://github.com/debtcompliance/mediawiki/wiki/Search-&-sorting
| a year ago
+
|a year ago
| e.g. See the "heart" symbol next to the search box which implements the "favorites" feature.
+
| no
 +
| no
 +
| no
 +
|e.g. See the "heart" symbol next to the search box which implements the "favorites" feature.
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcssection DcsSection]
+
|[https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcssection DcsSection]
| Allows for loan documents to be imported into the wiki as multiple articles.  Creates a 'section reference' capability.
+
|Allows for loan documents to be imported into the wiki as multiple articles.  Creates a 'section reference' capability.
| in progress (v2)
+
|in progress (v2)
|  
+
| no
 +
| no
 +
| no
 +
|
 
|-
 
|-
| DcsSection2
+
|DcsSection2
| purpose?
+
|purpose?
| release?
+
|release?
| NO - at least not on the development machine which is a clone of production.
+
| no
 +
| no
 +
| no
 +
| Unused - at least not on the development machine which is a clone of production.
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/SSO-2017-specification DcsSingleSignOn]
+
|[https://github.com/debtcompliance/mediawiki/wiki/SSO-2017-specification DcsSingleSignOn]
| Create a master/slave relationship with the Ruby on Rails application as the authentication and group mangement source; with the MediaWiki application synchronizing user information into it's local database.
+
|Create a master/slave relationship with the Ruby on Rails application as the authentication and group mangement source; with the MediaWiki application synchronizing user information into it's local database.
| 2017 major update
+
|2017 major update
 +
| no
 +
| no
 +
| no
 
| For testing, you can access /wiki/extensions/dcs/DcsSingleSignOn/testLogin.php
 
| For testing, you can access /wiki/extensions/dcs/DcsSingleSignOn/testLogin.php
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki#the-dcs-skin DcsSkin]
+
|[https://github.com/debtcompliance/mediawiki/wiki#the-dcs-skin DcsSkin]
| Custom 'style' to match DCS website / frontend
+
|Custom 'style' to match DCS website / frontend QAR app
| recent
+
| 3.0.2, 2016-07-01
| Yes
+
| no
 +
| no
 +
| no
 +
| Skin by Aran Dunkley
 +
|-
 +
|[https://github.com/debtcompliance/mediawiki/wiki/The-DcsTitle-class DcsTitle]
 +
|Extends the regular MediaWiki title object class. Creates a custom cache of the TOC.
 +
|recent
 +
| no
 +
| no
 +
| no
 +
|yes
 +
|-
 +
|[https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsuploadedfiles DcsUploadedFiles]
 +
|Creates a special page listing all the files uploaded to loan documents orderd by loan namepsace then by article
 +
|a year ago
 +
| no
 +
| no
 +
| no
 +
|https://clienttest.dm.dcstemporary.com/Special:DcsUploadedFiles
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/The-DcsTitle-class DcsTitle]
+
|DcsUserDisable
| Extends the regular MediaWiki title object class. Creates a custom cache of the TOC.
+
|Adds 'enable/disable' links to the User list
| recent
+
|a year ago
| yes
+
| no
 +
| no
 +
| no
 +
|https://clienttest.dm.dcstemporary.com/Special:ListUsers Why not use the [https://clienttest.dm.dcstemporary.com/Special:Block Special:Block] functionality built into core?I believe it's every bit as accessible through the API and thus could be used from QAR.
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcsuploadedfiles DcsUploadedFiles]
+
|[https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcswatchcomments DcsWatchComments]
| Creates a special page listing all the files uploaded to loan documents orderd by loan namepsace then by article
+
|Adds subscription to talk pages.
| a year ago
+
|release?
| https://clienttest.dm.dcstemporary.com/Special:DcsUploadedFiles
+
| no
 +
| no
 +
| no
 +
|When I view my normal [https://clienttest.dm.dcstemporary.com/Special:EditWatchlist MediaWiki 'WatchList'], I don't see any loan talk pages added. I only see my user page.
 
|-
 
|-
| DcsUserDisable
+
|Extension
| Adds 'enable/disable' links to the User list
+
|What does it do? (explain functionality by role: regular-user, talk-editor, client-admin, or sysop)
| a year ago
+
|Maintenance / Last release
| https://clienttest.dm.dcstemporary.com/Special:ListUsers Why not use the [https://clienttest.dm.dcstemporary.com/Special:Block Special:Block] functionality built into core?I believe it's every bit as accessible through the API and thus could be used from QAR.
+
|Used by WMF
 +
|Used by Meza
 +
|Used by QualityBox
 +
|Example / Notes / Alternatives?
 
|-
 
|-
| [https://github.com/debtcompliance/mediawiki/wiki/Extensions#dcswatchcomments DcsWatchComments]
+
|
| Adds subscription to talk pages.
+
|
| release?
+
|
| When I view my normal [https://clienttest.dm.dcstemporary.com/Special:EditWatchlist MediaWiki 'WatchList'], I don't see any loan talk pages added. I only see my user page.
+
|
 +
|
 +
|
 +
|
 
|-
 
|-
|}
+
|[https://github.com/OrganicDesign/extensions/tree/master/MediaWiki/AjaxComments AjaxComments]
 
+
|
== Organic Design extensions ==
+
|
ONLY extensions marked with ** are actually used by DCS
+
|
 
+
|
# <span style="background:#90989e;">Accordian</span>
+
|
# <span style="background:#90989e;">AddLinkClasses</span>
+
|
# [https://github.com/OrganicDesign/extensions/tree/master/MediaWiki/AjaxComments AjaxComments] **
 
# <span style="background:#90989e;">ArticleProperties</span>
 
# <span style="background:#90989e;">Bliki</span>
 
# <span style="background:#90989e;">CodeTidy</span>
 
# <span style="background:#90989e;">CurrentPages</span>
 
# <span style="background:#90989e;">CurrentUsers</span>
 
# <span style="background:#90989e;">Download</span>
 
# [https://www.mediawiki.org/wiki/Extension:EmailPage EmailPage] ** Adds a special page that allows you to send the rendered contents of a wiki page to a recipient. Activated by the "Email" item in the primary navigation across the top of the page.
 
# <span style="background:#90989e;">EmailToWiki</span>
 
# <span style="background:#90989e;">EximMailList</span>
 
# [https://github.com/OrganicDesign/extensions/blob/master/MediaWiki/ExtraMagic/ExtraMagic_body.php ExtraMagic] ** Adds extra [https://www.mediawiki.org/wiki/Help:Magic_words Magic Words] and Parser functions.
 
# <span style="background:#90989e;">FaceBook</span>
 
# <span style="background:#90989e;">FileAttach</span>
 
# <span style="background:#90989e;">FormMailer</span>
 
# <span style="background:#90989e;">HighlightJS</span>
 
# <span style="background:#90989e;">InterWiki</span>
 
# [https://github.com/OrganicDesign/extensions/tree/master/MediaWiki/jQueryUpload jQueryUpload] ** v1.4.5, 2016-08-28
 
# <span style="background:#90989e;">jQueryUpload2</span>
 
# <span style="background:#90989e;">Ligmincha</span>
 
# <span style="background:#90989e;">LinkAttributes</span>
 
# <span style="background:#90989e;">LinkTree</span>
 
# <span style="background:#90989e;">NukeDPL</span>
 
# <span style="background:#90989e;">ODMaps</span>
 
# <span style="background:#90989e;">OrganicDesign</span>
 
# [https://www.mediawiki.org/wiki/Extension:PdfBook PdfBook] ** The PdfBook extension composes a book from articles in a category and exports as a PDF file.
 
# <span style="background:#90989e;">RecentActivity</span>
 
# <span style="background:#90989e;">SimpleCalendar</span>
 
# <span style="background:#90989e;">TransformChanges</span>
 
# [https://www.mediawiki.org/wiki/Extension:TreeAndMenu TreeAndMenu] ** makes bullet lists into folder trees or dynamic drop-down menus.<br /><br />The drop-down menu functionality uses Son of Suckerfish which is 99% CSS, and the tree component is now using the FancyTree jQuery plugin rather than the dTree used in previous version of the TreeAndMenu extension. The new FancyTree has many options and plugins and is very extendable, please view the site and examples for more detail.
 
# <span style="background:#90989e;">UserLoginLog</span>
 
# <span style="background:#90989e;">UserProfiles</span>
 
# <span style="background:#90989e;">Variables</span>
 
# <span style="background:#90989e;">WebSocket</span>
 
# <span style="background:#90989e;">WikiaAdmin</span>
 
# <span style="background:#90989e;">WikiaInfo</span>
 
 
 
 
 
 
 
 
 
 
 
== Double Check ==
 
This is what you'll see reported by the "[https://clienttest.dm.dcstemporary.com/Special:Version Special:Version]" page of the wiki.  This page shows you exactly what extensions and versions of software are installed and activated on your wiki.
 
 
 
=== Installed skins ===
 
 
 
{| class="wikitable sortable"
 
|-
 
| align=center| '''Skin'''
 
| align=center| '''Version'''
 
| align=center| '''License'''
 
| align=center| '''Description'''
 
| align=center| '''Authors'''
 
 
|-
 
|-
| | [https://www.mediawiki.org/wiki/Skin:Cologne_Blue Cologne Blue]
+
|[[mw:Extension:EmailPage|EmailPage]]  
| |
+
| Adds a special page that allows you to send the rendered contents of a wiki page to a recipient. Activated by the "Email" item in the primary navigation across the top of the page.
| | [https://clienttest.dm.dcstemporary.com/Special:Version/License/Cologne_Blue GPL-2.0+]
+
|
| | A lightweight skin with minimal formatting
+
|
| | Lee Daniel Crocker and others
+
|
 +
|
 +
|
 
|-
 
|-
| [http://www.debtcompliance.com/ DcsSkin]
+
|[https://github.com/OrganicDesign/extensions/blob/master/MediaWiki/ExtraMagic/ExtraMagic_body.php ExtraMagic]  
| | 3.0.2, 2016-07-01
+
|Adds extra [[mw:Help:Magic_words|Magic Words]] and Parser functions.
| |
+
|
| | DCS skin desgined to match the QAR app
+
|
| | [http://www.organicdesign.co.nz/aran Aran Dunkley]
+
|
 +
|
 +
|
 
|-
 
|-
| [https://www.mediawiki.org/wiki/Skin:Modern Modern]
+
|[https://github.com/OrganicDesign/extensions/tree/master/MediaWiki/jQueryUpload jQueryUpload]  
|
+
|
| | [https://clienttest.dm.dcstemporary.com/Special:Version/License/Modern GPL-2.0+]
+
|v1.4.5, 2016-08-28
| | A blue/gray theme with sidebar and top bar. Derived from MonoBook
+
|
| | River Tarnell and others
+
|
 +
|
 +
|
 
|-
 
|-
| | [https://www.mediawiki.org/wiki/Skin:MonoBook MonoBook]
+
|[[mw:Extension:PdfBook|PdfBook]]  
| |
+
|The PdfBook extension composes a book from articles in a category and exports as a PDF file.
| | [https://clienttest.dm.dcstemporary.com/Special:Version/License/MonoBook GPL-2.0+]
+
|
| | The classic MediaWiki skin since 2004, named after the black-and-white photo of a book in the page background
+
|
| | Gabriel Wicke and others
+
|
 +
|
 +
|
 
|-
 
|-
| | [https://www.mediawiki.org/wiki/Skin:Vector Vector]
+
|[[mw:Extension:TreeAndMenu|TreeAndMenu]]
|
+
|Makes bullet lists into folder trees or dynamic drop-down menus.<br /><br />The drop-down menu functionality uses Son of Suckerfish which is 99% CSS, and the tree component is now using the FancyTree jQuery plugin rather than the dTree used in previous version of the TreeAndMenu extension. The new FancyTree has many options and plugins and is very extendable, please view the site and examples for more detail.
|  | [https://clienttest.dm.dcstemporary.com/Special:Version/License/Vector GPL-2.0+]
+
|
| | Modern version of MonoBook with fresh look and many usability improvements
+
|
| | Trevor Parscal, Roan Kattouw and others
+
|
 
+
|
 
+
|
 
|-
 
|-
 
|}
 
|}
  
=== Installed extensions ===
+
== Double Check ==
 +
You can visit the "[https://clienttest.dm.dcstemporary.com/Special:Version Special:Version]" page of the wiki.  This page shows you exactly what extensions and versions of software are installed and activated on your wiki.
  
{| class="wikitable sortable"
 
|-
 
| colspan="5"  align=center| '''Special pages'''
 
|- style="background-color:#f2f2f2;border:0.05pt solid #aaaaaa;padding:0.0194in;"
 
| align=center| '''Extension'''
 
| align=center| '''Version'''
 
| align=center| '''License'''
 
| align=center| '''Description'''
 
| align=center| '''Authors'''
 
|-
 
|  | [http://www.debtcompliance.com/ DcsGroupAdmin]
 
|  | 1.2.0, 2015-06-26
 
 
|  | A special page for managing DCS groups and access
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsJobAdmin]
 
|  | 4.0.0, 2017-06-28
 
 
|  | A special page for managing DCS jobs that run in the background
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsSearch]
 
|  | 2.4.2, 2017-01-27
 
 
|  | Renders the search dropdown with favourite terms list, and allows users to track the pages they've visited from search results of their favorite terms
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsUploadedFiles]
 
|  | 1.3.0, 2017-07-08
 
 
|  | A special page for listing the files uploaded to loan pages
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [https://www.mediawiki.org/wiki/Extension:EmailPage EmailPage]
 
|  | 2.4.4, 2017-04-26
 
|  | [https://clienttest.dm.dcstemporary.com/Special:Version/License/EmailPage GPL-2.0+]
 
|  | Send rendered HTML page to an e-mail address or list of addresses using&nbsp;[http://phpmailer.sourceforge.net/ phpmailer]
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.organicdesign.co.nz/jQueryUpload jQueryUpload]
 
|  | 1.4.5, 2016-08-28
 
|  | [https://www.gnu.org/licenses/gpl-2.0.html GNU ][https://www.gnu.org/licenses/gpl-2.0.html General Public Licence 2.0]&nbsp;or later
 
|  | Allows files to be uploaded to the wiki or to specific pages using the jQueryFileUpload module
 
|  | [http://www.organicdesign.co.nz/aran Aran ][http://www.organicdesign.co.nz/aran Dunkley]&nbsp;and&nbsp;[http://blueimp.net/ Sebastian Tschan]
 
|-
 
|  | [https://www.mediawiki.org/wiki/Extension:Nuke Nuke]
 
|  | 1.2.0
 
|  | [https://clienttest.dm.dcstemporary.com/Special:Version/License/Nuke GPL-2.0+]
 
|  | Gives administrators the ability to&nbsp;[https://clienttest.dm.dcstemporary.com/Special:Nuke mass delete]&nbsp;pages
 
|  | Brion Vibber and Jeroen De Dauw
 
|-
 
| colspan="5" |
 
|- style="background-color:#f2f2f2;border:0.05pt solid #aaaaaa;padding:0.0194in;"
 
| colspan="5"  align=center| '''Parser hooks'''
 
|- style="background-color:#f2f2f2;border:0.05pt solid #aaaaaa;padding:0.0194in;"
 
| align=center| '''Extension'''
 
| align=center| '''Version'''
 
| align=center| '''License'''
 
| align=center| '''Description'''
 
| align=center| '''Authors'''
 
|-
 
|  | [http://www.debtcompliance.com/ DcsComplianceChecklist]
 
|  | 1.24.2, 2016-05-10
 
 
|  | Creates the #ComplianceChecklist parser-function
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.organicdesign.co.nz/Extension:ExtraMagic.php ExtraMagic]
 
|  | 3.8.0, 2015-010-04
 
|  | [https://www.gnu.org/licenses/gpl-2.0.html GNU General Public Licence 2.0]&nbsp;or later
 
|  | Adds useful variables and parser functions
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [https://www.mediawiki.org/wiki/Extension:ParserFunctions ParserFunctions]
 
|  | 1.6.0
 
|  | [https://clienttest.dm.dcstemporary.com/Special:Version/License/ParserFunctions GPL-2.0]
 
|  | Enhance parser with logical functions
 
|  | Tim Starling, Robert Rohde, Ross McClure and Juraj Simlovic
 
|-
 
|  | [http://www.mediawiki.org/wiki/Extension:TreeAndMenu PdfBook]
 
|  | 1.5.2, 2017-05-15
 
|  | [https://www.gnu.org/licenses/gpl-2.0.html GNU General Public Licence 2.0]&nbsp;or later
 
|  | pdfbook-desc
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [https://www.mediawiki.org/wiki/Extension:Pipe_Escape Pipe Escape]
 
|  | 2.0.0.&nbsp;[https://phabricator.wikimedia.org/r/revision/mediawiki/extensions/PipeEscape;a36d2d6969fa0b86e1ac293b34b6b77f2df26576 (a36d2d6)]23:54, 4 May 2016
 
|  | [https://clienttest.dm.dcstemporary.com/Special:Version/License/Pipe_Escape GPL-2.0+]
 
|  | Parser function&nbsp;<span style="background-color:#f9f9f9;"><tt><nowiki>#!</nowiki></tt></span>&nbsp;for when you want a pipe character to be just a pipe character
 
|  | David M. Sledge and Purodha Blissenbach
 
|-
 
|  | [http://www.mediawiki.org/wiki/Extension:TreeAndMenu TreeAndMenu]
 
|  | 4.2.1, 2016-05-24
 
|  | [https://www.gnu.org/licenses/gpl-2.0.html GNU General Public Licence 2.0]&nbsp;or later
 
|  | Adds&nbsp;<span style="background-color:#f9f9f9;"><tt><nowiki>#tree</nowiki></tt></span>&nbsp;and&nbsp;<span style="background-color:#f9f9f9;"><tt><nowiki>#menu</nowiki></tt></span>&nbsp;parser functions which contain bullet-lists to be rendered as collapsible treeviews or dropdown menus. The treeviews use the&nbsp;[http://wwwendt.de/tech/fancytree FancyTree]&nbsp;JavaScript tree menu, and the dropdown menus use&nbsp;[http://www.htmldog.com/articles/suckerfish/dropdowns/ Son of Suckerfish]
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
| colspan="5" |
 
|- style="background-color:#f2f2f2;border:0.05pt solid #aaaaaa;padding:0.0194in;"
 
| colspan="5"  align=center| '''Other'''
 
|- style="background-color:#f2f2f2;border:0.05pt solid #aaaaaa;padding:0.0194in;"
 
| align=center| '''Extension'''
 
| align=center| '''Version'''
 
| align=center| '''License'''
 
| align=center| '''Description'''
 
| align=center| '''Authors'''
 
|-
 
|  | [http://www.mediawiki.org/wiki/Extension:AjaxComments AjaxComments]
 
|  | 2.7.2, 2017-03-08
 
|  | [https://www.gnu.org/licenses/gpl-2.0.html GNU General Public Licence 2.0]&nbsp;or later
 
|  | Add comments to the end of the page that can be edited, deleted or replied to instead of using the talk pages
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [https://www.mediawiki.org/wiki/Extension:CirrusSearch CirrusSearch]
 
|  | 0.2&nbsp;[https://phabricator.wikimedia.org/r/revision/mediawiki/extensions/CirrusSearch;dcb0cf934a76a326aee728166e517fd1b74422e2 (dcb0cf9)]21:22, 4 May 2016
 
|  | [https://clienttest.dm.dcstemporary.com/Special:Version/License/CirrusSearch GPL-2.0+]
 
|  | Elasticsearch-powered search for MediaWiki
 
|  | Nik Everett, Chad Horohoe, Erik Bernhardson and&nbsp;[https://clienttest.dm.dcstemporary.com/Special:Version/Credits/CirrusSearch others]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsAmmendments]
 
|  | 1.1.0, 2018-01-20
 
 
|  | Adds ammendments section to DCS loan pages
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsBaskets]
 
|  | 1.4.2, 2016-08-08
 
 
|  | Allows fields in Baskets table to be updated via AJAX
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsCommon]
 
|  | 5.1.1, 2018-01-25
 
 
|  | DCS common functionality
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsEmailLink]
 
|  | 0.0.1, 2017-07-12
 
 
|  | Adds a new "EmailLink" action which can match a title case-insensitvely
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsExportTerms]
 
|  | 2.0.1, 2017-03-20
 
 
|  | Add an export action to the that allows terms to be downloaded in CSV format
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsFindTitle]
 
|  | 1.1.0, 2017-01-30
 
 
|  | Adds a new "find" action which can match a title case-insensitvely
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsLoanPages]
 
|  | 2.5.2, 2016-05-17
 
 
|  | Adds breadcrumbs, comments and backlinks to DCS loan pages
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsNamespaces]
 
|  | 2.5.0, 2015-12-12
 
 
|  | A special page for administering loan documents in their own namepsaces
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsNuke]
 
|  | 1.2.2, 2017-01-19
 
 
|  | Gives administrators the ability to mass delete pages
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsSection2]
 
|  | 2.0.0, 2018-01-12
 
 
|  | DCS article section handling extension - new version 2 with individual sub-section article support removed
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsSingleSignOn]
 
|  | 5.1.5, 2017-07-14
 
 
|  | Allows the Rails application to manage the login, logout and session expiry for the DCS wikis
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsTitle]
 
|  | 1.0.0, 2017-02-13
 
 
|  | Creates a new DCS-specific Title class that includes TOC info such as sortkey, next and prev
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsUserDisable]
 
|  | 1.3.0, 2015-06-26
 
 
|  | Adds acount enable/disable links to the user list
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [http://www.debtcompliance.com/ DcsWatchComments]
 
|  | 1.4, 2017-03-09
 
 
|  | Removes default watchlist functionality and makes all loan comment articles auto-watched
 
|  | [http://www.organicdesign.co.nz/aran Aran Dunkley]
 
|-
 
|  | [https://www.mediawiki.org/wiki/Extension:Elastica Elastica]
 
|  | 1.3.0.0&nbsp;[https://phabricator.wikimedia.org/r/revision/mediawiki/extensions/Elastica;4607acf9efef0ad5cc236352ada9afe2f1dfdc2b (4607acf)]22:52, 4 May 2016
 
|  | [https://clienttest.dm.dcstemporary.com/Special:Version/License/Elastica GPL-2.0+]
 
|  | Base&nbsp;[http://www.elasticsearch.org/ Elasticsearch]&nbsp;functionality for other extensions by providing&nbsp;[http://elastica.io/ Elastica]&nbsp;library
 
|  | Nik Everett and Chad Horohoe
 
|-
 
|  | [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor]
 
|  | 0.5.0
 
|  | [https://clienttest.dm.dcstemporary.com/Special:Version/License/WikiEditor GPL-2.0+]
 
|  | Provides an extendable wikitext editing interface and many feature-providing modules
 
|  | Derk-Jan Hartman, Trevor Parscal, Roan Kattouw, Nimish Gautam and Adam Miller
 
|-
 
|}
 
  
 
== References ==
 
== References ==

Revision as of 15:33, 14 June 2018

This page serves to inventory and assess the mix of extensions that are in use for the DCS wiki:

Regular
Code for "regular" extensions are hosted on Gerrit at the WMF (which is also mirrored to GitHub) with documentation at https://www.mediawiki.org/wiki. Regular is in quotes because all extensions modify the behavior and capabilities of MediaWiki. Those that are used by the WMF in their projects or are distributed in the official download should be considered stable, tested, and maintained. Over time, some extensions become part of MediaWiki core; and rarely core features are extracted into extensions.
DCS Custom
Code for the DCS extensions is in the private Debt Compliance GitHub repo
Organic Design
Organic Design extensions are in the 'MediaWiki' tree of the Organic Design GitHub repo. Just because it's an OD extension doesn't mean it's not used by the wider MediaWiki community. We try to note usage below.


The ultimate goal is two-fold: not only understand 'What does it do?', but also understand related questions like:

  • "How critical is it? (Used all the time / occasionally, but still essential / never)"
  • "Does it need work? (known bugs or missing functionality)"
  • "Can or should this extension be replaced (with a more widely supported "regular" extension) to improve maintainability, features, security and lower cost?

Of course some features or functions are not really "user-centric" but might provide security or other features important to stakeholders like "Owner" or "Developer". For example: The DcsSkin provides a look and feel that is consistent with the company brand and makes the user experience more seamless while navigating between Website / Rails App / Wiki.

I've put information about "Source lines of code" into a sub-article.


Extension What does it do? (explain functionality by role: regular-user, talk-editor, client-admin, or sysop) Maintenance / Last release Used by WMF Used by Meza Used by QualityBox Example / Notes / Alternatives?
CirrusSearch Extends the core search for MediaWiki to be able to use Elasticsearch. Elasticsearch provides a much better search capability to all users of the wiki. In particular, it allows DCS to index documents (file uploads). Continuous Yes Yes Yes
Elastica Base Elasticsearch functionality by providing the Elastica library; required by CirrusSearch. Continuous Yes Yes Yes
Nuke The Nuke extension makes it possible for sysops to mass delete pages. Continuous Bundled No Yes For whatever reason, the DCSNuke extension intercepts page requests for the Nuke special page. DCSNuke has no added functionality. The DCSNuke code is roughly equivalent to the REL1_20 release of Nuke; and the current Nuke extension offers more functionality. I thought that potentially the reason to use a cloned extension was to totally customize the interface language strings, but that's not the case[1]. Remove DCSNuke.
ParserFunctions Enhances the wikitext parser with helpful functions, mostly related to logic and string-handling. Continuous maintenance Bundled Yes Yes
PipeEscape The Pipe Escape extension allows for pipe characters in parser function arguments (and template argument calls) avoid being interpreted as an argument delimiter. This is primarily for the purpose of using wiki tables (or parts thereof) inside parser function calls or templates. Old but stable Bundled Yes Yes Included via DcsSetup
SimpleMathJax The SimpleMathJax extension enables MathJax, a Javascript library, for typesetting TeX formula in MediaWiki inside math environments. This extension will load resources from cdnjs.cloudflare.com on all wiki pages that have math or chem tags. Regular maintenance No, WMF uses the Math extension Yes Yes included by DcsSetup.php
WikiEditor The WikiEditor extension provides an improved interface for editing wikitext. It is the wikitext editing interface that Wikipedia started using in 2010 for desktop users, and so it is sometimes called the "2010 wikitext editor". 0.5.1 (2016-04-15) some oversight by WMF Bundled Yes Yes
DcsAmmendments Adds ammendments section to DCS loan pages. Sysop (only) can add/delete/edit/re-order (up/down) the ammendments; UX implemented in JavaScript. Extends the API with the same functions. Adds new log type: amendments; and logs all actions. Jan 2018 - new sort functionality ready for testing no no no https://clienttest.dm.dcstemporary.com/ARCA14:1.5_Time_References
DcsBaskets This extension allows the utilization column of the Baskets tables to be edited directly using AJAX and saving values into 'basket' tables rather than in the traditional wiki-text revision tables. 1.4.3, 2018-05-25 no no no "Baskets" can be found in the hierarchy list of the leftnav under the 'Compliance' folder. The page name, by convention, is 'Baskets' e.g. https://clienttest.dm.dcstemporary.com/Baskets This is really neat, and very advanced. However, now that Visual Editor is available, I'd suspect that the user experience of editing large tables in Visual Editor would be much better. Replace Baskets with Visual Editor
DcsCommon Cookie handling was added on June 14, 2017. The code (the cookie.js part) is from a project called js-cookie. So, we could update that code. Or, we could replace it with internal functions so we don't rely on 3rd party code. See the API documentation for mw.cookie (Does not use the $wgCookieSecure configuration variable since 'detect' could not work with

ResourceLoaderStartUpModule; as module cache is not fragmented by protocol.) The mw.cookie (JavaScript) code is syntactically and functionally similar to the server-side cookie API (`WebRequest#getCookie` and `WebResponse#setcookie`).

https://www.mediawiki.org/wiki/Manual:Hooks/UserSetCookies is deprecated as of REL1_27, and session-handling extensions should be subclassing CookieSessionProvider. $wgSessionProviders

The class creates methods for outputting messages, notices, dates, getting raw content.

It loads some javascript (through resource loader). That javascript could more easily be maintained as MediaWiki:Common.js? although there may be load order issues. The JS defines like-named methods with varying features. E.g.

Check if the passed page title string is in a loan namespace, returns boolean. Note that this function only checks if the namespace is in the list of all loan namespaces, it doesn't do any checks for whether the namespace is in use, or whether the title is in a DCS_TOC article like the DcsCommon::isLoanPage PHP function.

The series of extensions create DcsInit() (in DcsEmailLink), DcsBlockPageAccess(), and DcsReady() hook functions. DcsReady() implementations are different across different classes from Basket to DcsSingleSignOn.

The 'common' extension creates a singleton instance of the DcsCommon class that does a bunch of things according to notes in the wiki. The permissions shouldn't really be hidden away in the class code. They should simply be in LocalSettings.php. onUserGetRights() is a big function. The 'self:cache' is mostly called in connection with 'isLocal'. Any true caching should just be offloaded to APC and memcache. Although there is no 'dcs' table in the database on dcsTemporary, the setData() method is used throughout the codebase so should update wiki about where this data is stored.

recent no no no pervasive
DcsComplianceChecklist Provides a dropdown list of loans and responsibility terms by which the table can be filtered on the Checklist page (by convention). The parser function creates the page contents and form controls. recent (2017 - 2018) no no no e.g. https://clienttest.dm.dcstemporary.com/Checklist
DcsComplianceChecklist2 purpose? release? no no no only used in the checktest subdomain, or when `wgLocalTesting`; intention is to use a timestamp condition
DcsEmailLink Allows you to send a link to a page in the wiki. Activated by the "Email Link" item in the primary navigation across the top of the page. Similar to the "Email Page" extension by Aran, which is also used. 11 months ago no no no visit any page
DcsExportTerms Allows terms to be downloaded in Comma Separated Value (CSV) format. CSV is easily imported to a spreadsheet. recent no no no Visit https://clienttest.dm.dcstemporary.com/Category:Terms and you will see a "Export Terms" action in the primary navigation across the top of the page.
DcsFindTitle helps to find a title regardless of case-sensitivity of the system. recent no no no integrates with the API, however I'm unsure where it's visible/usable to the user. I believe it's used from the Ruby side to create links that will match a wiki page even if there is a case mismatch. If you wish to navigate to https://clienttest.dm.dcstemporary.com/ARCA14:TOC but request https://clienttest.dm.dcstemporary.com/arca14:toc instead, you'll get a 404 Not Found error. If you request https://clienttest.dm.dcstemporary.com/arca14:toc?action=findtitle then you will be redirected to the proper article.
DcsGroupAdmin Leverages the DcsBlockPageAccess hook to allow/disallow access to files and namespaces. recent no no no https://clienttest.dm.dcstemporary.com/Special:DcsGroupAdmin/equality
DcsJobAdmin See Background info on Background jobs. Creates a Special Page Special:DcsJobAdmin where you can start a new job; or view current and historical jobs. Each job type loads it's own form into the Admin page. The job runner extends the Maintenance class, and loops over running jobs to provide some progress reporting. It saves the most recent 10 jobs to a 'history' list.

There are functions in the code for:

  • Return a list of the currently running jobs sorted by start time.
  • Add a job to the 'history' list of jobs executed (list is limited to 10 items).
  • Get a 'history' list of the last 10 jobs
  • Get job data (both current and history)
  • shell_exec() to the process table to find DcsJobRunner. Return the currently running jobs by Process ID (PID)
  • register the PHP code classes for each job type:
    • Change Namespace
    • EditTest
    • Import
    • ImportXML
    • Links
    • PhpTest
    • ReplaceText
    • UpgradeAttachments

Each (or almost all?) PHP file is backed by a perl file which was the basis for the PHP development. Everything is written twice because it all started back when the best framework for handling MediaWiki jobs was a perl bot framework. Things have changed significantly over the recent past for MediaWiki's job queue.

According to the documentation, it allows you to manage jobs. But, I'm wondering how much this is actually used? The job queue should be run automatically by cron, and the administrative user shouldn't have to worry about it really. If there is a usage pattern where job execution is time sensitive, there is a use for an Admin function; but I'm curious about the usage patterns that create large or numerous jobs. Otherwise, set wgJobRunRate to zero, and put it into cron `0 0 * * * root /usr/bin/php /var/www/example.com/www/w/maintenance/runJobs.php > /var/log/runJobs.log 2>&1`

2018-05-25 no no no
DcsLoanPages creates "backlinks" which are links to content that contain a particular keyword or phrase found in a loan document. It also creates the "< Prev" and "Next >" navigation links (called 'breadcrumbs' in the code, but actually these are 'pager' links not breadcrumbs). recent no no no If you go to a page like https://clienttest.dm.dcstemporary.com/ARCA14:Agreement You will see a large section of content called 'Index to ARCA14 pages containing "Agreement"" So, in other words, it's a list of links to pages of the ARCA14 loan that have the word "Agreement" in them. These links are created by the extension.
DcsNamespaces Manages the segregation of loan documents into their own separate namespaces. Also provides some functionality around moving/deleting/renaming namespaces via the https://clienttest.dm.dcstemporary.com/Special:DcsNamespaces special page. recent no no no e.g. https://clienttest.dm.dcstemporary.com/Special:DcsNamespaces
DcsNuke purpose? release? no no no REPLACE with standard Nuke extension
DcsSearch Extends the Elasticsearch backend with additional business logic, and new features and UX (saving search "favorites" and indexing link paths traversed in connection with a search query). See https://github.com/debtcompliance/mediawiki/wiki/Search-&-sorting a year ago no no no e.g. See the "heart" symbol next to the search box which implements the "favorites" feature.
DcsSection Allows for loan documents to be imported into the wiki as multiple articles. Creates a 'section reference' capability. in progress (v2) no no no
DcsSection2 purpose? release? no no no Unused - at least not on the development machine which is a clone of production.
DcsSingleSignOn Create a master/slave relationship with the Ruby on Rails application as the authentication and group mangement source; with the MediaWiki application synchronizing user information into it's local database. 2017 major update no no no For testing, you can access /wiki/extensions/dcs/DcsSingleSignOn/testLogin.php
DcsSkin Custom 'style' to match DCS website / frontend QAR app 3.0.2, 2016-07-01 no no no Skin by Aran Dunkley
DcsTitle Extends the regular MediaWiki title object class. Creates a custom cache of the TOC. recent no no no yes
DcsUploadedFiles Creates a special page listing all the files uploaded to loan documents orderd by loan namepsace then by article a year ago no no no https://clienttest.dm.dcstemporary.com/Special:DcsUploadedFiles
DcsUserDisable Adds 'enable/disable' links to the User list a year ago no no no https://clienttest.dm.dcstemporary.com/Special:ListUsers Why not use the Special:Block functionality built into core?I believe it's every bit as accessible through the API and thus could be used from QAR.
DcsWatchComments Adds subscription to talk pages. release? no no no When I view my normal MediaWiki 'WatchList', I don't see any loan talk pages added. I only see my user page.
Extension What does it do? (explain functionality by role: regular-user, talk-editor, client-admin, or sysop) Maintenance / Last release Used by WMF Used by Meza Used by QualityBox Example / Notes / Alternatives?
AjaxComments
EmailPage Adds a special page that allows you to send the rendered contents of a wiki page to a recipient. Activated by the "Email" item in the primary navigation across the top of the page.
ExtraMagic Adds extra Magic Words and Parser functions.
jQueryUpload v1.4.5, 2016-08-28
PdfBook The PdfBook extension composes a book from articles in a category and exports as a PDF file.
TreeAndMenu Makes bullet lists into folder trees or dynamic drop-down menus.

The drop-down menu functionality uses Son of Suckerfish which is 99% CSS, and the tree component is now using the FancyTree jQuery plugin rather than the dTree used in previous version of the TreeAndMenu extension. The new FancyTree has many options and plugins and is very extendable, please view the site and examples for more detail.

Double Check[edit | edit source]

You can visit the "Special:Version" page of the wiki. This page shows you exactly what extensions and versions of software are installed and activated on your wiki.


References[edit | edit source]