* Added WikiPage::getParserOutput() and changed Article::getParserOutput() to use it
[lhc/web/wiklou.git] / includes / Preferences.php
index b060230..b82d662 100644 (file)
@@ -305,7 +305,7 @@ class Preferences {
                }
 
                // show a preview of the old signature first
-               $oldsigWikiText = $wgParser->preSaveTransform( "~~~", $context->getTitle(), $user, new ParserOptions );
+               $oldsigWikiText = $wgParser->preSaveTransform( "~~~", $context->getTitle(), $user, ParserOptions::newFromContext( $context ) );
                $oldsigHTML = $context->getOutput()->parseInline( $oldsigWikiText, true, true );
                $defaultPreferences['oldsig'] = array(
                        'type' => 'info',
@@ -1160,19 +1160,20 @@ class Preferences {
        }
 
        /**
-        * @param $signature
-        * @param $alldata
+        * @param $signature string
+        * @param $alldata array
+        * @param $form HTMLForm
         * @return bool|string
         */
-       static function validateSignature( $signature, $alldata ) {
+       static function validateSignature( $signature, $alldata, $form ) {
                global $wgParser, $wgMaxSigChars;
                if ( mb_strlen( $signature ) > $wgMaxSigChars ) {
                        return Xml::element( 'span', array( 'class' => 'error' ),
-                               wfMessage( 'badsiglength' )->numParams( $wgMaxSigChars )->text() );
+                               $form->msg( 'badsiglength' )->numParams( $wgMaxSigChars )->text() );
                } elseif ( isset( $alldata['fancysig'] ) &&
                                $alldata['fancysig'] &&
                                false === $wgParser->validateSig( $signature ) ) {
-                       return Xml::element( 'span', array( 'class' => 'error' ), wfMsg( 'badsig' ) );
+                       return Xml::element( 'span', array( 'class' => 'error' ), $form->msg( 'badsig' )->text() );
                } else {
                        return true;
                }
@@ -1181,9 +1182,10 @@ class Preferences {
        /**
         * @param $signature string
         * @param $alldata array
+        * @param $form HTMLForm
         * @return string
         */
-       static function cleanSignature( $signature, $alldata ) {
+       static function cleanSignature( $signature, $alldata, $form ) {
                global $wgParser;
                if ( isset( $alldata['fancysig'] ) && $alldata['fancysig'] ) {
                        $signature = $wgParser->cleanSig( $signature );
@@ -1195,23 +1197,6 @@ class Preferences {
                return $signature;
        }
 
-       /**
-        * @param $email
-        * @param $alldata
-        * @return bool|String
-        */
-       static function validateEmail( $email, $alldata ) {
-               if ( $email && !Sanitizer::validateEmail( $email ) ) {
-                       return wfMsgExt( 'invalidemailaddress', 'parseinline' );
-               }
-
-               global $wgEmailConfirmToEdit;
-               if ( $wgEmailConfirmToEdit && !$email ) {
-                       return wfMsgExt( 'noemailtitle', 'parseinline' );
-               }
-               return true;
-       }
-
        /**
         * @param $user User
         * @param $context IContextSource
@@ -1229,7 +1214,7 @@ class Preferences {
 
                $htmlForm->setModifiedUser( $user );
                $htmlForm->setId( 'mw-prefs-form' );
-               $htmlForm->setSubmitText( wfMsg( 'saveprefs' ) );
+               $htmlForm->setSubmitText( $context->msg( 'saveprefs' )->text() );
                # Used message keys: 'accesskey-preferences-save', 'tooltip-preferences-save'
                $htmlForm->setSubmitTooltip( 'preferences-save' );
                $htmlForm->setSubmitID( 'prefsubmit' );
@@ -1425,7 +1410,7 @@ class Preferences {
                return Status::newGood();
        }
 
-       /*
+       /**
         * Try to set a user's email address.
         * This does *not* try to validate the address.
         * Caller is responsible for checking $wgAuth.
@@ -1487,6 +1472,9 @@ class Preferences {
 
 /** Some tweaks to allow js prefs to work */
 class PreferencesForm extends HTMLForm {
+       // Override default value from HTMLForm
+       protected $mSubSectionBeforeFields = false;
+       
        private $modifiedUser;
 
        public function setModifiedUser( $user ) {
@@ -1529,7 +1517,7 @@ class PreferencesForm extends HTMLForm {
 
                $t = SpecialPage::getTitleFor( 'Preferences', 'reset' );
 
-               $html .= "\n" . Linker::link( $t, wfMsgHtml( 'restoreprefs' ) );
+               $html .= "\n" . Linker::link( $t, $this->msg( 'restoreprefs' )->escaped() );
 
                $html = Xml::tags( 'div', array( 'class' => 'mw-prefs-buttons' ), $html );
 
@@ -1565,4 +1553,14 @@ class PreferencesForm extends HTMLForm {
        function getBody() {
                return $this->displaySection( $this->mFieldTree, '', 'mw-prefsection-' );
        }
+       
+       /**
+        * Get the <legend> for a given section key. Normally this is the
+        * prefs-$key message but we'll allow extensions to override it.
+        */
+       function getLegend( $key ) {
+               $legend = parent::getLegend( $key );
+               wfRunHooks( 'PreferencesGetLegend', array( $this, $key, &$legend ) );
+               return $legend;
+       }
 }