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

Reply via email to