Commit graph

35 commits

Author SHA1 Message Date
Fran Rogers
3ad5bfb749 Fix for problems with r39414; LinkHolderArray::replaceInterwiki() was badly broken 2008-08-16 10:13:35 +00:00
Siebrand Mazeland
2dedbbdfa1 Revert r39414. Breaks processing links like [[:wikipedia:nl:User:Siebrand|Dutch language Wikipedia]]. It will add a comment like "<!--IWLINK 0-->" in the HTML output. Happens even if there is one such link on a page. 2008-08-16 09:33:11 +00:00
Tim Starling
c45292ac40 * In the parser: do link existence tests in batches of 1000. Avoids using excessive memory to store Title objects.
* Split link placeholder/replacement handling into a separate object, LinkHolderArray.
* Remove Title objects from LinkCache, they apparently weren't being used at all. Same unconstrained memory usage as the former $parser->mLinkHolders.
* Introduced ExplodeIterator -- a workalike for explode() which doesn't use a significant amount of memory
* Introduced StringUtils::explode() -- select whether to use the simulated or native explode() depending on how many items there are
* Migrated most instances of explode() in Parser.php to StringUtils::explode()
* Renamed some variables in Parser::doBlockLevels()
* In Parser.php: $fname => __METHOD__, Parser => self/__CLASS__, to support Parser_DiffTest more easily
* Doc update in includes/MessageCache.php for r39412
* MW_TITLECACHE_MAX => Title::CACHE_MAX, nicer name, easier to access from another module
2008-08-15 16:35:03 +00:00
Chad Horohoe
cde6bce545 Catch php installs who have proc_open() disabled. 2008-08-13 16:23:41 +00:00
Tim Starling
e4ecf89421 Fixed incorrect detection of PHP's DOM module (bug 13770) 2008-08-11 17:24:35 +00:00
Alexandre Emsenhuber
edce5989d4 For compatibility with PHP 5.3.0alpha1: specify class name instead of passing by ref the title object: was throwing the following error:
Warning: Parameter 2 to Parser::parse() expected to be a reference, value given in ./includes/StubObject.php on line 58
followed by:
Fatal error: Call to a member function getLanguageLinks() on a non-object in ./includes/OutputPage.php on line 463
2008-08-09 13:31:15 +00:00
Leon Weber
8f821b6549 (bug 6387) Introduced new setting $wgCategoryPrefixedDefaultSortkey which
allows having the unprefixed page title as the default category sortkey.

Although creating sane defaults should always be preferred over introducing
new config options, we cannot just remove the old behaviour here, as some
peoply might still rely on it. However, the sortkey {{PAGENAME}} is already
widely used for circumventing the current behaviour.
2008-08-09 11:19:18 +00:00
Brion Vibber
ee7d2a4663 Revert r38876 "(bug 2443) Add image name as alt-text when no caption is provided."
This broke four test cases:

   4 previously failing test(s) now PASSING! :)
      * Right-aligned image  [Fixed between 08-Aug-2008 21:37:38, 1.14alpha (r38954) and now]
      * Centre-aligned image  [Fixed between 08-Aug-2008 21:37:38, 1.14alpha (r38954) and now]
      * None-aligned image  [Fixed between 08-Aug-2008 21:37:38, 1.14alpha (r38954) and now]
      * Width + Height sized image (using px) (height is ignored)  [Fixed between 08-Aug-2008 21:37:38, 1.14alpha (r38954) and now]

Please recommit with fixes to the existing test cases and some new test cases to cover cases where an empty caption is explicitly requested, see https://bugzilla.wikimedia.org/show_bug.cgi?id=2443#c11
2008-08-08 21:50:37 +00:00
Andrew Garrett
ebbee769bf * (bug 2443) Add image name as alt-text when no caption is provided. 2008-08-08 10:24:09 +00:00
Andrew Garrett
7a281ca6f6 Ignore self-links for special pages. They might be there for a good reason, and the current parsing of special-page output means that a link from any subpage of a special page to the special page itself is considered to be a self-link. This is evil, and doesn't take into account parameters added to other parts of the URL (e.g. the unblock form on Special:Ipblocklist) 2008-08-06 13:54:36 +00:00
Raimond Spekking
e831d9b6ee Allow PLURAL for 'expensive-parserfunction-warning' 2008-08-06 08:04:11 +00:00
Aryeh Gregor
efb774b085 Convert two more Parser uses, no parser test failures. Any more conversions look like they'll have to get the parser to use arrays for query strings instead of storing them as strings. 2008-08-01 15:09:57 +00:00
Aryeh Gregor
91ac68478f Start finding more bugs in Linker::link() by having the Parser use it, and running the parser tests.
* Support class="extiw"
* Do not double the fragment for external links with fragments.  Move the code for this into a new Title::getLinkUrl() instead of a Linker method, because it seems like a useful concept to be able to get a *usable* link to the current Title.
* Fix a few parser tests that expected attributes in the opposite order.
* Don't overwrite actions for broken links.
* Style

If you want me to stop doing this, by the way, please say so before I spend too many more hours of my life on it.
2008-08-01 15:02:46 +00:00
Tim Starling
64378ddf3b $wgCleanSignatures to disable Parser::cleanSig(). Requested by Wikia. 2008-07-31 09:41:28 +00:00
Brion Vibber
be32f516df Revert r38196, r38204 -- "(bugs 6089, 13079) Show edit section links for transcluded template if, and only if the user can edit it, made Title::getUserPermissionsErrorsInternal() public so that it can be used in Parser and it can pass the User object from ParserOptions. " & co
Cause regression in 19 parser test cases, looks like messing up the tooltips for section edit links.

  19 previously failing test(s) now PASSING! :)
      * Bug 6563: Edit link generation for section shown by <includeonly>  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Bug 6563: Edit link generation for section suppressed by <includeonly>  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Basic section headings  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Section headings with TOC  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Handling of sections up to level 6 and beyond  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * TOC regression (bug 9764)  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * TOC with wgMaxTocLevel=3 (bug 6204)  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Resolving duplicate section names  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Resolving duplicate section names with differing case (bug 10721)  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Template with sections, __NOTOC__  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Link inside a section heading  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * TOC regression (bug 12077)  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Fuzz testing: Parser14  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Fuzz testing: Parser14-table  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Inclusion of !userCanEdit() content  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Out-of-order TOC heading levels  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * -{}- tags within headlines (within html for parserConvert())  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Morwen/13: Unclosed link followed by heading  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * HHP2.2: Heuristics for headings in preprocessor parenthetical structures  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
2008-07-29 23:56:30 +00:00
Alexandre Emsenhuber
b19693ddb4 Per talk with Simetrical, add a param to Title::quickUserCan and Title::userCan instead of making Title::getUserPermissionsErrorsInternal() public, also update ParserCache to use this param 2008-07-29 20:35:11 +00:00
Alexandre Emsenhuber
9b44e8f749 * (bugs 6089, 13079) Show edit section links for transcluded template if, and only if the user can edit it, made Title::getUserPermissionsErrorsInternal() public so that it can be used in Parser and it can pass the User object from ParserOptions.
* Get the stubthreshold option from ParserOptions and not from $wgUser
2008-07-29 17:28:26 +00:00
Aryeh Gregor
39273d2c67 Recommit r38149, with the fatal error fixed. The EditSectionLinkForOther hook is now removed entirely -- EditSectionLink is run unconditionally instead. This is extremely unlikely to break any extensions. 2008-07-28 23:52:55 +00:00
Brion Vibber
8cce306e05 Revert r38149 for now, causes regressions in API parsing.
Bug 14965 - https://bugzilla.wikimedia.org/show_bug.cgi?id=14965

