[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Implements Special:Preferences 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 * http://www.gnu.org/copyleft/gpl.html 19 * 20 * @file 21 * @ingroup SpecialPage 22 */ 23 24 /** 25 * A special page that allows users to change their preferences 26 * 27 * @ingroup SpecialPage 28 */ 29 class SpecialPreferences extends SpecialPage { 30 function __construct() { 31 parent::__construct( 'Preferences' ); 32 } 33 34 public function execute( $par ) { 35 $this->setHeaders(); 36 $this->outputHeader(); 37 $out = $this->getOutput(); 38 $out->disallowUserJs(); # Prevent hijacked user scripts from sniffing passwords etc. 39 40 $this->requireLogin( 'prefsnologintext2' ); 41 $this->checkReadOnly(); 42 43 if ( $par == 'reset' ) { 44 $this->showResetForm(); 45 46 return; 47 } 48 49 $out->addModules( 'mediawiki.special.preferences' ); 50 51 if ( $this->getRequest()->getCheck( 'success' ) ) { 52 $out->wrapWikiMsg( 53 "<div class=\"successbox\">\n$1\n</div>", 54 'savedprefs' 55 ); 56 } 57 58 $htmlForm = Preferences::getFormObject( $this->getUser(), $this->getContext() ); 59 $htmlForm->setSubmitCallback( array( 'Preferences', 'tryUISubmit' ) ); 60 61 $htmlForm->show(); 62 } 63 64 private function showResetForm() { 65 if ( !$this->getUser()->isAllowed( 'editmyoptions' ) ) { 66 throw new PermissionsError( 'editmyoptions' ); 67 } 68 69 $this->getOutput()->addWikiMsg( 'prefs-reset-intro' ); 70 71 $context = new DerivativeContext( $this->getContext() ); 72 $context->setTitle( $this->getPageTitle( 'reset' ) ); // Reset subpage 73 $htmlForm = new HTMLForm( array(), $context, 'prefs-restore' ); 74 75 $htmlForm->setSubmitTextMsg( 'restoreprefs' ); 76 $htmlForm->setSubmitDestructive(); 77 $htmlForm->setSubmitCallback( array( $this, 'submitReset' ) ); 78 $htmlForm->suppressReset(); 79 80 $htmlForm->show(); 81 } 82 83 public function submitReset( $formData ) { 84 if ( !$this->getUser()->isAllowed( 'editmyoptions' ) ) { 85 throw new PermissionsError( 'editmyoptions' ); 86 } 87 88 $user = $this->getUser(); 89 $user->resetOptions( 'all', $this->getContext() ); 90 $user->saveSettings(); 91 92 $url = $this->getPageTitle()->getFullURL( 'success' ); 93 94 $this->getOutput()->redirect( $url ); 95 96 return true; 97 } 98 99 protected function getGroupName() { 100 return 'users'; 101 } 102 }
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 |