From 0c2a0e4d6bbda94f5411fbb13432f8f3dd52eaa3 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Fri, 6 Apr 2012 16:42:39 -0700 Subject: [PATCH] Merged ImageFunctions.php into GlobalFunctions.php Change-Id: I02d468f9c54a6a0448a6d99505d0201a7949855a --- includes/GlobalFunctions.php | 81 +++++++++++++++++++++++++++++++++ includes/ImageFunctions.php | 87 ------------------------------------ includes/Setup.php | 3 +- 3 files changed, 82 insertions(+), 89 deletions(-) delete mode 100644 includes/ImageFunctions.php diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php index 99570a75d8..517f70dfeb 100644 --- a/includes/GlobalFunctions.php +++ b/includes/GlobalFunctions.php @@ -3966,3 +3966,84 @@ function wfUnpack( $format, $data, $length=false ) { } return $result; } + +/** + * Determine if an image exists on the 'bad image list'. + * + * The format of MediaWiki:Bad_image_list is as follows: + * * Only list items (lines starting with "*") are considered + * * The first link on a line must be a link to a bad image + * * Any subsequent links on the same line are considered to be exceptions, + * i.e. articles where the image may occur inline. + * + * @param $name string the image name to check + * @param $contextTitle Title|bool the page on which the image occurs, if known + * @param $blacklist string wikitext of a file blacklist + * @return bool + */ +function wfIsBadImage( $name, $contextTitle = false, $blacklist = null ) { + static $badImageCache = null; // based on bad_image_list msg + wfProfileIn( __METHOD__ ); + + # Handle redirects + $redirectTitle = RepoGroup::singleton()->checkRedirect( Title::makeTitle( NS_FILE, $name ) ); + if( $redirectTitle ) { + $name = $redirectTitle->getDbKey(); + } + + # Run the extension hook + $bad = false; + if( !wfRunHooks( 'BadImage', array( $name, &$bad ) ) ) { + wfProfileOut( __METHOD__ ); + return $bad; + } + + $cacheable = ( $blacklist === null ); + if( $cacheable && $badImageCache !== null ) { + $badImages = $badImageCache; + } else { // cache miss + if ( $blacklist === null ) { + $blacklist = wfMsgForContentNoTrans( 'bad_image_list' ); // site list + } + # Build the list now + $badImages = array(); + $lines = explode( "\n", $blacklist ); + foreach( $lines as $line ) { + # List items only + if ( substr( $line, 0, 1 ) !== '*' ) { + continue; + } + + # Find all links + $m = array(); + if ( !preg_match_all( '/\[\[:?(.*?)\]\]/', $line, $m ) ) { + continue; + } + + $exceptions = array(); + $imageDBkey = false; + foreach ( $m[1] as $i => $titleText ) { + $title = Title::newFromText( $titleText ); + if ( !is_null( $title ) ) { + if ( $i == 0 ) { + $imageDBkey = $title->getDBkey(); + } else { + $exceptions[$title->getPrefixedDBkey()] = true; + } + } + } + + if ( $imageDBkey !== false ) { + $badImages[$imageDBkey] = $exceptions; + } + } + if ( $cacheable ) { + $badImageCache = $badImages; + } + } + + $contextKey = $contextTitle ? $contextTitle->getPrefixedDBkey() : false; + $bad = isset( $badImages[$name] ) && !isset( $badImages[$name][$contextKey] ); + wfProfileOut( __METHOD__ ); + return $bad; +} diff --git a/includes/ImageFunctions.php b/includes/ImageFunctions.php deleted file mode 100644 index 4b90e24aac..0000000000 --- a/includes/ImageFunctions.php +++ /dev/null @@ -1,87 +0,0 @@ -checkRedirect( Title::makeTitle( NS_FILE, $name ) ); - if( $redirectTitle ) { - $name = $redirectTitle->getDbKey(); - } - - # Run the extension hook - $bad = false; - if( !wfRunHooks( 'BadImage', array( $name, &$bad ) ) ) { - wfProfileOut( __METHOD__ ); - return $bad; - } - - $cacheable = ( $blacklist === null ); - if( $cacheable && $badImageCache !== null ) { - $badImages = $badImageCache; - } else { // cache miss - if ( $blacklist === null ) { - $blacklist = wfMsgForContentNoTrans( 'bad_image_list' ); // site list - } - # Build the list now - $badImages = array(); - $lines = explode( "\n", $blacklist ); - foreach( $lines as $line ) { - # List items only - if ( substr( $line, 0, 1 ) !== '*' ) { - continue; - } - - # Find all links - $m = array(); - if ( !preg_match_all( '/\[\[:?(.*?)\]\]/', $line, $m ) ) { - continue; - } - - $exceptions = array(); - $imageDBkey = false; - foreach ( $m[1] as $i => $titleText ) { - $title = Title::newFromText( $titleText ); - if ( !is_null( $title ) ) { - if ( $i == 0 ) { - $imageDBkey = $title->getDBkey(); - } else { - $exceptions[$title->getPrefixedDBkey()] = true; - } - } - } - - if ( $imageDBkey !== false ) { - $badImages[$imageDBkey] = $exceptions; - } - } - if ( $cacheable ) { - $badImageCache = $badImages; - } - } - - $contextKey = $contextTitle ? $contextTitle->getPrefixedDBkey() : false; - $bad = isset( $badImages[$name] ) && !isset( $badImages[$name][$contextKey] ); - wfProfileOut( __METHOD__ ); - return $bad; -} diff --git a/includes/Setup.php b/includes/Setup.php index 9333e40786..fd35a60b94 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -49,7 +49,7 @@ if ( !empty($wgActionPaths) && !isset($wgActionPaths['view']) ) { if ( !empty($wgActionPaths) && !isset($wgActionPaths['view']) ) { # 'view' is assumed the default action path everywhere in the code - # but is rarely filled in $wgActionPaths + # but is rarely filled in $wgActionPaths $wgActionPaths['view'] = $wgArticlePath ; } @@ -381,7 +381,6 @@ if ( !defined( 'MW_COMPILED' ) ) { require_once( "$IP/includes/normal/UtfNormalUtil.php" ); require_once( "$IP/includes/GlobalFunctions.php" ); require_once( "$IP/includes/ProxyTools.php" ); - require_once( "$IP/includes/ImageFunctions.php" ); require_once( "$IP/includes/normal/UtfNormalDefines.php" ); wfProfileOut( $fname . '-includes' ); } -- 2.20.1