Difference between revisions of "MediaWiki/archive/customizing"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
(→‎Extensions of Interest: more data-management extensions)
(moved "extensions" to its own page)
Line 1: Line 1:
=={{hide|navbar}}==
+
==Navigation==
 
{{web software|MediaWiki}}: [[MediaWiki customization|customization]]
 
{{web software|MediaWiki}}: [[MediaWiki customization|customization]]
 
==Links==
 
==Links==
Line 9: Line 9:
 
* [[modifying the MediaWiki searchbox]]
 
* [[modifying the MediaWiki searchbox]]
 
* [[MediaWiki user-group security]]
 
* [[MediaWiki user-group security]]
 +
* [[MediaWiki extensions]]: custom coding using MW's built-in extensibility
 
==Managed Customization==
 
==Managed Customization==
 
MediaWiki will include the contents of [[mediawiki:Common.css]], if found, in the CSS code it uses for defining the appearance of its pages. (The initial character in "Common" does not seem to be case-sensitive, even if the site has the initial-caps flag turned off.)
 
MediaWiki will include the contents of [[mediawiki:Common.css]], if found, in the CSS code it uses for defining the appearance of its pages. (The initial character in "Common" does not seem to be case-sensitive, even if the site has the initial-caps flag turned off.)
 
==Extensions of Interest==
 
Available MediaWiki [http://meta.wikimedia.org/wiki/Extensions extensions] which look like they could be useful ([[mwsite:Extension Matrix|full list with brief descriptions]]):
 
* '''portal-type features''':
 
** [[metawikipedia:My blog|My blog]]: blogging features
 
** [[metawikipedia:Tasks extension|Tasks extension]]: rudimentary multi-user project management
 
** [[metawikipedia:WikiFeeds|WikiFeeds]] adds to the standard feeds: Newest pages, Recent changes by user, Newest pages by user, User watchlist, Recent changes for articles in a category, Newest articles in a category
 
* '''data display''':
 
** syntax highlighting
 
*** [[metawikipedia:Syntax Highlighting Extension|Syntax Highlighting Extension]]: requires [http://www.beautifier.org Beautifier Syntax Highlighting Engine]
 
*** [[metawikipedia:GeSHiCodeTag Extension|GeSHiCodeTag Extension]]
 
** [[metawikipedia:TabbedData extension|TabbedData extension]]: useful for directly posting spreadsheets, though formatting may not be as nice as the converter; evaluation needed
 
* '''data management''':
 
** [[metawikipedia:Attribute Extension|Attribute Extension]]: adds an "attribute" tab to all pages; stores attribute data in a table
 
** [[mwsite:Extension:DynamicPageList|DynamicPageList]]: reporting tool; lists pages by category, with user-definable formatting (now in use on [[Issuepedia]])
 
*** [[mwsite:Extension:DPLforum|DPLforum]]: fork of DynamicPageList 1.12 for displaying "forum-like layouts"
 
** [[mwsite:Extension:Labeled Section Transclusion|Labeled Section Transclusion]] (LST): sort of an extension of the "noinclude" and "includeonly" tags: allows multiple named sections which can be included or excluded. Pages can be set up which are just "data" to be presented in different formats by inclusion (works well with templates, generally speaking). Now in use on [[Issuepedia]] and [[PsyCrit]].
 
** [[mwsite:Extension:SimpleTable|SimpleTable]]: display [[CSV]] or tab-delimited spreadsheet data as a table
 
** [[mwsite:Extension:StackFunctions|StackFunctions]]: mini programming language equivalent to [[PostScript]] without graphics
 
** [[metawikipedia:VariablesExtension|VariablesExtension]] is a different approach to storing data for re-use within the wiki. Due to the fact that the data has to fit inside a template call, available wiki-markup is more limited than with LST (above) but may have other strengths to compensate. '''Question''': Can an included page "see" variables declared in the calling page?
 
* '''[[MediaWiki user-group security|groups / security]]'''
 
* '''convenience''':
 
** [[metawikipedia:Special page to work with the interwiki table|Special:Interwiki]] by Stephanie Amanda Stevens (phroziac)
 
* '''experimental''' (keep an eye on these to see if they become useful):
 
** [[mwsite:Extension:WikiDB|Extension:WikiDB]] creates virtual tables within the wiki and lets you output their contents dynamically
 
** [[mwsite:Extension:Semantic MediaWiki|Extension:Semantic MediaWiki]]
 
  
 
==Code Notes==
 
==Code Notes==

Revision as of 01:03, 19 September 2007

Navigation

computing: software: web: MediaWiki: customization

Links

Articles

Managed Customization

MediaWiki will include the contents of mediawiki:Common.css, if found, in the CSS code it uses for defining the appearance of its pages. (The initial character in "Common" does not seem to be case-sensitive, even if the site has the initial-caps flag turned off.)

Code Notes

(From Woozle 20:59, 15 Jun 2005 (CDT). Eventually to be given their own section, I expect.)

  • Everything obviously starts with index.php
  • For the purpose of displaying a page (not saving changes or doing anything else), this calls $wgArticle->view(), in Article.php (line 699)
  • $wgArticle->view() appears to be able to provide a few other formats besides the regular view (including difference engine and displaying redirections as subtitles), but I'm ignoring that for now
  • $wgOut seems to be the object which accumulates text to be output, via various methods:
    • $wgOut->addWikiText(...)
    • $wgOut->addHTML(...)
    • $wgOut->addPrimaryWikiText() # Display content and save to parser cache
    • $wgOut->addWikiText() # Display content, don't attempt to save to parser cache
    • $wgOut->setPageTitle()
    • $wgOut->transformBuffer(); # Put link titles into the link cache
    • $wgOut->addMetaTags(); # Add link titles as META keywords
  • ...and then it does these two lines:
    • $this->viewUpdates(); (found at line 1926 -- doesn't do much)
    • wfProfileOut( $fname );
  • It's not clear whether the navbar has already been pulled in by the time we hit viewUpdates -- possibly transformBuffer does it? The comment makes it sound like that, but the name "transformBuffer" in that case is not very descriptive. The code in there should probably be examined.