[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Redirect from Special:Diff/### to index.php?diff=### and 4 * from Special:Diff/###/### to index.php?oldid=###&diff=###. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License along 17 * with this program; if not, write to the Free Software Foundation, Inc., 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 * http://www.gnu.org/copyleft/gpl.html 20 * 21 * @file 22 * @ingroup SpecialPage 23 */ 24 25 /** 26 * Redirect from Special:Diff/### to index.php?diff=### and 27 * from Special:Diff/###/### to index.php?oldid=###&diff=###. 28 * 29 * All of the following are valid usages: 30 * - [[Special:Diff/12345]] (diff of a revision with the previous one) 31 * - [[Special:Diff/12345/prev]] (diff of a revision with the previous one as well) 32 * - [[Special:Diff/12345/next]] (diff of a revision with the next one) 33 * - [[Special:Diff/12345/cur]] (diff of a revision with the latest one of that page) 34 * - [[Special:Diff/12345/98765]] (diff between arbitrary two revisions) 35 * 36 * @ingroup SpecialPage 37 * @since 1.23 38 */ 39 class SpecialDiff extends RedirectSpecialPage { 40 function __construct() { 41 parent::__construct( 'Diff' ); 42 $this->mAllowedRedirectParams = array(); 43 } 44 45 function getRedirect( $subpage ) { 46 $parts = explode( '/', $subpage ); 47 48 // Try to parse the values given, generating somewhat pretty URLs if possible 49 if ( count( $parts ) === 1 && $parts[0] !== '' ) { 50 $this->mAddedRedirectParams['diff'] = $parts[0]; 51 } elseif ( count( $parts ) === 2 ) { 52 $this->mAddedRedirectParams['oldid'] = $parts[0]; 53 $this->mAddedRedirectParams['diff'] = $parts[1]; 54 } else { 55 // Wrong number of parameters, bail out 56 throw new ErrorPageError( 'nopagetitle', 'nopagetext' ); 57 } 58 59 return true; 60 } 61 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |