User:TeamChaos~metawiki/HtmlMaps

From Meta, a Wikimedia project coordination wiki
 
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