LogEventsList::showLogExtract: allow providing custom URL parameters for "view full...
authorGlaisher <glaisher.wiki@gmail.com>
Fri, 13 May 2016 17:44:34 +0000 (22:44 +0500)
committerUmherirrender <umherirrender_de.wp@web.de>
Sun, 22 May 2016 18:04:45 +0000 (18:04 +0000)
Optional 'extraUrlParams' parameter has been added. This is useful for example when you want to
link to subtypes: Special:Log/foo?subtype=bar.
Also change Special:Log link to linkKnown() instead of link() while at it.

Change-Id: I87a6403eb0639c4d93e49d6946b85650f478107b

includes/logging/LogEventsList.php

index da5527e..f29c9e4 100644 (file)
@@ -553,6 +553,7 @@ class LogEventsList extends ContextSource {
         * - flags Integer display flags (NO_ACTION_LINK,NO_EXTRA_USER_LINKS)
         * - useRequestParams boolean Set true to use Pager-related parameters in the WebRequest
         * - useMaster boolean Use master DB
+        * - extraUrlParams array|bool Additional url parameters for "full log" link (if it is shown)
         * @return int Number of total log items (not limited by $lim)
         */
        public static function showLogExtract(
@@ -567,6 +568,7 @@ class LogEventsList extends ContextSource {
                        'flags' => 0,
                        'useRequestParams' => false,
                        'useMaster' => false,
+                       'extraUrlParams' => false,
                ];
                # The + operator appends elements of remaining keys from the right
                # handed array to the left handed, whereas duplicated keys are NOT overwritten.
@@ -578,6 +580,8 @@ class LogEventsList extends ContextSource {
                $msgKey = $param['msgKey'];
                $wrap = $param['wrap'];
                $flags = $param['flags'];
+               $extraUrlParams = $param['extraUrlParams'];
+
                $useRequestParams = $param['useRequestParams'];
                if ( !is_array( $msgKey ) ) {
                        $msgKey = [ $msgKey ];
@@ -664,7 +668,11 @@ class LogEventsList extends ContextSource {
                                $urlParam['type'] = $types[0];
                        }
 
-                       $s .= Linker::link(
+                       if ( $extraUrlParams !== false ) {
+                               $urlParam = array_merge( $urlParam, $extraUrlParams );
+                       }
+
+                       $s .= Linker::linkKnown(
                                SpecialPage::getTitleFor( 'Log' ),
                                $context->msg( 'log-fulllog' )->escaped(),
                                [],