Open main menu

Extension:GalleryTable

MediaWiki extensions manual
OOjs UI icon advanced.svg
GalleryTable
Release status: beta
Implementation Tag
Description Displays a table-gallery
Author(s) RUNA (Runa_cgtalk)
Latest version 0.1 (March 2010)
MediaWiki tested on 1.10.2, 1.15.1
License GPL
Download See the section labeled code below
Translate the GalleryTable extension if it is available at translatewiki.net
Check usage and version matrix.

Displays a table, divided by the specified number of columns. Table Cells are separated by a newline. The contents of the cell - wikitext.

InstallationEdit

To install this extension

  • Create file in your /extension directory: GalleryTable.php (see #Code section)
  • Add the following to LocalSettings.php :
require_once("$IP/extensions/GalleryTable.php");

SyntaxEdit

<gal cols="column number (default = 3)">
gallery cell 1
gallery cell 2
gallery cell 3
...
gallery cell n
</gal>

CodeEdit

<?php
 //Avoid unstubbing $wgParser on setHook() too early on modern (1.12+) MW versions, as per r35980
if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
	$wgHooks['ParserFirstCallInit'][] = 'wfGalleryTable';
} else { // Otherwise do things the old fashioned way
	$wgExtensionFunctions[] = 'wfGalleryTable';
}

 function wfGalleryTable() {
         global $wgParser;
         $wgParser->setHook( "gal", "GalleryTable" );
         return true;
 }
 
 function GalleryTable( $input, $argv, $parser, $frame ) {
      global $wgScriptPath;
      $cols = 3;
      if (isset($argv['cols'])) {$cols = $argv['cols'];}
      $cwidth = floor(100/$cols);

      $output = "<table>";
      $tdcontent = explode(chr(10), $input);
      $count = count($tdcontent);
      for ($i=1; $i<$count-1; $i++) {      
      	if ($i % $cols == 1) {$output .= chr(10)."<tr>";}		
      	$content = $parser->recursiveTagParse($tdcontent[$i]);
      	$output .= "<td width=\"".$cwidth."%\">".$content."</td>";
      	if ($i % $cols == 0) {$output .= "</tr>";}
      }
      if (($count-2) % $cols > 0) {      	
      $output .= "<td colspan=\"".($cols - (($count-2) % $cols))."\">&nbsp;</td></tr>";      }
      $output .= "</table>";
      return $output;
 }
 ?>