r38161 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r38160‎ | r38161 | r38162 >
Date:23:52, 28 July 2008
Author:simetrical
Status:old
Tags:
Comment:
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.
Modified paths:
  • /trunk/phase3/RELEASE-NOTES (modified) (history)
  • /trunk/phase3/docs/hooks.txt (modified) (history)
  • /trunk/phase3/includes/Linker.php (modified) (history)
  • /trunk/phase3/includes/parser/Parser.php (modified) (history)

Diff [purge]

Index: trunk/phase3/docs/hooks.txt
@@ -533,6 +533,17 @@
534534 $article: article (object) being viewed
535535 $oldid: oldid (int) being viewed
536536
 537+'DoEditSectionLink': Override the HTML generated for section edit links
 538+$skin: Skin object rendering the UI
 539+$title: Title object for the title being linked to (may not be the same as
 540+ $wgTitle, if the section is included from a template)
 541+$section: The designation of the section being pointed to, to be included in
 542+ the link, like "&section=$section"
 543+$tooltip: The default tooltip. Escape with htmlspecialchars() before using.
 544+ By default, this is wrapped in the 'editsectionhint' message.
 545+$result: The HTML to return, prefilled with the default plus whatever other
 546+ changes earlier hooks have made
 547+
537548 'EditFilter': Perform checks on an edit
538549 $editor: Edit form (see includes/EditPage.php)
539550 $text: Contents of the edit box
@@ -579,21 +590,13 @@
580591 &$editpage: The current EditPage object
581592 &$buttons: Array of edit buttons "Save", "Preview", "Live", and "Diff"
582593
583 -'EditSectionLink': Override the return value of Linker::editSectionLink()
 594+'EditSectionLink': Do not use, use DoEditSectionLink instead.
584595 $skin: Skin rendering the UI
585596 $title: Title being linked to
586597 $section: Section to link to
587598 $link: Default link
588599 $result: Result (alter this to override the generated links)
589600
590 -'EditSectionLinkForOther': Override the return value of Linker::editSectionLinkForOther()
591 -$skin: Skin rendering the UI
592 -$title: Title being linked to
593 -$section: Section to link to
594 -$hint: Anchor title/tooltip attributes
595 -$link: Default link
596 -$result: Result (alter this to override the generated links)
597 -
598601 'EmailConfirmed': When checking that the user's email address is "confirmed"
599602 $user: User being checked
600603 $confirmed: Whether or not the email address is confirmed
Index: trunk/phase3/includes/parser/Parser.php
@@ -3609,9 +3609,9 @@
36103610 if( $isTemplate ) {
36113611 # Put a T flag in the section identifier, to indicate to extractSections()
36123612 # that sections inside <includeonly> should be counted.
3613 - $editlink = $sk->editSectionLinkForOther($titleText, "T-$sectionIndex");
 3613+ $editlink = $sk->doEditSectionLink(Title::newFromText( $titleText ), "T-$sectionIndex");
36143614 } else {
3615 - $editlink = $sk->editSectionLink($this->mTitle, $sectionIndex, $headlineHint);
 3615+ $editlink = $sk->doEditSectionLink($this->mTitle, $sectionIndex, $headlineHint);
36163616 }
36173617 } else {
36183618 $editlink = '';
Index: trunk/phase3/includes/Linker.php
@@ -1276,6 +1276,7 @@
12771277 * @param $section Integer: section number.
12781278 */
12791279 public function editSectionLinkForOther( $title, $section ) {
 1280+ wfDeprecated( __METHOD__ );
12801281 $title = Title::newFromText( $title );
12811282 return $this->doEditSectionLink( $title, $section, '', 'EditSectionLinkForOther' );
12821283 }
@@ -1286,48 +1287,55 @@
12871288 * @param $hint Link String: title, or default if omitted or empty
12881289 */
12891290 public function editSectionLink( Title $nt, $section, $hint='' ) {
1290 - if( $hint != '' ) {
1291 - $hint = wfMsgHtml( 'editsectionhint', htmlspecialchars( $hint ) );
1292 - $hint = " title=\"$hint\"";
1293 - }
 1291+ wfDeprecated( __METHOD__ );
12941292 return $this->doEditSectionLink( $nt, $section, $hint, 'EditSectionLink' );
12951293 }
12961294
12971295 /**
1298 - * Implement editSectionLink and editSectionLinkForOther.
 1296+ * Create a section edit link. This supersedes editSectionLink() and
 1297+ * editSectionLinkForOther().
12991298 *
1300 - * @param $nt Title object
1301 - * @param $section Integer, section number
1302 - * @param $hint String, for HTML title attribute
1303 - * @param $hook String, name of hook to run
1304 - * @return String, HTML to use for edit link
 1299+ * @param $nt Title The title being linked to (may not be the same as
 1300+ * $wgTitle, if the section is included from a template)
 1301+ * @param $section string The designation of the section being pointed to,
 1302+ * to be included in the link, like "&section=$section"
 1303+ * @param $tooltip string The tooltip to use for the link: will be escaped
 1304+ * and wrapped in the 'editsectionhint' message
 1305+ * @return string HTML to use for edit link
13051306 */
1306 - protected function doEditSectionLink( Title $nt, $section, $hint, $hook ) {
1307 - global $wgContLang;
1308 - $editurl = '&section='.$section;
 1307+ public function doEditSectionLink( Title $nt, $section, $tooltip='' ) {
 1308+ $attribs = '';
 1309+ if( $tooltip ) {
 1310+ $attribs = wfMsgHtml( 'editsectionhint', htmlspecialchars( $tooltip ) );
 1311+ $attribs = " title=\"$attribs\"";
 1312+ }
 1313+
13091314 $url = $this->makeKnownLinkObj(
13101315 $nt,
13111316 htmlspecialchars(wfMsg('editsection')),
1312 - 'action=edit'.$editurl,
1313 - '', '', '', $hint
 1317+ "action=edit&section=$section",
 1318+ '', '', '', $attribs
13141319 );
 1320+
 1321+ # Run the old hook
13151322 $result = null;
1316 -
1317 - // The two hooks have slightly different interfaces . . .
1318 - if( $hook == 'EditSectionLink' ) {
1319 - wfRunHooks( 'EditSectionLink', array( &$this, $nt, $section, $hint, $url, &$result ) );
1320 - } elseif( $hook == 'EditSectionLinkForOther' ) {
1321 - wfRunHooks( 'EditSectionLinkForOther', array( &$this, $nt, $section, $url, &$result ) );
 1323+ wfRunHooks( 'EditSectionLink', array( &$this, $nt, $section, $attribs, $url, &$result ) );
 1324+ if( !is_null( $result ) ) {
 1325+ # For reverse compatibility, add the brackets *after* the hook is
 1326+ # run, and even add them to hook-provided text. (This is the main
 1327+ # reason that the EditSectionLink hook is deprecated in favor of
 1328+ # DoEditSectionLink: it can't change the brackets or the span.)
 1329+ $result = wfMsgHtml( 'editsection-brackets', $url );
 1330+ return "<span class=\"editsection\">$result</span>";
13221331 }
13231332
1324 - // For reverse compatibility, add the brackets *after* the hook is run,
1325 - // and even add them to hook-provided text.
1326 - if( is_null( $result ) ) {
1327 - $result = wfMsgHtml( 'editsection-brackets', $url );
1328 - } else {
1329 - $result = wfMsgHtml( 'editsection-brackets', $result );
1330 - }
1331 - return "<span class=\"editsection\">$result</span>";
 1333+ # Add the brackets and the span, and *then* run the nice new hook, with
 1334+ # clean and non-redundant arguments.
 1335+ $result = wfMsgHtml( 'editsection-brackets', $url );
 1336+ $result = "<span class=\"editsection\">$result</span>";
 1337+
 1338+ wfRunHooks( 'DoEditSectionLink', array( $this, $nt, $section, $tooltip, &$result ) );
 1339+ return $result;
13321340 }
13331341
13341342 /**
Index: trunk/phase3/RELEASE-NOTES
@@ -29,6 +29,11 @@
3030 * (bug 8068) New __INDEX__ and __NOINDEX__ magic words allow user control of
3131 search engine indexing on a per-article basis.
3232 * Handheld stylesheet options
 33+* Added 'DoEditSectionLink' hook as a cleaner unified version of the old
 34+ 'EditSectionLink' and 'EditSectionLinkForOther' hooks. Note that the
 35+ 'EditSectionLinkForOther' hook has been removed, but 'EditSectionLink' is
 36+ run in all cases instead, so extensions using the old hooks should still work
 37+ if they ran roughly the same code for both hooks (as is almost certain).
3338
3439 === Bug fixes in 1.14 ===
3540

Follow-up revisions

RevisionCommit summaryAuthorDate
r79742More ancient deprecated functions:...happy-melon18:53, 6 January 2011

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r38149Linker::doEditSectionLink() and Linker::doEditSectionLinkForOther() and their...simetrical20:33, 28 July 2008

Status & tagging log