User:TeamChaos~metawiki/HtmlMaps

 
A proposal to move this page to MediaWiki.org was rejected.

Introduction edit

This extension includes well known HTML Image-Maps to MediaWiki. Please note that i am a php beginner. Bugs might appear. I tested it with my Wiki, it works fine. But that doesn't mean it does for yours. Please report any bugs below. It should work with Version 1.4 and higher. Thanks.

Syntax edit

<htmlmap>[source|mapname|width|height]{shape|coords|url|alt}</htmlmap>
<htmlmap>[source|mapname|width|height]{shape|coords|url|alt}{shape|coords|url|alt}</htmlmap>
<htmlmap>[source|mapname|width|height]{shape|coords|url|alt}{shape|coords|url|alt}{shape|coords|url|alt}{shape|coords|url|alt}...</htmlmap>

  • [] - concerning the visible image, once
* source - where the image is located
* mapname - random name
* width - width of image
* height - of image
  • {}- concerning clickable points in image, unlimited (as much clickable points you want)
* shape - can be "rect", "circle" or "polygon"
* coords - "x,x,x,x" for rect; "x,x,x" for circle; "x,x,x,..." for polygon
* url - url where to link
* alt - alternative text

Maybe very confusing at the first time of use. Just look at any HTML Guide to ImageMaps for more Information. This extension just kind of translates the code, so u can use it in MediaWiki Software.

Example edit

<htmlmap>[http://petition.panzertierzone.de/images/petition.png|Petition|468|60]{rect|10,10,50,50|http://petition.panzertierzone.de|Petition}</htmlmap>

Result / further Information edit

Can not be shown here.

Source edit

<?php
 # HTMLMap by Steven Rose (webmaster@terrapedia.de)
 # 
 # visit www.terrapedia.de
 # 
 # special thanks to anea of #php.de @irc.quakenet.de
 # Note: htmlmap includes imagemaps to mediawiki software
 #       usage is shown here: www.terrapedia.de/ImageMaps
 # 
 # Have fun
 $wgExtensionFunctions[] = "wfHtmlMap";
 function wfHtmlMap() {
  global $wgParser;
  $wgParser->setHook( "htmlmap", "renderHtmlMap" );
 }
 function renderHtmlMap( $input ) {
  preg_match_all('/([\[\]{}])(.*?)([\[\]{}])/', $input, $matches, PREG_SET_ORDER);
  foreach($matches as $match) {
    $var[] = explode('|', $match[2]);
  }
  foreach($var as $k=>$v) {
    if($k>0) {
      $a .= "<area shape=\"".$v[0]."\" coords=\"".$v[1]."\" href=\"".$v[2]."\" alt=\"".$v[3]."\">";
    }
  }
  $output = "<div><div><map name=\"".$var[0][1]."\">".$a."</map></div><p><img src=\"".$var[0][0]."\" width=\"".$var[0][2]."\" height=\"".$var[0][3]."\" alt=\"".$var[0][1]."\" usemap=\"#".$var[0][1]."\"></p></div>";
  return $output;
 }
?>

Bugs edit

It would be very nice if u would report any bugs here. Thanks.

  • (reported by Benutzer:TeamChaos) = I'm sorry i fogot ONE (1) little point in the code. By effect just one Link was created. I fixed this. Source above corrected.

Feedback edit

It would be nice too if u could post any feedback, where ur using my extension etc, in this discussions-page. Thanks.

Author edit

Steven Rose