Commit graph

123 commits

Author SHA1 Message Date
Brion Vibber e42686cd0a Revert r39618 "Per discussion for bug 6455, merged functionality of StringFunctions into the ParserFunctions extension."
o_O These look like the least CPU- and memory-efficient implementations of strlen(), strpos() etc that could possibly be created...
2008-08-19 18:53:09 +00:00
Fran Rogers c17e837fa1 Per discussion for bug 6455, merged functionality of StringFunctions into the ParserFunctions extension. 2008-08-18 22:19:38 +00:00
Brion Vibber b6589d2a07 Revert r37387 "Let the {{#ifexist}} works with encoded URLs too. See testcase"
Causes regression for titles containing "+".
Proper fix here is to move the existing % decoding into Title::newFromText or Title::secureAndSplit so it's done automatically, rather than attempting to replicate it, with the potential of getting it wrong like this, every place we decide to accept titles
2008-07-09 17:46:09 +00:00
Raimond Spekking b18e373656 * Let the {{#ifexist}} works with encoded URLs too. See testcase http://test.wikipedia.org/wiki/User:Raymond/ifexist
* Update URL in extension credits
2008-07-09 13:26:53 +00:00
Ilmari Karonen f7d1604cce Make #ifexist work for special pages. 2008-05-21 22:46:03 +00:00
Raimond Spekking 070032419e * (Bug 13620) Let #iferror catch more error messages
Patch by René Kijewski
2008-04-09 19:47:44 +00:00
Brion Vibber 3f8d67255c * (6943) Added PAGESINCATEGORY: magic word
Patch by Mr.Z-man, https://bugzilla.wikimedia.org/attachment.cgi?id=4793
Moves some of the 'expensive parser function' tracking to core.
2008-04-07 22:11:31 +00:00
Brion Vibber f3f58561af * (bug 13041) Typo in getExprParser() 2008-02-26 01:25:29 +00:00
Raimond Spekking f254fe8945 * (bug 12739) Use wfMsgForContent for a category name
* Add 'descriptionmsg' for [[Special:Version]]
2008-02-05 18:52:55 +00:00
Tim Starling ca08ade9f5 Revert r30243: unnecessary. 2008-01-29 02:44:53 +00:00
Brion Vibber e9620129be Apply live hack from Wikimedia code base: throw exception on invalid frames in ifeq 2008-01-29 01:38:17 +00:00
Tim Starling b9938a57a3 Postcard from linuxland.
* Reduced stack depth by using an internal stack in expand(), and by having some common code paths (e.g. non-subst double-brace during PST) return objects which can be expanded in that internal stack instead of the PHP stack. This is friendly to xdebug but slightly slower than the original version. Also it probably helps robustness when you don't add 7 stack levels per pair of double braces.
* Profiling indicates that expand and PPD are now good targets for porting to C. Abstracted and refactored the relevant code to allow for a drop-in replacement. A factor of 2 reduction in average-case replaceVariables() time may be possible.
* Verified with preprocessorFuzzTest.php against r29950, updated to allow better PST tests.
* Made parserTests.php respect $wgParserConf
* LST and ParserFunctions need a simultaneous update with the core due to changed interfaces. DOM objects are now wrapped rather than directly exposed.
2008-01-21 16:36:08 +00:00
Tim Starling 983bb52cd8 Added ParserFirstCallInit hook. Deferred function registration in ParserFunctions until this hook is called. 2008-01-17 08:58:24 +00:00
Tim Starling 56ecadc8e5 #ifexist: If the "else" parameter is missing, use the "test" parameter instead. This allows error-free text to be passed through with abbreviated syntax. Splarka's suggestion. 2008-01-17 01:06:02 +00:00
Brion Vibber aa66e33d4d Don't register internal links for specials or interwikis on #ifexist lookup.
They all return false anyway, but this avoids bogus link table entries.
(Similar issue as ImageMap bug 12651)
2008-01-16 06:16:16 +00:00
Tim Starling a563c45005 Fix bug in last commit 2008-01-15 05:29:29 +00:00
Tim Starling 7a1cb92986 Added #iferror: Searches the input for text that looks like an error message from ParserFunctions or the core parser. 2008-01-15 04:21:17 +00:00
Siebrand Mazeland 04a88ee436 * use wfLoadExtensionMessages
* remove some unneeded blackslashes in messages (caused malformed error message)
* put Magic in separate file
* delay message loading
* add version in extension credits, remove EOL whitespace
* update Translate extension
2008-01-13 01:06:28 +00:00
Tim Starling d0053cdca8 Bug 12356: make parameters to #titleparts work like array_slice(): negative offsets, missing length runs to end, etc. Patch by darklama. 2007-12-20 13:29:59 +00:00
Siebrand Mazeland 48c773edf3 revert r28371 to r28375 2007-12-16 18:27:23 +00:00
Tim Starling e10e89e2b3 Typo 2007-12-11 09:04:46 +00:00
Siebrand Mazeland 2f82506394 * complete $wgExtensionCredits
* remove trailing whitespace
2007-12-10 21:13:52 +00:00
Tim Starling b225dd82ad Watch out for invalid titles 2007-12-10 06:11:52 +00:00
Tim Starling ba67528419 * Add a warning on preview if the #ifexist limit is exceeded
* Add all pages which exceed the #ifexist limit to [[Category:Pages with too many ifexist calls]]
2007-12-10 06:04:34 +00:00
Tim Starling f06807863c * Object versions of #ifexpr, #switch and #ifexist
* Fix for lack of StubObject in ~1.7
* Ignore HTML comments in expressions, which may now appear due to the parse order change
2007-12-09 08:11:38 +00:00
Tim Starling 603fe160be * Add #ifexist invocation count to the limit report comment
* Fix limit report inclusion criteria for new preprocessor -- make it display only for the primary text on edit and page view
2007-11-30 14:50:48 +00:00
Andrew Garrett 2328038128 Prevent the parser function #ifexist being used more than a certain amount on error pages. The maximum number of #ifexist queries can be set in $wgMaxIfExistCount, which is, by default, 100. Any more uses over here will default to the "else" text. Done to discourage templates like Template:highrfc-loop on enwiki, which willingly does something like 50 database queries for a template that is used for many users on one page. Clearly suboptimal from a performance perspective. 2007-11-29 10:42:48 +00:00
Tim Starling 3153138c23 register #switch once 2007-11-20 14:27:04 +00:00
Tim Starling 2b3cdadc84 SFH_OBJECT_ARGS versions of #if and #ifeq 2007-11-20 14:16:10 +00:00
Raimond Spekking 5944437cb1 Use <strong> not <span>, per hint of Simetrical on wikitech-l. Thanks. 2007-11-19 15:37:49 +00:00
Raimond Spekking e470229df5 * (bug 8773) Make error messages from expr.php localizable
** Move error messages to ParserFunctions.i18n.php
** Rename 'expr_...' to 'pfunc_expr_...' to be consistent with other messages which are localizable already
* Add CSS class 'error' to output of error messages
2007-11-16 08:02:24 +00:00
Roan Kattouw 05af0a8f37 (bug 7985) #ifexist parser function returns false for image pages from shared repository
Modified patch by Carl Fürstenberg (AKA AzaTht)
2007-11-13 15:33:05 +00:00
Aaron Schulz 99a596fe27 *Internationalize error messages (patch by Bertrand GRONDIN, bug 10991) 2007-08-19 16:55:22 +00:00
Rotem Liss 8ad5a5a09f Introducing a new parser function, "#timel", which is the same as "#time" but uses the local time specified by the computer or by wgLocaltimezone. It passes a local timestamp to Language::sprintfDate or the compatibility function, per its comment ("Input timestamp is assumed to be pre-normalized to the desired local time zone, if any"), but this doesn't cause problems (except for the "+0000" written when using c and r flags). 2007-08-01 18:00:45 +00:00
Aryeh Gregor ddab9b72ee Extensions too! 2007-06-29 01:36:09 +00:00
Rob Church f21e1b0945 Accept a third parameter to {{#titleparts}}; offset, which users can use to chop up the title to their heart's content 2007-06-13 00:26:28 +00:00
Rob Church e41d3b4447 Fix up the oncoming i18n trainwreck here;
* Move translations to a .i18n.php file as with other extensions
* Use English as a fallback (as before), but if a translation is available for some (or all) magic words, use that, i.e. fall back to English when a translation isn't available for a given word, to avoid breakage when a new one is introduced
2007-06-07 19:02:57 +00:00
Rotem Liss 760a8f7e95 Adding the new magic word also to fa (untranslated), whitespace. 2007-06-06 13:38:34 +00:00
Raimond Spekking 593c5bbf96 (bug 10165) Adding Hebrew translation for a new magic word 2007-06-06 08:51:12 +00:00
Raimond Spekking 7d067a7e71 (bug 10144) Adding Farsi translation for magic words 2007-06-05 09:27:06 +00:00
Rob Church ada85ae61d Title::getPrefixedText() should be faster than implode() here 2007-06-04 17:40:47 +00:00
Rob Church 3a1f80ebd7 (bug 10136, among others) Introduce TITLEPARTS parser function; returns a specified number of slash-separated segments of a title. 2007-06-04 17:34:07 +00:00
Tim Starling 4dbc7f4d21 Register a link on #ifexist. Otherwise this breaks cache coherency. 2007-02-12 10:24:23 +00:00
Antoine Musso 5ea1f08f45 use parser->getTitle() to get possible private $parser->mTitle 2007-01-17 22:57:38 +00:00
Antoine Musso 9fdbabd860 Add descriptions for some extensions used on wikipedia 2007-01-07 13:57:35 +00:00
Antoine Musso ccc136f753 remove some ending whitespaces 2007-01-06 20:56:46 +00:00
Brion Vibber c8e0d935c0 fix line endings 2007-01-05 02:13:39 +00:00
Tim Starling 0151a81b21 Increased mMaxTimeChars to enable repetitive use on certain large pages on enwiki 2007-01-03 18:35:01 +00:00
Andrew Garrett 4fb668f8d6 Add from parameter to rel2abs Parser Function. from is the optional absolute path to calculate from, if it is not given or is empty, it will calculate from ghd current path. Patch by Carl Furstenberg/AzaToth. 2006-12-01 16:31:38 +00:00
Rotem Liss af89e4fbff Update. 2006-11-28 17:13:06 +00:00
Tim Starling e0c630a7df rel2abs function. Based on patch from bug 8021 by AzaTht, with significant changes by me for efficiency and style. 2006-11-28 17:02:19 +00:00
Tim Starling 2477d59ae4 Exception-based error handling for expressions, plus a few other tweaks. Patch by AzaToth. 2006-11-21 07:22:13 +00:00
Tim Starling beddfd5389 Added a bundled copy of sprintfDate() so that #time works with 1.7. 2006-09-25 06:02:33 +00:00
Brion Vibber 36be4ee1b6 Fix for bug 7162, doubling of references.
The clearState callback function needs to return true so that Cite's callback can also be called.
This bug was triggered by the use of a second parse run in the spam blacklist to accurate extract links; failure to clear state would leave bogus stuff in the parser cache.
Requires a fix to Hook.php in r16282 so that the two hooks don't destroy each other when run.
2006-08-30 10:59:47 +00:00
Rotem Liss a78f6f3431 Hebrew localisation for #time. 2006-08-27 16:42:26 +00:00
Tim Starling da06713e7a Clear the #time character count before each parse. Don't want to break dumpHTML. 2006-08-27 13:39:52 +00:00
Tim Starling f1eac24da7 Added #time 2006-08-25 14:27:41 +00:00
Tim Starling 845c6c71fc Got rid of the MagicWord indexing constants (MAG_xxx), replaced them by string indexing, like messages. The associated change to the extensions, i.e. removing the MagicWordMagicWords hook and using string instead of integer indices, is in fact compatible with MW 1.6 and 1.7, which tells you something about the utility of the hook function. 2006-07-14 15:39:23 +00:00
Rotem Liss 053355d882 ParserFunctions are now using magic words; unlike the previous change, localized forms are now available only in localized wikis (e.g., Hebrew forms are not available in en.wp), though English form is available in every wiki. 2006-06-25 21:29:55 +00:00
Rob Church 3f084fb5ea Revert back to working version 2006-06-24 22:12:31 +00:00
Rotem Liss 688ae96bfb Typos. 2006-06-24 19:27:04 +00:00
Rotem Liss 95cb5cf3ae Default case of 'switch' is now magic word, too. 2006-06-24 16:52:06 +00:00
Rotem Liss 3ee5bada96 * ParserFunctions is now using magic words, English and Hebrew forms are available.
* Additional translations may be added, please specify the language code in a hidden comment.
2006-06-24 15:40:53 +00:00
Rob Church bd1987ce0b * (bug 6078) Add #ifexist function
* Add extension credits so it's easier to spot when ParserFunctions isn't working 'cause it's not installed
2006-05-25 08:07:47 +00:00
Greg Sabino Mullane 731f78b05e Trim the value passed to switchHook. 2006-05-25 01:18:10 +00:00
Tim Starling c54692bbb6 "#default" case for #switch, as an alternate to missing "=". This allows literal = signs in the default case. 2006-04-20 12:01:07 +00:00
Tim Starling 39719a2948 Added switch, removed rand, removed now unnecessary trim() calls. 2006-04-18 02:53:34 +00:00
Tim Starling 6ffad7c906 Added #ifexpr, changed semantics of #if to make it strictly if-defined -- zero is no longer considered false. 2006-04-14 04:14:10 +00:00
Tim Starling be7dcaba5d Trim whitespace from #if return text, to mimic the behaviour of template parameters 2006-04-12 14:06:57 +00:00
Tim Starling d29b8a242a intval 2006-04-06 08:30:57 +00:00
Tim Starling a49014ff5a * Better error reporting
* Inequality operators
* rand function
2006-04-06 08:14:56 +00:00
Tim Starling c7814d59ff Simplified if by introducing ifeq. People mostly use {{qif}} to check if an optional parameter has been passed, and to, say, create a table row if it has. Those applications shouldn't have to worry about errant equals signs. 2006-04-05 14:36:55 +00:00
Tim Starling 6d93dfe6b8 Mathematical expressions and conditional constructs implemented as parser functions. Documentation to follow. 2006-04-05 13:22:51 +00:00