MediaWiki/extensions

Revision as of 13:44, 14 July 2012 by Jukeboksi (talk | contribs) (→‎Headlined of the planned: == Single sign-on == Will be implemented with #CentralAuth so that http://consumium.org/wiki/ and http://consuploads.consumoin.org will share a single-login database over the two wikis.)

Extensions provide numerous ways to extend the core functionality of MediaWiki in ways that are more likely not to break on MediaWiki upgrades. Some types of extensions store their code inside the wiki which should be utterly avoided as then the MediaWiki team cannot assure to not break on upgrades. No guarantees are given but given a clean implementation of task X we've no need to reinvent the wheel.

It would seem that adding extensions is not the problematic part but removing them in a clean manner after they've been added at some point previously.

See also:

Headlined of the planned

Basic stuff

Obviously we want to have #EVAL, #Call, #Math, #HashTables and #Arrays for starters.

Automation

#LinkedWiki so we can fetch from Wikipedia based datasets ( courtesy of DBpedia ) from category and infobox data things by using w:SPARQL:

  1. ) Type of business entity
  2. ) Traded as stock X in stock exchange Y
  3. ) Industry/ies
  4. ) Founded in
  5. ) HQ location
  6. ) Area served / operates in
  7. ) Products
  8. ) Revenue
  9. ) Operating income
  10. ) Net income
  11. ) Total Assets
  12. ) Total equity
  13. ) Number of employees
  14. ) Subsidiaries
  15. ) Corporate web site

See DBpedia for more of the datasets they are making available with possibility to run SPARQL queries on the endpoint they provide as a courtesy to the user.

I18N and localization

#LanguageSelector will enable people to have the MediaWiki interface localized based on accept langs the browser sends and #LandingCheck enables to make and serve pages based on what locale ( lang + country ) is given. #Common Locale Data Repository mw:Extension:CLDR - The CLDR extension contains local language names for different languages, countries, and currencies extracted from w:Common Locale Data Repository data is obviously useful for the i18n effort.

Single sign-on

Will be implemented with #CentralAuth so that http://consumium.org/wiki/ and http://consuploads.consumium.org will share a single-login database over the two wikis.

Data storage and use

#KeyValue is an extension that allows you to store one or more key/values as Category/Key/Value triplets on a mediawiki page by using the keyvalue function. The data is stored in textform and is not typed. This extension will likely form the back bone of setting data only once and then using it to create articles for all desired locales

Reviews

#ArticleFeedback enables stars of maximum stars type of polling with possibility for multiple polls for different aspects. Will be used for reviews and could potentially be h4xed to handle the voting with it's possibility to vote zeroes.

Feedback

#ArticleFeedbackv5 is a textbox feedback system and most likely used as a front-end to the consumer when s/he sends feedback

Ads and anti-ads

#Widgets and especially the http://www.mediawikiwidgets.org/YouTube widget is a clear, reliable, safe way to have the advertisement videos and anti-ads

Linking to other sites/wikis

#BADI Pages Created Links - ability to color outgoing links based on "article exists in target wiki/site / article does not exist. For example this will be used to link to the relevant Wikitravel article.

Housekeeping

Obviously #BrokenLinks for housekeeping.

Editor convenience

#NewArticleTemplates enables to insert article skeletons into edit boxes when creating article and #HideEmptySections hides all sections that are empty when viewing an article. This way we can have large article skeleton for the convenience of the editors but avoid articles seeming like skeletons as empty headers will not display.

#Cite - obviously going to need citations for any controversial claims.

#HeadersFooters - ability to have headers and footers to be included on a global, namespace, category or page basis. Useful for placing copyright and other notes where-ever neede

#CSS MenuSidebar - navigation to special and other pages via additional menus to the sidebar

User convenience

#GeoData ability to attach coordinates to article and publish them via the HTTP API

#Lingo - tooltip pop-ups that explain terminology and abbreviations on the site.

#FaviconLink places the favico image of a site before the link.

Sysop(presseur)ator convenience

#CheckUser



Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:HashTables Ability to make w:hash tables from template-data and to fill templates with data from hash tables. This combined with storing and fetching to/from database so that database maybe manipulated from wiki and the wiki manipulated from the database. In some tasks #Arrays will be much more efficient, but as a catch-all way of storing values in templates in articles hash tables are an excellent idea. mw:Parser function Tested on 1.17
mw:Extension:ArticleFeedback stars of maximum stars rating system with multple polls for different aspects for reviews mw:API 1.18 and up only
mw:Extension:ArticleFeedbackv5 textbox feedback system could be used to collect the feedback to a company mw:API 1.18

