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