X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FAjaxFunctions.php;h=1a9adbcaa5f6c4cd9cca4c3f31579773734a8c6f;hb=8c5d8418538328449678150cd60d8aef53e59212;hp=b68c2895f1ff7d85e4c0324c186b88ee310f2e10;hpb=087a9f70c5c152b72dc6c539cf64e334a0f2d029;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/AjaxFunctions.php b/includes/AjaxFunctions.php index b68c2895f1..1a9adbcaa5 100644 --- a/includes/AjaxFunctions.php +++ b/includes/AjaxFunctions.php @@ -14,7 +14,8 @@ if( !defined( 'MEDIAWIKI' ) ) { * Modified function from http://pure-essence.net/stuff/code/utf8RawUrlDecode.phps * * @param $source String escaped with Javascript's escape() function - * @param $iconv_to String destination character set will be used as second paramether in the iconv function. Default is UTF-8. + * @param $iconv_to String destination character set will be used as second parameter + * in the iconv function. Default is UTF-8. * @return string */ function js_unescape($source, $iconv_to = 'UTF-8') { @@ -72,91 +73,6 @@ function code2utf($num){ return ''; } -define( 'AJAX_SEARCH_VERSION', 2 ); //AJAX search cache version - -function wfSajaxSearch( $term ) { - global $wgContLang, $wgOut, $wgUser, $wgCapitalLinks, $wgMemc; - $limit = 16; - $sk = $wgUser->getSkin(); - $output = ''; - - $term = trim( $term ); - $term = $wgContLang->checkTitleEncoding( $wgContLang->recodeInput( js_unescape( $term ) ) ); - if ( $wgCapitalLinks ) - $term = $wgContLang->ucfirst( $term ); - $term_title = Title::newFromText( $term ); - - $memckey = $term_title ? wfMemcKey( 'ajaxsearch', md5( $term_title->getFullText() ) ) : wfMemcKey( 'ajaxsearch', md5( $term ) ); - $cached = $wgMemc->get($memckey); - if( is_array( $cached ) && $cached['version'] == AJAX_SEARCH_VERSION ) { - $response = new AjaxResponse( $cached['html'] ); - $response->setCacheDuration( 30*60 ); - return $response; - } - - $r = $more = ''; - $canSearch = true; - - $results = PrefixSearch::titleSearch( $term, $limit + 1 ); - foreach( array_slice( $results, 0, $limit ) as $titleText ) { - $r .= '
  • ' . $sk->makeKnownLink( $titleText ) . "
  • \n"; - } - - // Hack to check for specials - if( $results ) { - $t = Title::newFromText( $results[0] ); - if( $t && $t->getNamespace() == NS_SPECIAL ) { - $canSearch = false; - if( count( $results ) > $limit ) { - $more = '' . - $sk->makeKnownLinkObj( - SpecialPage::getTitleFor( 'Specialpages' ), - wfMsgHtml( 'moredotdotdot' ) ) . - ''; - } - } else { - if( count( $results ) > $limit ) { - $more = '' . - $sk->makeKnownLinkObj( - SpecialPage::getTitleFor( "Allpages", $term ), - wfMsgHtml( 'moredotdotdot' ) ) . - ''; - } - } - } - - $valid = (bool) $term_title; - $term_url = urlencode( $term ); - $term_normalized = $valid ? $term_title->getFullText() : $term; - $term_display = htmlspecialchars( $term ); - $subtitlemsg = ( $valid ? 'searchsubtitle' : 'searchsubtitleinvalid' ); - $subtitle = wfMsgExt( $subtitlemsg, array( 'parse' ), wfEscapeWikiText( $term_normalized ) ); - $html = '
    ' - . wfMsgHtml( 'hideresults' ) . '
    ' - . '

    '.wfMsgHtml('search') - . '

    '. $subtitle . '
    '; - if( $canSearch ) { - $html .= '"; - } - if( $r ) { - $html .= "

    " . wfMsgHtml( 'articletitles', $term_display ) . "

    " - . '' . $more; - } - - $wgMemc->set( $memckey, array( 'version' => AJAX_SEARCH_VERSION, 'html' => $html ), 30 * 60 ); - - $response = new AjaxResponse( $html ); - $response->setCacheDuration( 30*60 ); - return $response; -} - /** * Called for AJAX watch/unwatch requests. * @param $pagename Prefixed title string for page to watch/unwatch @@ -189,20 +105,54 @@ function wfAjaxWatch($pagename = "", $watch = "") { if(!$watching) { $dbw = wfGetDB(DB_MASTER); $dbw->begin(); - $article->doWatch(); + $ok = $article->doWatch(); $dbw->commit(); } } else { if($watching) { $dbw = wfGetDB(DB_MASTER); $dbw->begin(); - $article->doUnwatch(); + $ok = $article->doUnwatch(); $dbw->commit(); } } + // Something stopped the change + if( isset($ok) && !$ok ) { + return ''; + } if( $watch ) { return ''.wfMsgExt( 'addedwatchtext', array( 'parse' ), $title->getPrefixedText() ); } else { return ''.wfMsgExt( 'removedwatchtext', array( 'parse' ), $title->getPrefixedText() ); } } + +/** + * 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; +} + +/** + * Called in some places (currently just extensions) + * to get the URL for a given file. + */ +function wfAjaxGetFileUrl( $file ) { + $file = wfFindFile( $file ); + + if ( !$file || !$file->exists() ) + return null; + + $url = $file->getUrl(); + + return $url; +} \ No newline at end of file