From 07f1e74d6da1309c2200f1b7c40d4fa6487d3488 Mon Sep 17 00:00:00 2001 From: Jens Frank Date: Sun, 10 Apr 2005 21:27:42 +0000 Subject: [PATCH] BUG#1849 - Count images as used if they are put into a category (site pref) --- includes/DefaultSettings.php | 6 ++++++ includes/SpecialUnusedimages.php | 19 ++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 1082492451..61a72aabcc 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -1218,6 +1218,12 @@ $wgDisabledActions = array(); */ $wgEnableSorbs = true; +/** + * On Special:Unusedimages, consider images "used", if they are put + * into a category. Default (false) is not to count those as used. + */ +$wgCountCategorizedImagesAsUsed = false; + } else { die(); } diff --git a/includes/SpecialUnusedimages.php b/includes/SpecialUnusedimages.php index 3b7459f71f..24262aa781 100644 --- a/includes/SpecialUnusedimages.php +++ b/includes/SpecialUnusedimages.php @@ -24,11 +24,24 @@ class UnusedimagesPage extends QueryPage { function isSyndicated() { return false; } function getSQL() { + global $wgCountCategorizedImagesAsUsed; $dbr =& wfGetDB( DB_SLAVE ); - extract( $dbr->tableNames( 'image','imagelinks' ) ); - return 'SELECT img_name as title, img_user, img_user_text, img_timestamp as value, img_description' . - ' FROM '.$image.' LEFT JOIN '.$imagelinks.' ON img_name=il_to WHERE il_to IS NULL '; + if ( $wgCountCategorizedImagesAsUsed ) { + extract( $dbr->tableNames( 'cur', 'image', 'imagelinks', 'categorylinks' ) ); + + return 'SELECT img_name as title, img_user, img_user_text, img_timestamp as value, img_description + FROM ((('.$cur.' AS I LEFT JOIN '.$categorylinks.' AS L ON I.cur_id = L.cl_from) + LEFT JOIN '.$imagelinks.' AS P ON I.cur_title = P.il_to) + INNER JOIN '.$image.' AS G ON I.cur_title = G.img_name) + WHERE I.cur_namespace = '.NS_IMAGE.' AND L.cl_from IS NULL AND P.il_to IS NULL'; + } + else { + extract( $dbr->tableNames( 'image','imagelinks' ) ); + + return 'SELECT img_name as title, img_user, img_user_text, img_timestamp as value, img_description' . + ' FROM '.$image.' LEFT JOIN '.$imagelinks.' ON img_name=il_to WHERE il_to IS NULL '; + } } function formatResult( $skin, $result ) { -- 2.20.1