aboutsummaryrefslogtreecommitdiffstats
path: root/docs
Commit message (Collapse)AuthorAgeFilesLines
* Merge "ChangesListSpecialPage: Implement two new hooks superseding 4 old ones"jenkins-bot2014-04-141-2/+20
|\
| * ChangesListSpecialPage: Implement two new hooks superseding 4 old onesBartosz Dziewoński2014-04-111-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Old hooks (called by SpecialWatchlist, SpecialRecentChanges and SpecialRecentChangesLinked) have been deprecated, but I'm not planning to remove them anytime soon. (They have lots of usages in extensions as of this writing.) The new hooks (and their deprecated friends) are: * ChangesListSpecialPageFilters: * Replaces: SpecialRecentChangesFilters and SpecialWatchlistFilters * The signature for this one is exactly the same as signatures for the other two. We might want to pass something else than $this here… * ChangesListSpecialPageQuery * Replaces: SpecialRecentChangesQuery and SpecialWatchlistQuery * These hooks have wildly different signatures. The new one is a superset of the old ones, in a more reasonable order, with the addition of the name of the special page we're doing right now. Change-Id: I9cceda5d2dcfc53c852c5682c466b48ad8f31202
* | Fix KSS mediawiki.ui style guide (docs)Juliusz Gonera2014-04-112-4/+4
|/ | | | | | Broken after a change in directory structure... Change-Id: Ibe208302c30483ee9476a176efe8dd88b21d30a5
* Split /resources into /resources/lib and /resources/srcJames D. Forrester2014-04-077-0/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, MediaWiki has a mess of resources, some but not all of which are upstream libraries. This means that occasionally people will attempt to make local modifications of the libraries by accident, or deliberately but do not flag it, making dependency management a challenge (and fixing upstream-related bugs a headache). Instead, we now split the /resources directory into a /resources/lib directory for those items which are used purely as intact upstream libraries, and a /resources/src directroy for those which are either local libraries written for MediaWiki and mastered here, or downstream forks of upstream libraries which require particular care and attention when being upgraded. Also, some incidental files which are not to be loaded as part of a module have been moved to better locations. Upstream libaries * jquery resources/jquery/jquery.js * jquery.appear resources/jquery/jquery.appear.js * jquery.async resources/jquery/jquery.async.js * jquery.chosen resources/jquery.chosen/* * jquery.cookie resources/jquery/jquery.cookie.js * jquery.form resources/jquery/jquery.form.js * jquery.fullscreen.js resources/jquery/jquery.fullscreen.js * jquery.hoverIntent resources/jquery/jquery.hoverIntent.js * jquery.json resources/jquery/jquery.json.js * jquery.mockjax resources/jquery/jquery.mockjax.js * jquery.qunit resources/jquery/jquery.qunit.css resources/jquery/jquery.qunit.js * jquery.jStorage resources/jquery/jquery.jStorage.js * jquery.throttle-debounce resources/jquery/jquery.ba-throttle-debounce.js * jquery.validate resources/jquery/jquery.validate.js * jquery.xmldom resources/jquery/jquery.xmldom.js * moment resources/moment/* * OOjs resource/oojs/* * OOjs UI resources/oojs-ui/* * jquery.ui.* resources/jquery.ui/* resources/jquery.ui/themes/default moved to resources/lib/jquery.ui/themes/ resources/jquery.ui/themes/vector moved to resources/src/jquery.ui-themes/ * jquery.effects.* resources/jquery.effects/* * sinon resources/sinonjs/* Upstream libraries forked for MediaWiki * jquery.color resources/jquery/jquery.color.js * jquery.tipsy resources/jquery.tipsy/* Local libraries * jquery.arrowSteps resources/jquery/jquery.arrowSteps.css resources/jquery/jquery.arrowSteps.js resources/jquery/images/jquery.arrowSteps.divider-ltr.png resources/jquery/images/jquery.arrowSteps.divider-rtl.png resources/jquery/images/jquery.arrowSteps.head-ltr.png resources/jquery/images/jquery.arrowSteps.head-rtl.png resources/jquery/images/jquery.arrowSteps.tail-ltr.png resources/jquery/images/jquery.arrowSteps.tail-rtl.png * jquery.autoEllipsis resources/jquery/jquery.autoEllipsis.js * jquery.badge resources/jquery/jquery.badge.css resources/jquery/jquery.badge.js * jquery.byteLength resources/jquery/jquery.byteLength.js * jquery.byteLimit resources/jquery/jquery.byteLimit.js * jquery.checkboxShiftClick resources/jquery/jquery.checkboxShiftClick.js * jquery.client resources/jquery/jquery.client.js * jquery.colorUtil resources/jquery/jquery.colorUtil.js * jquery.delayedBind resources/jquery/jquery.delayedBind.js * jquery.expandableField resources/jquery/jquery.expandableField.js * jquery.farbtastic resources/jquery/jquery.farbtastic.css resources/jquery/jquery.farbtastic.js resources/jquery/images/marker.png resources/jquery/images/mask.png resources/jquery/images/wheel.png * jquery.footHovzer resources/jquery/jquery.footHovzer.css resources/jquery/jquery.footHovzer.js * jquery.getAttrs resources/jquery/jquery.getAttrs.js * jquery.hidpi resources/jquery/jquery.hidpi.js * jquery.highlightText resources/jquery/jquery.highlightText.js * jquery.localize resources/jquery/jquery.localize.js * jquery.makeCollapsible resources/jquery/jquery.makeCollapsible.css resources/jquery/jquery.makeCollapsible.js * jquery.mw-jump resources/jquery/jquery.mw-jump.js * jquery.mwExtension resources/jquery/jquery.mwExtension.js * jquery.placeholder resources/jquery/jquery.placeholder.js * jquery.spinner resources/jquery/jquery.spinner.css resources/jquery/jquery.spinner.js resources/jquery/images/spinner-large.gif resources/jquery/images/spinner.gif * jquery.suggestions resources/jquery/jquery.suggestions.css resources/jquery/jquery.suggestions.js * jquery.tabIndex resources/jquery/jquery.tabIndex.js * jquery.tablesorter resources/jquery/jquery.tablesorter.css resources/jquery/jquery.tablesorter.js resources/jquery/images/sort_both.gif resources/jquery/images/sort_down.gif resources/jquery/images/sort_none.gif resources/jquery/images/sort_up.gif * jquery.textSelection resources/jquery/jquery.textSelection.js * jquery.qunit.completenessTest resources/jquery/jquery.qunit.completenessTest.js * mediawiki resources/mediawiki/mediawiki.js resources/mediawiki/mediawiki.log.js * mediawiki.api resources/mediawiki.api/mediawiki.api.js * mediawiki.api.category resources/mediawiki.api/mediawiki.api.category.js * mediawiki.api.edit resources/mediawiki.api/mediawiki.api.edit.js * mediawiki.api.login resources/mediawiki.api/mediawiki.api.login.js * mediawiki.api.parse resources/mediawiki.api/mediawiki.api.parse.js * mediawiki.api.watch resources/mediawiki.api/mediawiki.api.watch.js * mediawiki.debug resources/mediawiki/mediawiki.debug.js resources/mediawiki/mediawiki.debug.less resources/mediawiki/mediawiki.debug.profile.css resources/mediawiki/mediawiki.debug.profile.js * mediawiki.debug.init resources/mediawiki/mediawiki.debug.init.js * mediawiki.feedback resources/mediawiki/mediawiki.feedback.css resources/mediawiki/mediawiki.feedback.js resources/mediawiki/mediawiki.feedback.spinner.gif * mediawiki.hidpi resources/mediawiki/mediawiki.hidpi.js * mediawiki.hlist resources/mediawiki/mediawiki.hlist.css resources/mediawiki/mediawiki.hlist.js * mediawiki.htmlform resources/mediawiki/mediawiki.htmlform.js * mediawiki.icon resources/mediawiki/mediawiki.icon.less resources/mediawiki/images/arrow-collapsed-ltr.png resources/mediawiki/images/arrow-collapsed-ltr.svg resources/mediawiki/images/arrow-collapsed-rtl.png resources/mediawiki/images/arrow-collapsed-rtl.svg resources/mediawiki/images/arrow-expanded.png resources/mediawiki/images/arrow-expanded.svg * mediawiki.inspect resources/mediawiki/mediawiki.inspect.js * mediawiki.notification resources/mediawiki/mediawiki.notification.css resources/mediawiki/mediawiki.notification.hideForPrint.css resources/mediawiki/mediawiki.notification.js * mediawiki.notify resources/mediawiki/mediawiki.notify.js * mediawiki.searchSuggest resources/mediawiki/mediawiki.searchSuggest.css resources/mediawiki/mediawiki.searchSuggest.js * mediawiki.Title resources/mediawiki/mediawiki.Title.js * mediawiki.toc resources/mediawiki/mediawiki.toc.js * mediawiki.Uri resources/mediawiki/mediawiki.Uri.js * mediawiki.user resources/mediawiki/mediawiki.user.js * mediawiki.util resources/mediawiki/mediawiki.util.js * mediawiki.action.edit resources/mediawiki.action/mediawiki.action.edit.js * mediawiki.action.edit.styles resources/mediawiki.action/mediawiki.action.edit.styles.css * mediawiki.action.edit.collapsibleFooter resources/mediawiki.action/mediawiki.action.edit.collapsibleFooter.css resources/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js * mediawiki.action.edit.preview resources/mediawiki.action/mediawiki.action.edit.preview.js * mediawiki.action.history resources/mediawiki.action/mediawiki.action.history.js * mediawiki.action.history.diff resources/mediawiki.action/mediawiki.action.history.diff.css * mediawiki.action.view.dblClickEdit resources/mediawiki.action/mediawiki.action.view.dblClickEdit.js * mediawiki.action.view.metadata resources/mediawiki.action/mediawiki.action.view.metadata.js * mediawiki.action.view.postEdit resources/mediawiki.action/mediawiki.action.view.postEdit.css resources/mediawiki.action/mediawiki.action.view.postEdit.js resources/mediawiki.action/images/green-checkmark.png * mediawiki.action.view.redirectToFragment resources/mediawiki.action/mediawiki.action.view.redirectToFragment.js * mediawiki.action.view.rightClickEdit resources/mediawiki.action/mediawiki.action.view.rightClickEdit.js * mediawiki.action.edit.editWarning resources/mediawiki.action/mediawiki.action.edit.editWarning.js * mediawiki.action.watch.ajax No files associated with this resource. * mediawiki.language resources/mediawiki.language/mediawiki.language.js resources/mediawiki.language/mediawiki.language.numbers.js resources/mediawiki.language/languages/bs.js resources/mediawiki.language/languages/dsb.js resources/mediawiki.language/languages/fi.js resources/mediawiki.language/languages/ga.js resources/mediawiki.language/languages/he.js resources/mediawiki.language/languages/hsb.js resources/mediawiki.language/languages/hu.js resources/mediawiki.language/languages/hy.js resources/mediawiki.language/languages/la.js resources/mediawiki.language/languages/os.js resources/mediawiki.language/languages/ru.js resources/mediawiki.language/languages/sl.js resources/mediawiki.language/languages/uk.js * mediawiki.cldr resources/mediawiki.language/mediawiki.cldr.js * mediawiki.libs.pluralruleparser Possibly should be moved to /lib resources/mediawiki.libs/CLDRPluralRuleParser.js * mediawiki.language.init resources/mediawiki.language/mediawiki.language.init.js * mediawiki.jqueryMsg resources/mediawiki/mediawiki.jqueryMsg.js resources/mediawiki/mediawiki.jqueryMsg.peg * mediawiki.language.months resources/mediawiki.language/mediawiki.language.months.js * mediawiki.libs.jpegmeta resources/mediawiki.libs/mediawiki.libs.jpegmeta.js * mediawiki.page.gallery resources/mediawiki.page/mediawiki.page.gallery.js * mediawiki.page.ready resources/mediawiki.page/mediawiki.page.ready.js * mediawiki.page.startup resources/mediawiki.page/mediawiki.page.startup.js * mediawiki.page.patrol.ajax resources/mediawiki.page/mediawiki.page.patrol.ajax.js * mediawiki.page.watch.ajax resources/mediawiki.page/mediawiki.page.watch.ajax.js * mediawiki.page.image.pagination resources/mediawiki.page/mediawiki.page.image.pagination.js * mediawiki.special resources/mediawiki.special/mediawiki.special.css resources/mediawiki.special/mediawiki.special.js * mediawiki.special.block resources/mediawiki.special/mediawiki.special.block.css resources/mediawiki.special/mediawiki.special.block.js * mediawiki.special.changeemail resources/mediawiki.special/mediawiki.special.changeemail.css resources/mediawiki.special/mediawiki.special.changeemail.js * mediawiki.special.changeslist resources/mediawiki.special/mediawiki.special.changeslist.css * mediawiki.special.changeslist.legend resources/mediawiki.special/mediawiki.special.changeslist.legend.css * mediawiki.special.changeslist.legend.js resources/mediawiki.special/mediawiki.special.changeslist.legend.js * mediawiki.special.changeslist.enhanced resources/mediawiki.special/mediawiki.special.changeslist.enhanced.css * mediawiki.special.movePage resources/mediawiki.special/mediawiki.special.movePage.js * mediawiki.special.pagesWithProp resources/mediawiki.special/mediawiki.special.pagesWithProp.css * mediawiki.special.preferences resources/mediawiki.special/mediawiki.special.preferences.css resources/mediawiki.special/mediawiki.special.preferences.js * mediawiki.special.recentchanges resources/mediawiki.special/mediawiki.special.recentchanges.js * mediawiki.special.search resources/mediawiki.special/mediawiki.special.search.css resources/mediawiki.special/mediawiki.special.search.js * mediawiki.special.undelete resources/mediawiki.special/mediawiki.special.undelete.js * mediawiki.special.upload resources/mediawiki.special/mediawiki.special.upload.js * mediawiki.special.userlogin.common.styles resources/mediawiki.special/mediawiki.special.userlogin.common.css resources/mediawiki.special/images/icon-lock.png * mediawiki.special.userlogin.signup.styles resources/mediawiki.special/mediawiki.special.userlogin.signup.css resources/mediawiki.special/images/icon-edits.png resources/mediawiki.special/images/icon-pages.png resources/mediawiki.special/images/icon-contributors.png * mediawiki.special.userlogin.login.styles resources/mediawiki.special/mediawiki.special.userlogin.login.css resources/mediawiki.special/images/glyph-people-large.png * mediawiki.special.userlogin.common.js resources/mediawiki.special/mediawiki.special.userlogin.common.js * mediawiki.special.userlogin.signup.js resources/mediawiki.special/mediawiki.special.userlogin.signup.js * mediawiki.special.javaScriptTest resources/mediawiki.special/mediawiki.special.javaScriptTest.js * mediawiki.special.version resources/mediawiki.special/mediawiki.special.version.css * mediawiki.ui resources/mediawiki.ui/default.less resources/mediawiki.ui/vector.less resources/mediawiki.ui/components/utilities.less resources/mediawiki.ui/components/default/forms.less resources/mediawiki.ui/components/vector/containers.less resources/mediawiki.ui/components/vector/forms.less resources/mediawiki.ui/mixins/effects.less resources/mediawiki.ui/mixins/forms.less resources/mediawiki.ui/mixins/type.less resources/mediawiki.ui/mixins/utilities.less resources/mediawiki.ui/settings/colors.less resources/mediawiki.ui/settings/typography.less resources/mediawiki.ui/styleguide.md * mediawiki.ui.button resources/mediawiki.ui/components/default/buttons.less resources/mediawiki.ui/components/vector/buttons.less Legacy modules, untouched: * mediawiki.legacy.ajax * mediawiki.legacy.commonPrint * mediawiki.legacy.config * mediawiki.legacy.protect * mediawiki.legacy.shared * mediawiki.legacy.oldshared * mediawiki.legacy.upload * mediawiki.legacy.wikibits Miscellaneous files moved elsewhere * A currently-failing (unused?) script attempting to build some kss style documentation. Previously in the root of the resources directory, now moved to a new folder, /docs/kss. Makefile README.txt package.json scripts/nodecheck.sh styleguide-template/index.html styleguide-template/public/kss.less styleguide-template/public/less.js * ResourceLoader startup JS code was also moved to /src resources/startup.js * mediawiki.mixins, hard-coded to be loaded by ResourceLoader, also moved to /src resources/mediawiki.less/mediawiki.mixins.animation.less resources/mediawiki.less/mediawiki.mixins.less resources/mediawiki.less/mediawiki.mixins.rotation.less * jquery.cycle.all.js appears not to be refered to (?!): (added in 2f1f0abc6b) resources/jquery/jquery.cycle.all.js Change-Id: Id5ead1453412e763bdb3763084e43694517088fd
* New Hook rc/watchlist hook ChangesListInitRowsErik Bernhardson2014-04-011-0/+5
| | | | | | | | | | | | | | | An extension hooking into recent changes may need to load additional data that did not fit into the recentchanges table. This hook gives extensions an opportunity to see the full result prior to rendering and batch load where approprite rather than loading piecemeal during the render process. This is implemented as an optional method called by the ChangesList consumer, since the ChangesList never sees the full result set. Hook implementers must be able to work regardless of the hook being called, they just have the oportunity to be more efficient when it is called. Change-Id: If74ae600ffba949364dd381dd3d466cbbaa27286
* Update IRCLineURL hook to include RecentChange objectErik Bernhardson2014-03-241-0/+1
| | | | | | | | | The Flow extension has need to change the url output by the IRC formatter. As a temporary fix this allows flow to conditionally replace the url until RC can be adjusted to inteligently generate URL's in a cross-extension way. Change-Id: Ie951e52833a578fecd9423c2e6d3cc10816d7fef
* Moved $wgQueryPages stuff out of the global scope and into a functionChad Horohoe2014-03-181-3/+3
| | | | Change-Id: Ica034bdad89133bfce0b4238d62ed00865936644
* Mention possibility of $revision being null in PageContentSaveCompleteAlex Monk2014-03-151-1/+1
| | | | | | Lead to a fatal in WMF production, see I40c1412d Change-Id: I39e05210e77f3dc0a1fcd995201a9c1ec9bc99f3
* Fixed typo: availableKartik Mistry2014-03-151-2/+2
| | | | Change-Id: If4e28cf04699084ed325835d5ebe1c5900002040
* Add BaseTemplateAfterPortlet hook to add html after portletsaude2014-03-121-0/+6
| | | | | | | | | | | | | Allows extensions to move away from using (or abusing) the SkinTemplateOutputPageBeforeExec hook to add things in places such as after the list of language links. Also explicitly check that $template->data['language_urls'] is not false. Extensions can set it to an empty array to have the language links header be displayed. Bug: 57094 Change-Id: I099fb2ff48e02a2e3564a484aea906263e40bb53
* Add new Hook 'SendWatchlistEmailNotification'bsitu2014-02-251-0/+5
| | | | | Bug: 53569 Change-Id: I73d5eef9a18d59b022c353c4b7d2aee18bfa6591
* Password Expirationcsteipp2014-02-201-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add functionality to expire users' passwords: * Adds column to the user table to keep a password expiration * Adds $wgPasswordExpirationDays, which will force users to reset their passwords after a set number of days. By default, this set to false, so passwords never expire. * Adds a default grace period of 7 days, where if the user's password is expired, they can still login, but are encouraged to reset their password. * Adds hook 'LoginPasswordResetMessage' to update reset message, in case an extension wants to vary the message on a particular reset event. * Adds hook 'ResetPasswordExpiration' to allow extensions to change the expiration date when the user resets their password. E.g., if an extension wants to vary the expiration based on the user's group. If the user is in the grace period, they get a password reset form added to the login successful page. If an extension prevents showing the login successful page (like CentralAuth), it should be updated to show a password change form during the grace period. After the grace period, the user will not be able to login without changing their password. Also prevents a successful reset if the user is "changing" their password to their existing password. No passwords will expire by default. Sites will have to call User->expirePassword() from their own maintenance script to trigger a password reset for a user. Bug: 54997 Change-Id: I92a9fc63b409b182b1d7b48781d73fc7216f8061
* Include the reason when firing the TitleMoveComplete hookSam Smith2014-02-171-0/+1
| | | | | | | | | | As with the ArticleDeletionComplete hook, include the reason for moving the title (article) when firing the TitleMoveComplete hook. See I98703f99a47d5786b7a567df954ba09f6d8862ff for a supporting use case. Change-Id: I875446dddacff7e5a52a0b6e577e6a46a9ae2e6f
* New hook MessageCache::getNiklas Laxström2014-02-101-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example usage: $wgHooks['MessageCache::get'][] = function( &$key ) { static $keys = null; if ( $keys === null ) { global $wgExtensionMessagesFiles; require( $wgExtensionMessagesFiles['OverrideMessages'] ); $keys = array_flip( array_keys( $messages['en'] ) ); } if ( isset( $keys["myprefix-$key"] ) ) { $key = "myprefix-$key"; } return true; } Pros: * Easy way to override standard core and extension messages without any changes to them * Messages can be stored in a standard i18n file * Messages can be translated easily with Translate * Messages can be shared accross multiple wikis easily * Takes advantage of the normal message cache behavior unlike the MessagePreLoad hook * Missing translations fallback to the override, not to the uncustomized standard translation * Do not need to handle conflicting message keys at translatewiki.net if adopted by WMF Cons: * This method is called often, so there will be small performance impact if no hooks are registered. Impact can be big if the implementation of hook subscriber is inefficient. This can help with bugs like 36149. It doesn't remove the manual work needed to detect those messages and adding them to the i18n file. I have been using this patch in a wiki farm for months. Change-Id: Ib39937a440e71ae7292cf992ab37a569189741e4
* Merge "Document SkinVectorStyleModules hook"Jdlrobson2014-02-071-0/+5
|\
| * Document SkinVectorStyleModules hookAlexandre Emsenhuber2013-12-151-0/+5
| | | | | | | | | | | | Follow-up Ica0b69ad95 (8b6ed4d0). Change-Id: Ia0dcd109c53f1b60c690a2159ccaa00319913aa2
* | Merge "Add SkinTemplateGetLanguageLink hook"jenkins-bot2014-02-061-0/+7
|\ \
| * | Add SkinTemplateGetLanguageLink hookBene2014-02-051-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Added SkinTemplateGetLanguageLink hook to allow changing the html of language links. This is needed by the Wikibase extension to display badges of sitelinks. Bug: 60717 Change-Id: I223bf7a7bb0d13942a81b1766acbee62e080348d
* | | Merge "http://www.mediawiki.org --> https://www.mediawiki.org"jenkins-bot2014-02-058-17/+17
|\ \ \ | |/ / |/| |
| * | http://www.mediawiki.org --> https://www.mediawiki.orgLadsgroup2014-01-288-17/+17
| | | | | | | | | | | | | | | | | | Part 1 Change-Id: I07ff886d4832b7148a5ae0443af1498b62cc9525
* | | Merge "Add PreferencesFormPreSave hook"jenkins-bot2014-02-031-0/+6
|\ \ \
| * | | Add PreferencesFormPreSave hookKunal Mehta2014-01-231-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | Allows extensions to modify what preferences will be saved Change-Id: Ibd8331c39afdde39b688d78f3faade2883f0c997
* | | | Merge "Add oldRev parameter to DiffRevisionTools hook"jenkins-bot2014-01-291-1/+2
|\ \ \ \
| * | | | Add oldRev parameter to DiffRevisionTools hookJackmcbarn2014-01-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a third parameter to the DiffRevisionTools hook, containing the old revision. Bug: 57721 Change-Id: I6ee956c5b9901033f618d7e4d09f8f416f3d72cb
* | | | | Merge "(bug 47070) check content model namespace on import."jenkins-bot2014-01-281-0/+9
|\ \ \ \ \ | |_|/ / / |/| | | |
| * | | | (bug 47070) check content model namespace on import.daniel2013-12-171-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When importing, we need to check that the kind of content we are about to import is actually allowed in the specified location on the local wiki. This change does two things: * Introduce the ContentModelCanBeUsedOn hook which provides control over which kind of content can be used where. * Introduce a check against ContentHandler::canBeUsedOn in the importer, along with an appropriate error message. Change-Id: Ia2ff0b0474f4727c9ebbba3c0a2a111495055f61
* | | | | Add $context to the ArticleFromTitle hookBrian Wolff2014-01-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the time people wouldn't need this - this hook is mostly used to inject a custom Article subclass for a specific namespace to do fancy things, but lets give users the most flexibility. Asked for by leaves on irc. Change-Id: I3386ff4abe0e5b3eb783604ae222b7703428db44
* | | | | Merge "Add Status outparam for AbortNewAccount hook to fix API error handling"jenkins-bot2014-01-231-0/+3
|\ \ \ \ \ | |_|_|/ / |/| | | |
| * | | | Add Status outparam for AbortNewAccount hook to fix API error handlingBrion Vibber2014-01-231-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this fix and relevant fix for ConfirmEdit in, an API account creation attempt that fails the captcha check will return a much cleaner error such as: { 'error': { 'code': 'captcha-createaccount-fail', 'info': 'Incorrect or missing CAPTCHA.' } } Abort hooks that use the old interface and send a text message will now be reported with the generic 'createaccount-hook-abort' message code, with the string passed back intact. Previously, the returned result would list the contents of the message _as_ the error code, making it hard for a client to determine the error. 'AbortNewAccount' hook clients can add a '&$status=null' function paramater on their signature, and along with the back-compat message parameter you can set something like: $msg = wfMessage( 'captcha-createaccount-fail' )->text(); // back-compat $status = Status::newFatal( 'captcha-createaccount-fail' ); // new This is done for ConfirmEdit in If9cc08e Bug: 60008 Change-Id: I6ae34c00d1051d34363b6d654424be17dcb1ea30
* | | | | Allow extensions to set a custom error message in the BlockIp hookKunal Mehta2014-01-191-0/+1
|/ / / / | | | | | | | | | | | | Change-Id: I2e3773e22c78370e6ca1de49e7b0976b68d8d76b
* | | | Add hooks in API action=createaccount for CaptchaBrion Vibber2014-01-171-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New hooks: * AddNewAccountApiForm * AddNewAccountApiResult These hooks are used in ConfirmEdit here: Id628def Sample API client: https://github.com/brion/api-createaccount Bug: 46072 Change-Id: If5b7dab80ac85dbfa0f7a54a445356783df5e914
* | | | SpecialWatchlist: Use FormOptions for parameter handlingBartosz Dziewoński2014-01-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SpecialWatchlistQuery hook now gets a FormOptions object as the last parameter instead of an array (which is not bad as bad as it sounds, since the class implements ArrayAccess). Change-Id: Iec4aab870b6e9aa98d2b118010e78e25b1dbe437
* | | | Merge "Add hook to allow extensions to modify the LonelyPages query"jenkins-bot2014-01-081-0/+6
|\ \ \ \
| * | | | Add hook to allow extensions to modify the LonelyPages querykaldari2014-01-081-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First step to solving bug 3483. Bug: 3483 Change-Id: Ie8c5765ddc6b6028836024c426a0369e6966b25e
* | | | | Add reference to the current user to the PageRenderingHash hookphysikerwelt2014-01-061-1/+2
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | To generate a user-dependent cache key it makes sense to pass a reference to the user object, since $wgUser is deprecated. Change-Id: I32a1df52912292230852c31d69968eeb312a4a97
* | | | Added $purgeBlobs flag to LocalisationCacheRecache hookAaron Schulz2013-12-301-0/+1
|/ / / | | | | | | | | | | | | | | | * This helps replace the WMF live hack to skip calling clear() Change-Id: I37bd6cf87e72b6d32e4c6c261abe2a0ef43d067e
* | | Make SpecialContributionsBeforeMainOutput hook more usefulKunal Mehta2013-12-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | The current id number is useless for IP addresses, so it now passes a proper User object. For context, the SpecialPage instance is also provided. Change-Id: Ie196611d504b3969bcdfb5c589716af2f3c54e14
* | | Add SpecialBlockModifyFormFields hookKunal Mehta2013-12-151-0/+4
| |/ |/| | | | | | | | | For extensions to add more fields to Special:Block Change-Id: I00fbc7af1e50e1f76208a3692f152058d2d1879e
* | Add ApiBeforeMain hookBrad Jorsch2013-12-121-0/+3
|/ | | | | | | | | | | | $wgExtensionFunctions is called before the RequestContext is really available (i.e. getTitle() is null, accessing the User object may fail because other extensions' UserLoadFromSession hooks don't expect to be called that early, etc). The index.php code path has BeforeInitialize to take action after RequestContext is available but before much else happens, but the API doesn't (yet) have anything similar. Bug: 58380 Change-Id: I0a167faaa4166da381194c53373d82e038848924
* PersonalUrls hook provides a SkinTemplate, not a SkinKunal Mehta2013-12-081-1/+1
| | | | | | Follow-up to I1116fd64ea0beac148ee75ea4ec050741fc2c3b7 Change-Id: I84b00316f3e6564fb2b3c47a1e7c0c7a9af0c8ac
* Merge "Remove m prefixes from private variables"jenkins-bot2013-11-251-1/+1
|\
| * Remove m prefixes from private variablesChad Horohoe2013-11-251-1/+1
| | | | | | | | | | | | Also tweak a few incorrect comments while we're here Change-Id: I0ef58fe68c60179c53ca6abca069b7b478bf6946
* | Remove a few stray $wgTitle commentsChad Horohoe2013-11-221-3/+3
|/ | | | Change-Id: Idcb9232e641b5f54845408a2a1c1b9fc28f0040b
* SkinTemplate: Add $this as a parameter to PersonalUrls hookBartosz Dziewoński2013-11-161-0/+1
| | | | Change-Id: I1116fd64ea0beac148ee75ea4ec050741fc2c3b7
* Clean up some old readme files and remove references to SVNThis, that and the other2013-11-162-7/+10
| | | | | | | | | | | | | | | | | docs/README: Updated links, got rid of 2008 date at top of file docs/maintenance.txt: Updated link extensions/README: Some cleanup, added link to new git.wikimedia.org includes/DefaultSettings.php: SVN -> Git for udpprofile includes/profiler/ProfilerSimpleUDP.php: ditto languages/MessagesRo.php: removed link to mime.types on SVN from the mimesearch-summary message. This file seems to have been deleted from the modern-day Git repository maintenance/postgres/mediawiki_mysql2postgres.pl: removed SVN magic words That takes care of most of the remaining references to SVN etc. Bug: 38714 Change-Id: I261921df4b4c0545658d6d38c5f3c1f9dfa63ad1
* Revert "Remove unsupported and mostly non-functional Mssql support"MarkAHershberger2013-11-161-0/+1
| | | | | | | | This reverts commit 5e1efc3144d4af3a907d3c79f1ea6b8975ddf453. This sort of thing needs to be discussed. Please do not self-approve changes like this. Change-Id: I9eb9ea315d90584b7fe95db43a6759884f9506b5
* Remove unsupported and mostly non-functional Mssql supportChad Horohoe2013-11-151-1/+0
| | | | Change-Id: Id0a688865a5b7b6bb363f7b118fad4f455d2b3b6
* Give extensions a chance to hide their (unrelated) log entriesMatthias Mullie2013-11-151-0/+7
| | | | Change-Id: Id8b0f29d6e2ac9d7cab8f3d1efcb202062a6ad0b
* Fix false positive in findHooks.phpKunal Mehta2013-11-131-1/+1
| | | | | | Use " instead of ', so the script doesn't think it's a hook Change-Id: Idb28a368eee6bcfe70d1d3aa0a89329769d3fa26
* Standardize spacingKunal Mehta2013-11-121-1/+1
| | | | Change-Id: I1f8d83497fb1e50220993bfc267f05d93250d57c