]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blobdiff - includes/AjaxFunctions.php
MediaWiki 1.17.4
[autoinstalls/mediawiki.git] / includes / AjaxFunctions.php
index e3180e0ac4708fff072209077bd4e78ce992355b..8e5de31b7306651513c115e98a93bccabb54dc14 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Handler functions for Ajax requests
+ *
  * @file
  * @ingroup Ajax
  */
@@ -28,6 +30,7 @@ function js_unescape( $source, $iconv_to = 'UTF-8' ) {
                if ( $charAt == '%' ) {
                        $pos++;
                        $charAt = substr ( $source, $pos, 1 );
+
                        if ( $charAt == 'u' ) {
                                // we got a unicode character
                                $pos++;
@@ -48,7 +51,7 @@ function js_unescape( $source, $iconv_to = 'UTF-8' ) {
        }
 
        if ( $iconv_to != "UTF-8" ) {
-               $decodedStr = iconv( "UTF-8", $iconv_to, $decodedStr );
+               $decodedStr = iconv( "utf-8", $iconv_to, $decodedStr );
        }
 
        return $decodedStr;
@@ -62,84 +65,23 @@ function js_unescape( $source, $iconv_to = 'UTF-8' ) {
  * @return utf8char
  */
 function code2utf( $num ) {
-       if ( $num < 128 )
+       if ( $num < 128 ) {
                return chr( $num );
-       if ( $num < 2048 )
-               return chr( ( $num >> 6 ) + 192 ) . chr( ( $num&63 ) + 128 );
-       if ( $num < 65536 )
-               return chr( ( $num >> 12 ) + 224 ) . chr( ( ( $num >> 6 )&63 ) + 128 ) . chr( ( $num&63 ) + 128 );
-       if ( $num < 2097152 )
-               return chr( ( $num >> 18 ) + 240 ) . chr( ( ( $num >> 12 )&63 ) + 128 ) . chr( ( ( $num >> 6 )&63 ) + 128 ) . chr( ( $num&63 ) + 128 );
-       return '';
-}
-
-/**
- * Called for AJAX watch/unwatch requests.
- * @param $pagename Prefixed title string for page to watch/unwatch
- * @param $watch String 'w' to watch, 'u' to unwatch
- * @return String '<w#>' or '<u#>' on successful watch or unwatch,
- *   respectively, followed by an HTML message to display in the alert box; or
- *   '<err#>' on error
- */
-function wfAjaxWatch( $pagename = "", $watch = "" ) {
-       if ( wfReadOnly() ) {
-               // redirect to action=(un)watch, which will display the database lock
-               // message
-               return '<err#>';
        }
 
-       if ( 'w' !== $watch && 'u' !== $watch ) {
-               return '<err#>';
+       if ( $num < 2048 ) {
+               return chr( ( $num >> 6 ) + 192 ) . chr( ( $num&63 ) + 128 );
        }
-       $watch = 'w' === $watch;
 
-       $title = Title::newFromDBkey( $pagename );
-       if ( !$title ) {
-               // Invalid title
-               return '<err#>';
+       if ( $num < 65536 ) {
+               return chr( ( $num >> 12 ) + 224 ) . chr( ( ( $num >> 6 )&63 ) + 128 ) . chr( ( $num&63 ) + 128 );
        }
-       $article = new Article( $title );
-       $watching = $title->userIsWatching();
 
-       if ( $watch ) {
-               if ( !$watching ) {
-                       $dbw = wfGetDB( DB_MASTER );
-                       $dbw->begin();
-                       $ok = $article->doWatch();
-                       $dbw->commit();
-               }
-       } else {
-               if ( $watching ) {
-                       $dbw = wfGetDB( DB_MASTER );
-                       $dbw->begin();
-                       $ok = $article->doUnwatch();
-                       $dbw->commit();
-               }
-       }
-       // Something stopped the change
-       if ( isset( $ok ) && !$ok ) {
-               return '<err#>';
-       }
-       if ( $watch ) {
-               return '<w#>' . wfMsgExt( 'addedwatchtext', array( 'parse' ), $title->getPrefixedText() );
-       } else {
-               return '<u#>' . wfMsgExt( 'removedwatchtext', array( 'parse' ), $title->getPrefixedText() );
+       if ( $num < 2097152 ) {
+               return chr( ( $num >> 18 ) + 240 ) . chr( ( ( $num >> 12 )&63 ) + 128 ) . chr( ( ( $num >> 6 )&63 ) + 128 ) . chr( ( $num&63 ) + 128 );
        }
-}
-
-/**
- * Called in some places (currently just extensions)
- * to get the thumbnail URL for a given file at a given resolution.
- */
-function wfAjaxGetThumbnailUrl( $file, $width, $height ) {
-       $file = wfFindFile( $file );
-
-       if ( !$file || !$file->exists() )
-               return null;
-
-       $url = $file->getThumbnail( $width, $height )->url;
 
-       return $url;
+       return '';
 }
 
 /**
@@ -149,8 +91,9 @@ function wfAjaxGetThumbnailUrl( $file, $width, $height ) {
 function wfAjaxGetFileUrl( $file ) {
        $file = wfFindFile( $file );
 
-       if ( !$file || !$file->exists() )
+       if ( !$file || !$file->exists() ) {
                return null;
+       }
 
        $url = $file->getUrl();