Difference between revisions of "Extension:ExpandableTables.php"

From Organic Design wiki
(bug fixed)
m
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
<?
+
{{legacy}}
# Expandables
+
<php>
# - CSS is the same as XmlWiki's expandables at the end of [[[[default-skin.css]]]]
+
<?php
 +
# Extension:ExpandableTables
 +
# - See http://www.mediawiki.org/wiki/Extension:ExpandableTables for installation and usage details
 +
# - Started: 2007-02-22
 +
# - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
 +
 
 +
if (!defined('MEDIAWIKI')) die('Not an entry point.');
 +
 +
define('EXPANDABLES_VERSION','1.1.1, 2007-05-10');
 +
 
 +
$wgExtensionCredits['other'][] = array(
 +
'name'        => "ExpandableTables",
 +
'author'      => '[http://www.organicdesign.co.nz/nad User:Nad]',
 +
'description' => 'Allows expandable/collapsable tables to be created similar to [http://en.wikinews.org WikiNews]',
 +
'url'        => 'http://www.mediawiki.org/wiki/Extension:Expandable tables',
 +
'version'    => EXPANDABLES_VERSION
 +
);
 +
 
 
$wgHooks['ParserAfterTidy'][] = 'allowExpandables';
 
$wgHooks['ParserAfterTidy'][] = 'allowExpandables';
 
function allowExpandables(&$parser,&$text) {
 
function allowExpandables(&$parser,&$text) {
Line 30: Line 47:
 
<tr id=expandable-content-'.$i.$open.'><td><table class=expandable-content>'.$matches[3].'</td></tr></table>';
 
<tr id=expandable-content-'.$i.$open.'><td><table class=expandable-content>'.$matches[3].'</td></tr></table>';
 
}
 
}
 +
</php>
 +
[[Category:Legacy Extensions|ExpandableTables]]

Latest revision as of 15:06, 22 October 2014

Legacy.svg Legacy: This article describes a concept that has been superseded in the course of ongoing development on the Organic Design wiki. Please do not develop this any further or base work on this concept, now this page is for historic record only.

<php> <?php

  1. Extension:ExpandableTables
  2. - See http://www.mediawiki.org/wiki/Extension:ExpandableTables for installation and usage details
  3. - Started: 2007-02-22
  4. - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)

if (!defined('MEDIAWIKI')) die('Not an entry point.');

define('EXPANDABLES_VERSION','1.1.1, 2007-05-10');

$wgExtensionCredits['other'][] = array( 'name' => "ExpandableTables", 'author' => 'User:Nad', 'description' => 'Allows expandable/collapsable tables to be created similar to WikiNews', 'url' => 'http://www.mediawiki.org/wiki/Extension:Expandable tables', 'version' => EXPANDABLES_VERSION );

$wgHooks['ParserAfterTidy'][] = 'allowExpandables'; function allowExpandables(&$parser,&$text) { if ($GLOBALS['allowex-done']++) return true; # Replace all the expandable tables with html containing CSS classes and the show/hide links $text = preg_replace_callback(

'/

(.+?<\\/table\\s*?>)/s', 'expandableCallback', "\n<script type='text/javascript'> function toggleExpandable(id) { var heading = document.getElementById('expandable-heading-'+id); var content = document.getElementById('expandable-content-'+id); if (content.style.display == 'none') content.style.display = ; else content.style.display = 'none'; this.parent.focus(); } </script>\n$text" ); return true; }
  1. Callback function executed for rendering each expandable table
function expandableCallback($matches) { $i = ++$GLOBALS["expandable/tbl-count"]; $open = $matches[2] ?  : ' style="display:none;"'; # default to expanded in id present after title attribute return '
<a class=expandable-link href="javascript:toggleExpandable('.$i.')">► '.$matches[1].'</a>
'.$matches[3].'
';

} </php>