Slide 1

Slide 1 text

Brianna Laugher Linux Users of Victoria November 2008 meeting Hacking MediaWiki (For Users) http://www.mediawiki.org/

Slide 2

Slide 2 text

● Me: 2005—now Wikimedia editor, Wikimedia Commons administrator ~ 2 years, frustrated wannabe hacker ● You: Use MediaWiki outside of Wikimedia, comfortable with basic editing Who are we?

Slide 3

Slide 3 text

● MediaWiki/Wikimedia ● Wiki structure ● Magic words, access levels ● User JS/CSS – Gadgets ● “Uselang” hack Outline

Slide 4

Slide 4 text

Open­source (GPL) wiki engine software (uses LAMP) MediaWiki Wikimedia MediaWiki Name of a social movement; also US charity (Wikimedia Foundation)

Slide 5

Slide 5 text

● Subpages Wiki structure

Slide 6

Slide 6 text

By default only in talk, user pages Subpages Help:Subpages

Slide 7

Slide 7 text

● Subpages ● Links Wiki structure

Slide 8

Slide 8 text

Special:MostLinked Special:WhatLinksHere Special:RecentChangesLinked Special:WantedPages Links Help:Links

Slide 9

Slide 9 text

● Subpages ● Links ● Categories Wiki structure

Slide 10

Slide 10 text

Categories Help:Categories Nine special pages for categories

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

● Subpages ● Links ● Categories ● Templates Wiki structure

Slide 13

Slide 13 text

Page transclusion: {{foo}} , , {{subst:foo}} Parameters Templates Help:Templates

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

Special:ExpandTemplates

Slide 17

Slide 17 text

Special:ExpandTemplates

Slide 18

Slide 18 text

● Subpages ● Links ● Categories ● Templates ● Namespaces Wiki structure

Slide 19

Slide 19 text

“Front” page + talk page ● Main, Project, Help ● Template ● Category ● Special* ● Image, Media* ● MediaWiki (* = psuedo namespace) Namespaces Help:Namespaces

Slide 20

Slide 20 text

Special:RecentChanges Special:SpecialPages Special pages Help:Special pages

Slide 21

Slide 21 text

Special:Upload Image namespace ­> File (soon!) [[Image:foo.jpg]] to embed [[:Image:foo.jpg]] to link to image page, not embed [[Media:foo.jpg]] to link to file directly Images (uploaded files)

Slide 22

Slide 22 text

“System [interface] messages” Edit MediaWiki: pages to overrride defaults (sysops only) Search on Special:Allmessages to find the right message/page MediaWiki namespace Manual:System message

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

MediaWiki:sidebar MediaWiki:welcomecreation MediaWiki:copyrightwarning, 2 MediaWiki:searchresulttext MediaWiki:uploadtext Interesting pages

Slide 25

Slide 25 text

About the sidebar... Manual:Interface/Sidebar

Slide 26

Slide 26 text

About the sidebar... Move search box to top for usability

Slide 27

Slide 27 text

About the sidebar... MediaWiki:Mainpage Main Page Move search box to top for usability

Slide 28

Slide 28 text

About the sidebar... MediaWiki:Mainpage Main Page Move search box to top for usability Delete defaults, Add your own links

Slide 29

Slide 29 text

MediaWiki:Common.css MediaWiki:Common.js Monobook skin: (same for others) MediaWiki:Monobook.css MediaWiki:Monobook.js Look & feel

Slide 30

Slide 30 text

Modify an existing one: User:Foo/monobook.css,js Myskin – empty to start with Skins – roll your own Your user page Name of skin. Must start with lowercase

Slide 31

Slide 31 text

“Behaviour switches”: __NOTOC__,__TOC__ #REDIRECT [[Foo]] __HIDDENCAT__ (on category pages) Magic words Help:Magic words

Slide 32

Slide 32 text

__HIDDENCAT__ Help:Magic words

Slide 33

Slide 33 text

Look like {{CAPS TEMPLATES}} Especially used in templates ­ context. ● Time, revision related ● Stats! {{NUMBEROFARTICLES}} {{NUMBEROFEDITS}} {{NUMBEROFUSERS}} {{PAGESINCATEGORY:Foo}} Variables Help:Magic words

Slide 34

Slide 34 text

Special:ListGroupRights ● “Anonymous”/IP editor ● (registered) User ● ­> Autoconfirmed! ● Sysop (==”admin”) ● Bureaucrat ● Bot User access levels Manual:User rights

Slide 35

Slide 35 text

Time ­ $wgAutoConfirmAge Edit count ­ $wgAutoConfirmCount After passing both, User automatically graduates to Autoconfirmed (On Wikipedia thought to be ~ 4 days) Autoconfirmed?

Slide 36

Slide 36 text

Semi/protection Manual:Administrators

Slide 37

Slide 37 text

Semi/protection Manual:Administrators AND non- autoconfirmed users!

Slide 38

Slide 38 text

Massively simplify user JS/CSS sharing: no more copying user subpages MediaWiki:Gadgets­definition ­> New Preferences tab JS/CSS Gadgets Extension:Gadgets

Slide 39

Slide 39 text

MediaWiki:Gadgets­definition MediaWiki:Gadget-section-browsing-gadgets MediaWiki:Gadget-Navigation popups List of file names MediaWiki:Gadget-foo.js/css

Slide 40

Slide 40 text

Special:Preferences ­> Gadgets

Slide 41

Slide 41 text

Gadget rec: HotCat Instead of this: [[Category:Melbourne Cricket Ground]] Try this: http://commons.wikimedia.org/wiki/ MediaWiki:Gadget­HotCat.js

Slide 42

Slide 42 text

Make your edit box less scary: Gadget rec: wikEd http://enwp.org/WP:WIKED

Slide 43

Slide 43 text

(This is not really recommended...) Use it to make different versions of special pages, eg upload form Uselang parameter overrides user language prefs Special:Upload?uselang=fr – I can see the French version of the form without changing my prefs “Uselang” hack http://commons.wikimedia.org/wiki/ Commons:Redesigning_the_upload_form

Slide 44

Slide 44 text

What if I make a link to Special:Upload?uselang=blah ? For each message 'Foo', MW checks ● MediaWiki:Foo/blah (localised message) ● MediaWiki:Foo (localised default wiki lang message) ● MessagesBlah.php file (MW defaults) “Uselang” hack http://commons.wikimedia.org/wiki/ Commons:Redesigning_the_upload_form

Slide 45

Slide 45 text

● http://mediawiki.org is half­decent now ● Still lots of info on http://meta.wikimedia.org/ ● IRC is popular: irc://irc.freenode.net/mediawiki ● MLs: mediawiki-l ● Forum: http://mwusers.com/ (unofficial) Support

Slide 46

Slide 46 text

Questions? Brianna Laugher [email protected] These slides are dual­licensed GFDL1.2+, CC­BY­SA­3.0. Screenshots are GFDL/GPL, WMF logo is all rights reserved, MediaWiki logo is public domain. Thankyou! http://brianna.modernthings.org/