[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 3 if ( !defined( 'MEDIAWIKI' ) ) { 4 die( 'This file is a MediaWiki extension, it is not a valid entry point' ); 5 } 6 7 /** 8 * CONFIGURATION 9 * These variables may be overridden in LocalSettings.php after you include the 10 * extension file. 11 */ 12 13 /** 14 * Defines the maximum length of a string that string functions are allowed to operate on 15 * Prevention against denial of service by string function abuses. 16 */ 17 $wgPFStringLengthLimit = 1000; 18 19 /** 20 * Enable string functions. 21 * 22 * Set this to true if you want your users to be able to implement their own 23 * parsers in the ugliest, most inefficient programming language known to man: 24 * MediaWiki wikitext with ParserFunctions. 25 * 26 * WARNING: enabling this may have an adverse impact on the sanity of your users. 27 * An alternative, saner solution for embedding complex text processing in 28 * MediaWiki templates can be found at: http://www.mediawiki.org/wiki/Extension:Scribunto 29 */ 30 $wgPFEnableStringFunctions = false; 31 32 /** 33 * Enable string functions, when running Wikimedia Jenkins unit tests. 34 * 35 * Running Jenkins unit tests without setting $wgPFEnableStringFunctions = true; 36 * will cause all the parser tests for string functions to be skipped. 37 */ 38 if ( isset( $wgWikimediaJenkinsCI ) && $wgWikimediaJenkinsCI === true ) { 39 $wgPFEnableStringFunctions = true; 40 } 41 42 /** REGISTRATION */ 43 $wgExtensionCredits['parserhook'][] = array( 44 'path' => __FILE__, 45 'name' => 'ParserFunctions', 46 'version' => '1.6.0', 47 'url' => 'https://www.mediawiki.org/wiki/Extension:ParserFunctions', 48 'author' => array( 'Tim Starling', 'Robert Rohde', 'Ross McClure', 'Juraj Simlovic' ), 49 'descriptionmsg' => 'pfunc_desc', 50 ); 51 52 $wgAutoloadClasses['ExtParserFunctions'] = __DIR__ . '/ParserFunctions_body.php'; 53 $wgAutoloadClasses['ExprParser'] = __DIR__ . '/Expr.php'; 54 $wgAutoloadClasses['ExprError'] = __DIR__ . '/Expr.php'; 55 $wgAutoloadClasses['Scribunto_LuaParserFunctionsLibrary'] = __DIR__ . '/ParserFunctions.library.php'; 56 57 $wgMessagesDirs['ParserFunctions'] = __DIR__ . '/i18n'; 58 $wgExtensionMessagesFiles['ParserFunctions'] = __DIR__ . '/ParserFunctions.i18n.php'; 59 $wgExtensionMessagesFiles['ParserFunctionsMagic'] = __DIR__ . '/ParserFunctions.i18n.magic.php'; 60 61 $wgParserTestFiles[] = __DIR__ . "/funcsParserTests.txt"; 62 $wgParserTestFiles[] = __DIR__ . "/stringFunctionTests.txt"; 63 64 $wgHooks['ParserFirstCallInit'][] = 'wfRegisterParserFunctions'; 65 66 /** 67 * @param $parser Parser 68 * @return bool 69 */ 70 function wfRegisterParserFunctions( $parser ) { 71 global $wgPFEnableStringFunctions; 72 73 // These functions accept DOM-style arguments 74 $parser->setFunctionHook( 'if', 'ExtParserFunctions::ifObj', SFH_OBJECT_ARGS ); 75 $parser->setFunctionHook( 'ifeq', 'ExtParserFunctions::ifeqObj', SFH_OBJECT_ARGS ); 76 $parser->setFunctionHook( 'switch', 'ExtParserFunctions::switchObj', SFH_OBJECT_ARGS ); 77 $parser->setFunctionHook( 'ifexist', 'ExtParserFunctions::ifexistObj', SFH_OBJECT_ARGS ); 78 $parser->setFunctionHook( 'ifexpr', 'ExtParserFunctions::ifexprObj', SFH_OBJECT_ARGS ); 79 $parser->setFunctionHook( 'iferror', 'ExtParserFunctions::iferrorObj', SFH_OBJECT_ARGS ); 80 $parser->setFunctionHook( 'time', 'ExtParserFunctions::timeObj', SFH_OBJECT_ARGS ); 81 $parser->setFunctionHook( 'timel', 'ExtParserFunctions::localTimeObj', SFH_OBJECT_ARGS ); 82 83 $parser->setFunctionHook( 'expr', 'ExtParserFunctions::expr' ); 84 $parser->setFunctionHook( 'rel2abs', 'ExtParserFunctions::rel2abs' ); 85 $parser->setFunctionHook( 'titleparts', 'ExtParserFunctions::titleparts' ); 86 87 // String Functions 88 if ( $wgPFEnableStringFunctions ) { 89 $parser->setFunctionHook( 'len', 'ExtParserFunctions::runLen' ); 90 $parser->setFunctionHook( 'pos', 'ExtParserFunctions::runPos' ); 91 $parser->setFunctionHook( 'rpos', 'ExtParserFunctions::runRPos' ); 92 $parser->setFunctionHook( 'sub', 'ExtParserFunctions::runSub' ); 93 $parser->setFunctionHook( 'count', 'ExtParserFunctions::runCount' ); 94 $parser->setFunctionHook( 'replace', 'ExtParserFunctions::runReplace' ); 95 $parser->setFunctionHook( 'explode', 'ExtParserFunctions::runExplode' ); 96 $parser->setFunctionHook( 'urldecode', 'ExtParserFunctions::runUrlDecode' ); 97 } 98 99 return true; 100 } 101 102 $wgHooks['UnitTestsList'][] = 'wfParserFunctionsTests'; 103 104 /** 105 * @param $files array 106 * @return bool 107 */ 108 function wfParserFunctionsTests( &$files ) { 109 $files[] = __DIR__ . '/tests/ExpressionTest.php'; 110 return true; 111 } 112 113 $wgHooks['ScribuntoExternalLibraries'][] = function( $engine, array &$extraLibraries ) { 114 if( $engine == 'lua' ) { 115 $extraLibraries['mw.ext.ParserFunctions'] = 'Scribunto_LuaParserFunctionsLibrary'; 116 } 117 return true; 118 };
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |