jenkins-bot has submitted this change and it was merged. Change subject: Support for linking directly to sections in ApiFeedWatchlist. It works only if a section name is present in item's comment. ......................................................................
Support for linking directly to sections in ApiFeedWatchlist. It works only if a section name is present in item's comment. Change-Id: I2547c10b01fab2f835fce856f6213386f309f0af --- M includes/api/ApiFeedWatchlist.php 1 file changed, 22 insertions(+), 1 deletion(-) Approvals: Anomie: Looks good to me, approved jenkins-bot: Verified diff --git a/includes/api/ApiFeedWatchlist.php b/includes/api/ApiFeedWatchlist.php index fdbdcc3..b96ea37 100644 --- a/includes/api/ApiFeedWatchlist.php +++ b/includes/api/ApiFeedWatchlist.php @@ -33,8 +33,9 @@ */ class ApiFeedWatchlist extends ApiBase { - private $linkToDiffs = false; private $watchlistModule = null; + private $linkToDiffs = false; + private $linkToSections = false; /** * This module uses a custom feed wrapper printer. @@ -95,6 +96,12 @@ if ( $params['linktodiffs'] ) { $this->linkToDiffs = true; $fauxReqArr['wlprop'] .= '|ids'; + } + + // Support linking directly to sections when possible + // (possible only if section name is present in comment) + if ( $params['linktosections'] ) { + $this->linkToSections = true; } // Check for 'allrev' parameter, and if found, show all revisions to each page on wl. @@ -164,6 +171,18 @@ $titleUrl = $title->getFullURL(); } $comment = isset( $info['comment'] ) ? $info['comment'] : null; + + // Create an anchor to section. + // The anchor won't work for sections that have dupes on page + // as there's no way to strip that info from ApiWatchlist (apparently?). + // RegExp in the line below is equal to Linker::formatAutocomments(). + if ( $this->linkToSections && $comment !== null && preg_match( '!(.*)/\*\s*(.*?)\s*\*/(.*)!', $comment, $matches ) ) { + global $wgParser; + $sectionTitle = $wgParser->stripSectionName( $matches[2] ); + $sectionTitle = Sanitizer::normalizeSectionNameWhitespace( $sectionTitle ); + $titleUrl .= Title::newFromText( '#' . $sectionTitle )->getFragmentForURL(); + } + $timestamp = $info['timestamp']; $user = $info['user']; @@ -195,6 +214,7 @@ ApiBase::PARAM_MAX => 72, ), 'linktodiffs' => false, + 'linktosections' => false, ); if ( $flags ) { $wlparams = $this->getWatchlistModule()->getAllowedParams( $flags ); @@ -219,6 +239,7 @@ 'feedformat' => 'The format of the feed', 'hours' => 'List pages modified within this many hours from now', 'linktodiffs' => 'Link to change differences instead of article pages', + 'linktosections' => 'Link directly to changed sections if possible', 'allrev' => $wldescr['allrev'], 'wlowner' => $wldescr['owner'], 'wltoken' => $wldescr['token'], -- To view, visit https://gerrit.wikimedia.org/r/55812 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I2547c10b01fab2f835fce856f6213386f309f0af Gerrit-PatchSet: 5 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Kaligula <winn...@gmail.com> Gerrit-Reviewer: Anomie <bjor...@wikimedia.org> Gerrit-Reviewer: Kaligula <winn...@gmail.com> Gerrit-Reviewer: jenkins-bot _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits