Difference between revisions of "Writing mediawiki extensions"

From ThorstensHome
Jump to: navigation, search
(Ideas)
 
(4 intermediate revisions by one user not shown)
Line 52: Line 52:
 
   return $result;
 
   return $result;
 
}</pre>
 
}</pre>
 +
 +
= Ideas =
 +
What can we do with mediawiki extensions?
 +
* scale an image relative to the browser window's size -> [[adaptivethumb]]
 +
* define a mindmap in mediawiki syntax
 +
* [[agenda]]
 +
* extend mediawiki syntax to create a flowchart as an iframe and display it in wiki page
 +
* define a mindmap in bubbl.us, export it, and display it in mediawiki
 +
* work with imagemaps so they are in the wiki and scaleable
 +
* get dokuwiki syntax for tables to work in mediawiki
  
 
= See also =
 
= See also =
 
* http://www.mediawiki.org/wiki/Extension:SimpleTable/1.2a - deliver mediawiki syntax, parsed
 
* http://www.mediawiki.org/wiki/Extension:SimpleTable/1.2a - deliver mediawiki syntax, parsed
 +
* http://stackoverflow.com/questions/2676388/how-can-i-add-per-page-permissions-to-a-user-in-mediawiki/2698312#2698312 - mediawiki on ACLs

Latest revision as of 09:54, 14 March 2015

Here is the simplest mediawiki extension you can write:

  • in LocalSettings.php, add
include("extensions/circlextension.php");
  • create a file extensions/circlextension.php:
<?php

$wgExtensionFunctions[] = "wfcirclextension";

function wfcirclextension()
{
  global $wgParser;
  $wgParser->setHook("circle", "circlehtml");
}

function circlehtml($code, $argv)
{
  $result="<svg><circle r=50 /></svg>";
  return $result;
}
  • Now you can create a mediawiki page with the content
This is mediawiki-syntax
<circle this goes into argv >
this goes into code
</circle>
  • And you will see a circle on the resulting wiki page. Note the circle may not be complete.

Version 2

Version 2 could look like this:

<?php

$wgExtensionFunctions[] = "wfcirclextension";

function wfcirclextension()
{
  global $wgParser;
  $wgParser->setHook("circle", "circlehtml");
}

function circlehtml($code, $argv)
{
  $param=reset($argv); # get first value of array
  if (!is_numeric($param)) {$param=20;};
  $result="
<svg width=".round($param*2)." height=".round($param*2).">
  <circle r=$param cx=$param cy=$param />
</svg>";
  $result=preg_replace("/\n/","",$result);
  return $result;
}

Ideas

What can we do with mediawiki extensions?

  • scale an image relative to the browser window's size -> adaptivethumb
  • define a mindmap in mediawiki syntax
  • agenda
  • extend mediawiki syntax to create a flowchart as an iframe and display it in wiki page
  • define a mindmap in bubbl.us, export it, and display it in mediawiki
  • work with imagemaps so they are in the wiki and scaleable
  • get dokuwiki syntax for tables to work in mediawiki

See also