Difference between revisions of "Extension:VideoSectionLink"
(parameters to parser function return properly) |
(also happy to return array) |
||
Line 56: | Line 56: | ||
foreach ($argv as $k => $v) $args .= "*'''$k:''' ''$v''\n"; | foreach ($argv as $k => $v) $args .= "*'''$k:''' ''$v''\n"; | ||
$args = htmlspecialchars($args); | $args = htmlspecialchars($args); | ||
− | $text = "=== Magic $egVideoSectionLinkMagic(): ===\n"; | + | $text = "=== Magic $egVideoSectionLinkMagic(): ===\n";*/ |
− | + | ||
+ | $text = "param1 is $param1 and param2 is $param2 and param3 is $param2"; | ||
+ | |||
# Return result with available parser flags | # Return result with available parser flags | ||
return array( | return array( | ||
Line 66: | Line 68: | ||
'noargs' => false, | 'noargs' => false, | ||
'isHTML' => false | 'isHTML' => false | ||
− | ) | + | ); |
− | |||
− | |||
} | } |
Revision as of 21:06, 9 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 = "videosection"; $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 videosection-magic */ function magicVideosectionlink(&$parser, $param1 = , $param2 = ,$param3 = ) {
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";*/
$text = "param1 is $param1 and param2 is $param2 and param3 is $param2";
# 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; }