Difference between revisions of "Extension:Livelets.php"

From Organic Design wiki
(framework)
 
m
Line 1: Line 1:
 
<?
 
<?
# LiveWiki Extension
+
# LiveletsExtension
 
# - Allows live articles to be transcluded which update automatically on change in a non-polling, fully event-driven way
 
# - Allows live articles to be transcluded which update automatically on change in a non-polling, fully event-driven way
 
# - Version 0.1 (2007-03-30)
 
# - Version 0.1 (2007-03-30)
# - See http://www.mediawiki.org/wiki/Extension:LiveWiki for installation and usage details
+
# - See http://www.mediawiki.org/wiki/Extension:Livelets for installation and usage details
 
# - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
 
# - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
 
# - Author: http://www.organicdesign.co.nz/nad
 
# - Author: http://www.organicdesign.co.nz/nad
  
$wgLiveWikiMagic               = "live"; # the parser-function name for doing live-transclusions
+
$wgLiveletsMagic               = "live"; # the parser-function name for doing live-transclusions
$wgExtensionFunctions[]        = 'wfSetupLiveWiki';
+
$wgExtensionFunctions[]        = 'wfSetupLivelets';
$wgHooks['LanguageGetMagic'][] = 'wfLiveWikiLanguageGetMagic';
+
$wgHooks['LanguageGetMagic'][] = 'wfLiveletsLanguageGetMagic';
  
class LiveWiki {
+
class Livelets {
  
 
var $version = '0.1, 2007-03-30';
 
var $version = '0.1, 2007-03-30';
Line 19: Line 19:
  
 
# Constructor
 
# Constructor
function LiveWiki($magic) {
+
function Livelets($magic) {
 
global $wgParser,$wgHooks;
 
global $wgParser,$wgHooks;
 
$this->magic = $magic
 
$this->magic = $magic
Line 48: Line 48:
  
 
# Called from $wgExtensionFunctions array when initialising extensions
 
# Called from $wgExtensionFunctions array when initialising extensions
function wfSetupLiveWiki() {
+
function wfSetupLivelets() {
global $wgLiveWiki,$wgLiveWikiMagic;
+
global $wgLivelets,$wgLiveletsMagic;
$wgLiveWiki = new LiveWiki($wgLiveWikiMagic);
+
$wgLivelets = new Livelets($wgLiveletsMagic);
 
}
 
}
  
 
# Needed in MediaWiki >1.8.0 for magic word hooks to work properly
 
# Needed in MediaWiki >1.8.0 for magic word hooks to work properly
function wfLiveWikiLanguageGetMagic(&$magicWords,$langCode = 0) {
+
function wfLiveletsLanguageGetMagic(&$magicWords,$langCode = 0) {
global $wgLiveWikiMagic;
+
global $wgLiveletsMagic;
$magicWords[$wgLiveWikiMagic] = array(0,$wgLiveWikiMagic);
+
$magicWords[$wgLiveletsMagic] = array(0,$wgLiveletsMagic);
 
return true;
 
return true;
 
}
 
}
 
?>
 
?>

Revision as of 09:46, 31 March 2007

<?

  1. LiveletsExtension
  2. - Allows live articles to be transcluded which update automatically on change in a non-polling, fully event-driven way
  3. - Version 0.1 (2007-03-30)
  4. - See http://www.mediawiki.org/wiki/Extension:Livelets for installation and usage details
  5. - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
  6. - Author: http://www.organicdesign.co.nz/nad

$wgLiveletsMagic = "live"; # the parser-function name for doing live-transclusions $wgExtensionFunctions[] = 'wfSetupLivelets'; $wgHooks['LanguageGetMagic'][] = 'wfLiveletsLanguageGetMagic';

class Livelets {

var $version = '0.1, 2007-03-30'; var $magic; var $args; var $id = 0;

# Constructor function Livelets($magic) { global $wgParser,$wgHooks; $this->magic = $magic $this->args = array(); $wgParser->setFunctionHook($magic,array($this,'functionHook')); $wgParser->setHook($magic,array($this,'tagHook')); }

# Remove live container content, store its parameters and convert it to $magic tags function functionHook(&$parser) { $magic = $this->magic; $id = $this->id++; $args = array(); foreach (func_get_args() as $arg) if (!is_object($arg)) { if (preg_match('/^(.+?)=(.+)$/',$arg,$match)) $args[$match[1]] = $match[2]; else $args[] = $arg; } $this->args[$id] = $args; return "<$magic>$id</$magic>"; }

# Convert the $magic tags to client-side javascript request code from its stored parameters function tagHook($id,$argv,&$parser) {

$args = $this->args[$id];

return ""; }

  1. Called from $wgExtensionFunctions array when initialising extensions

function wfSetupLivelets() { global $wgLivelets,$wgLiveletsMagic; $wgLivelets = new Livelets($wgLiveletsMagic); }

  1. Needed in MediaWiki >1.8.0 for magic word hooks to work properly

function wfLiveletsLanguageGetMagic(&$magicWords,$langCode = 0) { global $wgLiveletsMagic; $magicWords[$wgLiveletsMagic] = array(0,$wgLiveletsMagic); return true; } ?>