Difference between revisions of "Extension:VideoSectionLink"
(rm unused properties) |
(couple of traces) |
||
Line 34: | Line 34: | ||
function __construct() { | function __construct() { | ||
global $wgHooks, $wgParser, $egVideoSectionLinkMagic; | global $wgHooks, $wgParser, $egVideoSectionLinkMagic; | ||
− | + | ||
# Add the parser-function | # Add the parser-function | ||
$wgParser->setFunctionHook($egVideoSectionLinkMagic, array($this, 'magicVideosectionlink')); | $wgParser->setFunctionHook($egVideoSectionLinkMagic, array($this, 'magicVideosectionlink')); | ||
Line 44: | Line 44: | ||
*/ | */ | ||
function magicVideosectionlink(&$parser) { | function magicVideosectionlink(&$parser) { | ||
+ | |||
global $egVideoSectionLinkMagic; | global $egVideoSectionLinkMagic; | ||
# Populate $argv with both named and numeric parameters | # Populate $argv with both named and numeric parameters | ||
Line 66: | Line 67: | ||
'isHTML' => false | 'isHTML' => false | ||
); | ); | ||
+ | |||
} | } | ||
Line 81: | Line 83: | ||
global $egVideoSectionLink; | global $egVideoSectionLink; | ||
$egVideoSectionLink = new VideoSectionLink(); | $egVideoSectionLink = new VideoSectionLink(); | ||
+ | print_r("VSL instance: "); | ||
+ | print_r($egVideoSectionLink); | ||
+ | |||
} | } | ||
Line 89: | Line 94: | ||
global $egVideoSectionLinkMagic; | global $egVideoSectionLinkMagic; | ||
$magicWords[$egVideoSectionLinkMagic] = array($langCode, $egVideoSectionLinkMagic); | $magicWords[$egVideoSectionLinkMagic] = array($langCode, $egVideoSectionLinkMagic); | ||
+ | print_r("LGM: "); | ||
+ | print_r($magicWords[$egVideoSectionLinkMagic]); | ||
return true; | return true; | ||
} | } |
Revision as of 23:38, 8 November 2008
<?php
Template:PhpCategory:Extensions created with Template:Extension
/**
* VideoSectionLink extension - An extension to enable users to link to defined sections of video. Made with Template:Extension * * See http://www.mediawiki.org/wiki/Extension:VideoSectionLink for installation and usage details * * @package MediaWiki * @subpackage Extensions * @author User:Jack * @copyright © 2008 User:Jack * @licence GNU General Public Licence 2.0 or later */
if (!defined('MEDIAWIKI')) die('Not an entry point.');
define('VIDEOSECTIONLINK_VERSION', '0.0.1, 2008-10-31');
$egVideoSectionLinkMagic = "videosectionlink"; $wgExtensionFunctions[] = 'efSetupVideoSectionLink'; $wgHooks['LanguageGetMagic'][] = 'efVideoSectionLinkLanguageGetMagic';
$wgExtensionCredits['parserhook'][] = array( 'name' => 'VideoSectionLink', 'author' => 'User:Jack', 'description' => 'An extension to enable users to link to defined sections of video. Made with Template:Extension', 'url' => 'http://www.organicdesign.co.nz/Extension:VideoSectionLink', 'version' => VIDEOSECTIONLINK_VERSION );
class VideoSectionLink {
/** * Constructor */ function __construct() { global $wgHooks, $wgParser, $egVideoSectionLinkMagic;
# Add the parser-function $wgParser->setFunctionHook($egVideoSectionLinkMagic, array($this, 'magicVideosectionlink'));
}
/** * Expand the videosectionlink-magic */ function magicVideosectionlink(&$parser) {
global $egVideoSectionLinkMagic; # Populate $argv with both named and numeric parameters $argv = array(); foreach (func_get_args() as $arg) if (!is_object($arg)) { if (preg_match('/^(.+?)\\s*=\\s*(.+)$/',$arg,$match)) $argv[$match[1]] = $match[2]; else $argv[] = $arg; }
# Build text of expanded result $args = ; foreach ($argv as $k => $v) $args .= "*$k: $v\n"; $args = htmlspecialchars($args); $text = "=== Magic $egVideoSectionLinkMagic(): ===\n$args";
# Return result with available parser flags return array( $text, 'found' => true, 'nowiki' => false, 'noparse' => false, 'noargs' => false, 'isHTML' => false );
}
/** * Needed in some versions to prevent Special:Version from breaking */ function __toString() { return __CLASS__; }
}
/**
* Called from $wgExtensionFunctions array when initialising extensions */
function efSetupVideoSectionLink() { global $egVideoSectionLink; $egVideoSectionLink = new VideoSectionLink(); print_r("VSL instance: "); print_r($egVideoSectionLink);
}
/**
* Needed in MediaWiki >1.8.0 for magic word hooks to work properly */
function efVideoSectionLinkLanguageGetMagic(&$magicWords, $langCode = 0) { global $egVideoSectionLinkMagic; $magicWords[$egVideoSectionLinkMagic] = array($langCode, $egVideoSectionLinkMagic); print_r("LGM: "); print_r($magicWords[$egVideoSectionLinkMagic]); return true; }