summaryrefslogtreecommitdiff
path: root/includes/AjaxFunctions.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/AjaxFunctions.php')
-rw-r--r--includes/AjaxFunctions.php85
1 files changed, 14 insertions, 71 deletions
diff --git a/includes/AjaxFunctions.php b/includes/AjaxFunctions.php
index e3180e0a..8e5de31b 100644
--- a/includes/AjaxFunctions.php
+++ b/includes/AjaxFunctions.php
@@ -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();