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