Implementation types of extensions

The implementation strategy(s) employed in building this extension. This parameter is used to create categories that help programmers find examples of various MediaWiki specific implementation strategies or patterns. Although the values of this parameter sometimes coincide with the use case or purpose of an extension, that is not reason for this parameter. If the values you have chosen for this parameter do not adequately identify the purpose or possible use cases, we recommend you add additional category links as needed.

  • mw:parser - catchall for uncategorized parser extensions. If you have written a parser extension, please use one of the following more specific types:
    • mw:link - customized link markup, e.g. mw:...
    • mw:parser function - custom parameterized template markup, e.g. {{#name: ... }}
    • mw:tag - custom XML tag markup, e.g. <tagname>...</tagname>
    • mw:variable - custom unparameterized template markup, e.g. {{NAME}}
    • mw:extended syntax - Extensions that add non-standard wiki syntax (i.e. not tags, parser functions, or variables).
  • mw:access - catchall for user access extensions, that is, extensions that create, authenticate, grant permissions, revoke permissions, or monitor the activity of users. If you have written an access extension, please use one of the following more specific types:
    • mw:user activity - extensions that monitor user activity (logins, logouts, new user creation, etc.)
    • mw:user identity - extensions that create and delete users, and/or verify the identity of a user
    • mw:user rights - extensions to the rights management system, e.g. changes to the way rights are assigned, API, maintenance tools (does not include extensions that merely name the rights needed to use the features of that extension; for this purpose use the rights parameter)
  • interface - catchall for uncategorized user interface extensions.
    • mw:media - extensions that permit the embedding of multimedia content on wiki pages by registering a file extension with $wgMediaHandlers.
    • mw:mywiki - extensions that provide infrastructure so that users may personalize their MediaWiki experience and/or assist in the management of that infrastructure
    • mw:notify - extensions that email users, broadcast messages and provide other forms of community notification
    • mw:page action - extensions that enhance or modify page actions. This includes anything that implements an action that reads, writes, searches for, creates, renames, deletes, redirects or discusses a page. It does not include rights (use user rights) or logs (use user activity).
    • mw:search - extensions that search through and select articles for users.
    • mw:skin - extensions adding CSS or JavaScript, or implementing hook functions to change the look and feel of MediaWiki via the skins framework.
    • mw:ajax - extensions that use Ajax programming techniques.
    • mw:special - extensions that subclass the SpecialPage class, use one of its hooks, or patch one or more functions in SpecialPage.php. See Manual:Special pages for more information.
  • mw:other
    • mw:api - extensions that add a new API module or extend a core API module.
    • mw:hook - Hook extension - defines a new hook - see hook1, etc. below if you want to define hooks used by your extension


Current

Extensions currently installed on this development wiki. Also applicable to the implementation wiki.

Listing extensions that could be useful for the implementation wiki

Planned

A

Arrays

mw:Extension:Arrays - Allows parser functions that manipulate arrays

ArticleFeedback

ArticleFeedbackv5

  • mw:Extension:AutoCategoryInclude - Checks for categories and includes templates ( without messy wikitext ) into pages based on the categories. Could be very useful for constructing infoboxen on company / product pages.
  • mw:Extension:AutoLanguage - Displays a page in the language specified in a user preference. Looks very old and maybe not up-to-date but the source should be interesting reading for anyone looking to implement many languages in one wiki.

B

BADI Pages Created Links

  • mw:Extension:BADI_Pages_Created_Links - Allows display of links in toolbox to other wiki or wiki-like sites whereby links will be colored differently depending on whether the page there has been created yet or not. Status determined by response code or Last-Modified HTTP HEAD requests.

Back Links Functions ( constructing the voting machinery probably can use at least functions from this

  • mw:Extension:BackLinksFunctions - This does what it's name says. The code is ancient, but will be essential reading to anyone developing a voting system where votes are kept in wiki pages

BrokenLinks

They on BrokenLinks:

Special Page which checks all links in table _externallinks and reports on those that return an HTTP response 4xx or 5xx

Us on BrokenLinks:

Obviously very useful for housekeeping the links to businesses.
  • mw:Extension:BucketVoting - The bucket voting extension to mediawiki allows people to distribute a number of votes between a number of options, so they can vote based on how important things are to them. This is known as w:cumulative voting.

C

CleanChanges

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:CleanChanges The CleanChanges extension is based on enhanced changes list, but it tries to be more concise by hiding less important information by default. It needs JavaScript to be fully functional. It works best in wikis where changes per user ratio is high. It also provides two extra filters: by user and by language code suffix. Enables per language and by user Special:RecentChanges mw:User interface 1.16-1.20

Common Locale Data Repository

Useable to fetch proper localized string for countries, areas, languages and currencies

Call - ablility to pass variables to pages

  • mw:Extension:Call - ability to pass variables to templates to generate dynamic wiki pages

CategoryCloud and CategoryTagCloud - 2 competing w:tag cloud implementations


CategoryIndex - Using keys ( external to articles ) to make category associations ( Parser function )

They on CategoryIndex:

This extensions allows you to create categories of pages where the page is added with key value, which can be displayed on the lists of parties or categories used to select subset of pages from category.

Us on CategoryIndex:

Perhaps this could be utilized to enter datas for many pages in single pages and also propagated to all languages

CategoryIntersection - where are the other set operations ?

CategoryOnUpload

They on Extension:CategoryOnUpload:

Dropdown menu when uploading images to add the image to a category

Us on Extension:CategoryOnUpload:

Makes it easier and faster to categorize a file you are uploading to the file upload wiki.

Create_Page, CreateAPage and CreateArticle


They on Create_Page:

...

Us on Create_Page:

Trivial. Adds a textbox where you can enter the name of the new article. Maybe if chained with #NewArticleTemplates it might provide some ease of use to the end-consumer

CentralAuth

mw:Extension:CentralAuth - Unified loging accross wikis

CheckUser

mw:Extension:CheckUser - allows checking what IPs nicks use and what nicks are used by IPs

Cite

mw:Extension:Cite - Cite is an extension which allows a user to create footnotes.

CoAuthor

mw:Extension:CoAuthor - The CoAuthor extension provides a tool for finding the co-authors for a given wiki user

Comments

mw:Extension:Comments - Comments extension adds the <comments> parser hook tag to allow commenting on articles where the tag is present. Comments extension adds the <comments> parser hook tag to allow commenting on articles where the tag is present.

Extension:CSS MenuSidebar

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:CSS MenuSidebar This extension makes it possible to create additional sidebar elements as a menus with dropdown items. This will be useful for example for collecting all Special:-pages added by the other extensions for reader and editor convenience. mw:User interface 1.16 and earlier and later

D

Data

mw:Extension:Data - This extensions is not actively developed but we really need something like this.

Data Aggregator

mw:Extension:Data Aggregator - ability to collect data across articles with uniform templates

DynamicSidebar

mw:Extension:DynamicSidebar - Provides dynamic sidebars based on user pages, groups, and categories.

E

EasyTimeline

mw:Extension:EasyTimeline for making timelines

Eval

mw:Extension:Eval The eval extension enables mathematical and logical operations in MediaWiki.

ExpandTemplates

mw:Extension:ExpandTemplates - helpful tool template makers

ExpensiveSubpageList or SubPageList

mw:Extension:ExpensiveSubpageList or mw:Extension:SubPageList provide navigational structures for sub-pages.

External Data

mw:Extension:External Data - The External Data extension allows MediaWiki pages to retrieve, filter, and format data from one or more sources. In addition to external URLs, data can also come from a regular wiki page, an uploaded file, an LDAP directory, or a relational database.


F

FaviconLink

mw:Extension:FaviconLink- Fethes the favicon and places it before the link - Why not ..

Form

mw:Extension:Form - The extension lets users create new articles with a form. Administrators create a form in the MediaWiki namespace, and this form can be used to create a new article using a particular template.


G

GeoData

mw:Extension:GeoData - The GeoData extension allows articles to specify their geographical coordinates and publishes these coordinates via the HTTP API.

GIS

mw:Extension:Gis - short for Geographic Information System. Likely need will arise for this.

GlobalUserGroups

mw:Extension:GlobalUserGroups - Allows the use of defined local user groups as global groups

GlobalUserrights

mw:Extension:GlobalUserrights - Allows easy management of global user rights through Special:GlobalUserrights

H

HashTables

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:HashTables Ability to make w:hash tables from template-data and to fill templates with data from hash tables. Enhances the parser with hash table functions and a function to store all parameters given to a template. This combined with storing and fetching to/from database so that database maybe manipulated from wiki and the wiki manipulated from the database. In some tasks #Arrays will be much more efficient, but as a catch-all way of storing values in templates in articles hash tables are an excellent idea. mw:Parser function Tested on 1.17 BINGO! Now we need only a way to store these in a database and fetch them from the database and we're set for a system that we can edit wiki and get stored in database and edit database and wiki get affected. Naturally using #Arrays can be much more efficient then a hash table when there is much sequential access of values / keys tables .. Using a hash table to store all things and no arrays certainly makes much more sense then using an array to store all things and no hash tables.

HeadersFooters

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:HeadersFooters Allows you to specify article headers and footers to be included on a global, namespace, category or page basis. Could be useful somewhere mw:Parser extension unknown, last version in Nov 2011

HideEmptySections

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:HideEmptySections This extension hides any section that does not have any text associated with it. This will most likely be used so that the company and product articles have a big skeleton where people can fill in info but to only display the sections where info has already been added. <!-- comments --> naturally also count as 'empty' mw:Hook 1.14

I

I18nTags

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:I18nTags The i18nTags extension provides access to i18n functions for number formatting, grammar and plural in any available language. mw:Tag, mw:Parser functions

ImageTagging

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:ImageTagging ImageTagging extension lets a user select regions of an embedded image and associate an article with that region. Images can be viewed by tag. Tagging is shown in a new tag log. Could have use in building visual navigation structures mw:Special page, User interface 1.11+

Include WP

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:Include WP Possibility to include WP ( or other mediawiki installation ) content into articles Might be useful but not yet clear how / where should be used mw:Tag, mw:Parser functions, mw:API 1.16 and up

J

K

KeyValue

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:KeyValue KeyValue is an extension that allows you to store one or more key/values on a mediawiki page by using the keyvalue function. Could be used to centrally store company data only once and then used in many articles mw:Parser function mw:Special page 1.16 -


L

Labeled Section Transclusion

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:Labeled Section Transclusion This extension allows selective transclusion of marked-off sections of text. Could be useful for transcluding product and brand page sections into the company page mw:Tag, mw:Parser function 1.7+

LandingCheck

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:LandingCheck LandingCheck makes using localized and geotargeted landing pages easy. It was created as a replacement for the GeoLite extension. mw:Special page unknown

LanguageSelector

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:LanguageSelector The LanguageSelector extension provides detection of the interface language to use for anonymous visitors, and a menu for selecting the user language on each page, for logged in users as well as anonymous visitors. mw:MyWiki, mw:Tag, mw:Locale 1.11+

Lingo

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:Lingo Lingo is a glossary extension to MediaWiki, that lets you define abbreviations and their definitions on a wiki page. It displays these definitions whenever an abbreviation is hovered over in an article. mw:Extended syntax, mw:Skin 1.16+

LinkedWiki

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:LinkedWiki / MediaWiki/Extensions/LinkedWiki Ability to perform SPARQL queries mw:Parser extension, mw:Special page and mw:Data extraction 1.16 or higher

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension: mw:

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension: mw:

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension: mw:

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension: mw:

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension: mw:

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension: mw:

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension: mw:

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension: mw:

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension: mw:

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension: mw:

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension: mw:

N

NewArticleTemplates

Extension General description Consumium specific Implementation Compabilities Other notes
mw:ExtensionNewArticleTemplates: NewArticleTemplates is an Extension that allows you to automatically prefill text of new pages with the contents of other predefined wiki-pages. It is possible to distinguish between namespaces and specify a different text for new subpages. NewArticleTemplates is an Extension that allows you to automatically prefill text of new pages with the contents of other predefined wiki-pages. It is possible to distinguish between namespaces and specify a different text for new subpages. Obviously does what it says. Enables per-namespace pre-loadable ( into the edit box ) texts for new articles i.e. we can have a skeleton for creating a new product, brand, company, area, country and NGO etc. no need to copy-paste. Whether the template given for an article can be given if not all things are split into separate namespaces is possible is not know. mw:User interface tested 1.9 up to 1.18.X See also: #HideEmptySections that will work in tandem with this extension

T

Translate

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:Translate The Translate extension makes MediaWiki a powerful tool to translate every kind of text. It's used especially to translate software and to manage multilingual wikis in a sensible way. Very useful extension for the multiple langues in one wiki ( ! ) mw:Special page, mw:Locale, mw:API 1.18, 1.19


W

Widgets

Extension General description Consumium specific Implementation Compabilities Other notes
mw:Extension:Widgets The Widgets extension allows the creation of raw HTML pages that can be embedded (similarly to templates) in normal wiki pages. You do this by creating pages in the Widget namespace. http://www.mediawikiwidgets.org/Main_Page#Widgets_available contains a list of available known widgets mw:Parser function 1.12+

MediaWiki/Widgets - obviously we want to enable the Youtube widget so we can embed ads and anti-ads into articles.



List of possible extension types borrowed from http://www.mediawiki.org/wiki/Template:Extension#type under that clauses of GFDL