http://www.mediawiki.org/wiki/Special:Code/MediaWiki/57399

Revision: 57399
Author:   werdna
Date:     2009-10-05 20:06:14 +0000 (Mon, 05 Oct 2009)

Log Message:
-----------
Merge r57379, perpetuation of offset parameter in links and form parameters

Modified Paths:
--------------
    branches/wmf-deployment/extensions/LiquidThreads/classes/View.php

Property Changed:
----------------
    branches/wmf-deployment/extensions/LiquidThreads/


Property changes on: branches/wmf-deployment/extensions/LiquidThreads
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/REL1_15/phase3/extensions/LiquidThreads:51646
/trunk/extensions/LiquidThreads:56151-57116,57130-57134,57169,57193,57195,57198,57200-57206,57215,57219,57222,57225,57227,57229,57287,57384,57389-57390
/trunk/phase3/extensions/LiquidThreads:56213,56215-56216,56218,56325,56334-56336,56338,56340,56343,56345,56347,56350
   + /branches/REL1_15/phase3/extensions/LiquidThreads:51646
/trunk/extensions/LiquidThreads:56151-57116,57130-57134,57169,57193,57195,57198,57200-57206,57215,57219,57222,57225,57227,57229,57287,57379,57384,57389-57390
/trunk/phase3/extensions/LiquidThreads:56213,56215-56216,56218,56325,56334-56336,56338,56340,56343,56345,56347,56350

Modified: branches/wmf-deployment/extensions/LiquidThreads/classes/View.php
===================================================================
--- branches/wmf-deployment/extensions/LiquidThreads/classes/View.php   
2009-10-05 20:02:08 UTC (rev 57398)
+++ branches/wmf-deployment/extensions/LiquidThreads/classes/View.php   
2009-10-05 20:06:14 UTC (rev 57399)
@@ -170,14 +170,30 @@
                return array( $title, $query );
        }
 
+       /* If you want $perpetuateOffset to perpetuate from a specific request, 
pass that instead
+          of true */
        static function talkpageUrl( $title, $method = null, $operand = null,
-                                                                       
$includeFragment = true ) {
+                                                                       
$includeFragment = true, $perpetuateOffset = true ) {
                global $wgUser;
                $sk = $wgUser->getSkin();
                
                list( $title, $query ) =
                        self::talkpageLinkData( $title, $method, $operand, 
$includeFragment );
                
+               $request = $perpetuateOffset;
+               if ($request === true) {
+                       global $wgRequest;
+                       $request = $wgRequest;
+               }
+               
+               if ( $perpetuateOffset ) {
+                       $offset = $request->getVal( 'offset' );
+                       
+                       if ($offset) {
+                               $query['offset'] = $offset;
+                       }
+               }
+               
                return $title->getLinkUrl( $query );
        }
 
@@ -326,12 +342,21 @@
                        global $wgRequest;
                        $wgRequest->setVal( 'wpPreview', true );
                }
+               
+               // Add an offset so it works if it's on the wrong page.
+               if ( $edit_applies_to ) {
+                       $dbr = wfGetDB( DB_SLAVE );
+                       $offset = wfTimestamp( TS_UNIX, 
$edit_applies_to->topmostThread()->modified() );
+                       $offset++;
+                       $offset = $dbr->timestamp( $offset );
+               } else $offset = '';
 
                $e->suppressIntro = true;
                $e->editFormTextBeforeContent .=
                        $this->perpetuate( 'lqt_method', 'hidden' ) .
                        $this->perpetuate( 'lqt_operand', 'hidden' ) .
-                       Xml::hidden( 'lqt_nonce', wfGenerateToken() );
+                       Xml::hidden( 'lqt_nonce', wfGenerateToken() ) .
+                       Xml::hidden( 'offset', $offset );
                        
                // Add a one-time random string to a hidden field. Store the 
random string
                //  in memcached on submit and don't allow the edit to go ahead 
if it's already
@@ -493,7 +518,8 @@
                $editMsg = $user_can_edit ? 'edit' : 'viewsource';
 
                $commands['edit'] = array( 'label' => wfMsgExt( $editMsg, 
'parseinline' ),
-                                    'href' => $this->talkpageUrl( 
$this->title, 'edit', $thread ),
+                                    'href' => $this->talkpageUrl( 
$this->title, 'edit', $thread,
+                                       true /* include fragment */ , 
$this->request ),
                                     'enabled' => true );
 
                $history_url = self::permalinkUrlWithQuery( $thread, array( 
'action' => 'history' ) );
@@ -557,7 +583,8 @@
                }
                
                $commands['reply'] = array( 'label' => wfMsgExt( 'lqt_reply', 
'parseinline' ),
-                                                        'href' => 
$this->talkpageUrl( $this->title, 'reply', $thread ),
+                                                        'href' => 
$this->talkpageUrl( $this->title, 'reply', $thread,
+                                                               true /* include 
fragment */, $this->request),
                                                         'enabled' => true, 
'icon' => 'reply.png', 'showlabel' => 1,
                                                         'tooltip' => wfMsg( 
'lqt_reply' ) );
                
@@ -568,7 +595,8 @@
                
                if ( $thread->root()->getTitle()->quickUserCan( 'edit' ) ) {
                        $commands['edit'] = array( 'label' => wfMsgExt( 'edit', 
'parseinline' ),
-                                                               'href' => 
$this->talkpageUrl( $this->title, 'edit', $thread ),
+                                                               'href' => 
$this->talkpageUrl( $this->title, 'edit', $thread,
+                                                                       true /* 
include fragment */, $this->request ),
                                                                'enabled' => 
true, 'icon' => 'edit.png',
                                                                'tooltip' => 
wfMsgExt( 'edit', 'parseinline' ) );
                }



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to