/** * Loads hieroglyph information */ private static function loadData() { if (self::$phonemes) { return; } if (MWInit::isHipHop()) { require_once MWInit::extCompiledPath('wikihiero/data/tables.php'); self::$phonemes = $wh_phonemes; self::$prefabs = $wh_prefabs; self::$files = $wh_files; } else { $fileName = dirname(__FILE__) . '/data/tables.ser'; $stream = file_get_contents($fileName); if (!$stream) { throw new MWException("Cannot open serialized hieroglyph data file {$fileName}!"); } $data = unserialize($stream); self::$phonemes = $data['wh_phonemes']; self::$prefabs = $data['wh_prefabs']; self::$files = $data['wh_files']; } }
define('WIKIHIERO_VERSION', '1.0alpha2'); $wgHooks['ParserFirstCallInit'][] = 'wfRegisterWikiHiero'; $wgHooks['BeforePageDisplay'][] = 'wfHieroBeforePageDisplay'; // Register MediaWiki extension $wgExtensionCredits['parserhook'][] = array('path' => __FILE__, 'name' => 'WikiHiero', 'version' => WIKIHIERO_VERSION, 'author' => array('Guillaume Blanchard', 'Max Semenik'), 'url' => '//www.mediawiki.org/wiki/Extension:WikiHiero', 'descriptionmsg' => 'wikihiero-desc'); $dir = dirname(__FILE__); $wgExtensionMessagesFiles['Wikihiero'] = "{$dir}/wikihiero.i18n.php"; $wgExtensionMessagesFiles['HieroglyphsAlias'] = "{$dir}/wikihiero.alias.php"; $wgAutoloadClasses['WikiHiero'] = "{$dir}/wikihiero.body.php"; $wgAutoloadClasses['SpecialHieroglyphs'] = "{$dir}/SpecialHieroglyphs.php"; $wgParserTestFiles[] = "{$dir}/tests.txt"; $wgSpecialPages['Hieroglyphs'] = 'SpecialHieroglyphs'; $wgSpecialPageGroups['Hieroglyphs'] = 'wiki'; $wgResourceModules['ext.wikihiero'] = array('styles' => 'ext.wikihiero.css', 'localBasePath' => "{$dir}/modules", 'remoteExtPath' => 'wikihiero/modules'); $wgResourceModules['ext.wikihiero.Special'] = array('scripts' => 'ext.wikihiero.Special.js', 'styles' => 'ext.wikihiero.Special.css', 'localBasePath' => dirname(__FILE__) . '/modules', 'remoteExtPath' => 'wikihiero/modules', 'dependencies' => array('jquery.spinner'), 'messages' => array('wikihiero-input', 'wikihiero-result', 'wikihiero-load-error')); $wgCompiledFiles[] = MWInit::extCompiledPath('wikihiero/data/tables.php'); /** * Because <hiero> tag is used rarely, we don't need to load its body on every hook call, * so we keep our simple hook handlers here. * * @param $parser Parser * @return bool */ function wfRegisterWikiHiero(&$parser) { $parser->setHook('hiero', 'WikiHiero::parserHook'); return true; } /** * @param $out OutputPage * @return bool