PHP Catchable fatal error:  Argument 1 passed to Title::equals() must be an instance of Title, null given, called in /usr/local/apache/common-local/php-1.5/includes/Linker.php on line 1323 and defined in /usr/local/apache/common-local/php-1.5/includes/Title.php on line 3003 
$wgTitle isn't available in this sort of background rendering.
2008-07-28 23:00:14 +00:00
Aryeh Gregor
34bf34d923 Linker::doEditSectionLink() and Linker::doEditSectionLinkForOther() and their respective hooks are redundant and confusing. They do exactly the same thing with a slightly different interface. Their hooks are not only redundant but relatively ineffective, because they wrap in brackets and a span *after* the hook returns. This makes them useless for, e.g., changing the section edit link to an image (can't remove brackets), or using any block-level element (wrapped in a span).
Make Linker::doEditSectionLink() public, and change its interface to be like that of editSectionLink().  Use that in Parser (which is the only place that uses the old functions that I can find), and mark the old two functions deprecated.  Add a hook 'DoEditSectionLink' with a new, clean interface, which is run immediately before the return so it can override the whole function.  Advise people in hooks.txt to use the new hook, not the old ones.
2008-07-28 20:33:43 +00:00
Chad Horohoe
14a80040bf Deprecate SiteStats::admins() in favor of SiteStats::numberingroup('sysop'). Should make bug 13471 easy. 2008-07-28 15:49:44 +00:00
Aryeh Gregor
daa32e8ccb Break at 80 columns in some comments. Also improve documentation for $wgArticleRobotPolicies. 2008-07-24 18:10:35 +00:00
Aryeh Gregor
9bf022910a (bug 8068) New __INDEX__ and __NOINDEX__ magic words allow control of search engine indexing on a per-article basis. Remarks:
* Currently __INDEX__ will override __NOINDEX__ regardless of their relative positions, due to the way things are written.  Instead, the last one on the page should win.  This should be pretty easy to fix.
* __INDEX__ and __NOINDEX__ override $wgArticleRobotPolicies.  This is almost certainly incorrect, but it's not totally obvious how to fix it, because of the way the code is structured.  Probably not a big deal, but should probably be fixed at some point.
* Anyone can add and remove the magic words, and there's no config option to disable them.  It's not obvious whether this is okay or not.  It would be a one-line change to OutputPage.php to have a config option to ignore the magic words, maybe per-namespace or who knows what.
2008-07-23 19:49:46 +00:00
Aryeh Gregor
258740c2df Revert last commit for a moment, committed lots of stuff I didn't mean to. 2008-07-23 19:27:13 +00:00
Aryeh Gregor
0e7fa5b28b Follow-up to r37968: forgot to commit the change setRobotpolicy -> setRobotPolicy in extensions. 2008-07-23 19:25:48 +00:00
Tim Starling
3e541d529b Some documentation for SFH_OBJECT_ARGS 2008-07-23 14:51:39 +00:00
Tim Starling
d6f0a95465 * Split off DB load monitoring logic into a LoadMonitor class hierarchy, to allow for plugins in this area.
* Use an associative array to initialise LoadBalancer objects
* By default, use Preprocessor_DOM if available, otherwise use Preprocessor_Hash. Preprocessor_Hash has worse performance.
* Fix parserTests.php for replicated databases. Use CREATE TABLE instead of CREATE TEMPORARY TABLE if there is more than one server configured.
* Log exceptions even in command-line mode.
2008-07-07 03:31:00 +00:00
Brion Vibber
742973c85b Revert r37078, 37132 "New hook ParserBeforeTranscludeTemplate:
This hook allows for modification of the title and text of a template which is being transcluded.

Use of this hook will allow extensions to create features such as TransWiki for an alternative to ScaryTransclusions."

This hook seems a bit oddly placed to me; the template gets fetched locally, and *then* we give the opportunity to fetch it remotely instead? Just seems to be in the wrong order, and pretty unclear.
2008-07-05 22:45:37 +00:00
Daniel Friesen
1154642f75 Minor fix, $parser was passed instead of $this like it should have been. 2008-07-05 20:38:02 +00:00
Daniel Friesen
e339f61471 New hook ParserBeforeTranscludeTemplate:
This hook allows for modification of the title and text of a template which is being transcluded.

Use of this hook will allow extensions to create features such as TransWiki for an alternative to ScaryTransclusions.
2008-07-05 03:36:12 +00:00
Brion Vibber
f54ec4339e Some cleanup for r36609:
$url and $alt parameters in makeExternalImage() are now normalized to be escaped on output instead of before they reach the function. This ensures that any hooks processing them won't accidentally send plaintext which might become an injection vector, or just get confused on pre-escaped input they didn't expect.
2008-07-02 01:19:00 +00:00
Daniel Kinzler
24d5e941a0 added PPCustomFrame classes to restore ability to use replaceVariables with a custom map of values. This should unbreak some extensions that were broken by the new PP stuff, like the News extension. 2008-06-26 13:05:40 +00:00
Raimond Spekking
1701f46f07 Fix for r36587:
* Do not overwrite the previous found $tz when $wgLocaltimezone is set
* Rename message name to a more specific one
* Add message to the message files
2008-06-25 12:09:32 +00:00
Mohamed Magdy
96cc2819c7 Patch that fixes bug number 14452. patch by AhmadSherif. 2008-06-23 22:39:49 +00:00
Tim Starling
c6b902f180 * Reorganised the includes directory, creating subdirectories db, parser and specials
* Wrote a tool to check the integrity of the autoloader class list, fixed some issues that came up.
* Start the autoloader before LocalSettings.php, so that when an extension writer thinks an inefficient one-file special page extension is the way to go, they don't have to use explicit includes to make the class inheritance work. Should continue to work with $IP set in LocalSettings.php as long as $IP is set before extensions are included.
2008-06-16 20:21:26 +00:00
Renamed from includes/Parser.php (Browse further)