IMHO this is an excellent opportunity to kill a horrible interface and replace it with a sane one. Note the only use of the BrokenLink hook currently in our SVN is in SemanticForms:
/**
* Sets the URL for form-based adding of a nonexistent (broken-linked, AKA
* red-linked) page
*/
function sffSetBrokenLink(&$linker, $title, $query, &$u, &$style, &$prefix, &$text, &$inside, &$trail) {
$link = sffAddDataLink($title);
if ($link != '')
$u = $link;
return true;
}
In the unlikely event that anybody else is really needing the exact hook details, I'm sure there's a much nicer, more future-friendly way to do it. Make a new hook and let these hypothetical extensions fix themselves up. :)
* Do not add action=edit to nonexistent special pages.
* Add profiling point for the bit where we add classes in linkAttribs().
* Turn makeLinkObj(), makeKnownLinkObj(), makeBrokenLinkObj() into wrappers for link(). This requires the creation of two new functions to turn query strings/attribute strings into arrays, but still results in fewer LOC (-11 lines) due to less code duplication. This should be well-tested by the parser tests, because pretty much all link creation now goes through link(), but the only changes are encoding single quotes in attributes, which is a good change. I find no additional database queries, so since this isn't a CPU bottleneck, there should be no performance issues.
In particular:
Xml.php
* Add textarea method to Xml class.
* Make submit button optional for Xml::buildForm
* Right-align labels in buildForm.
Article.php:
* Make ArticleDelete hook display a real error
EditPage.php:
* Split off getBaseRevision()
Title.php:
* Allow errors to be ignored to be sent to getUserPermissionsErrors.
* Allow AbortMove hook to display a real error.
Block.php:
* Add 'mAngryAutoblock' option, for blocks by software, which does retroactive autoblocks on the last 5 IPs used in the last 7 days.
* Don't triple-escape HTML in drop-down lists :)
* Don't include empty attributes for missing optional parameters
* Use content language, not UI language, for loading predefined reasons
* Adding support for custom name and id, custom class, and custom tabindex to Xml::listDropDown
* Changing the order of parameters Xml::listDropDown accepts.
* Updating ipblock, file deletion and page deletion forms so they all use this new Xml element rather than holding three copies of similar code.
* Removing variables which are no more used in the three above forms.
* Renaming a few variables to follow the coding style of MediaWiki.
* Generates a drop-down box given the required information
* Supports marking the approrpiate option as pre-selected
* Shall be used on deletion and protection pages, where a dropdown is used to select the appropriate reason for the action
Godawful hack... we'll be frequently passed selected namespaces as strings since PHP is such a shithole.
But we also don't want blanks and nulls and "all"s matching 0, so let's convert *just* string ints to clean ints.
* Use accessors instead of direct access to static members
* Use existing XML functions to make life easier and guarantee clean XHTML
* Drop the useless class (use the ID in CSS)