BUG#1849 - Count images as used if they are put into a category (site pref)
authorJens Frank <jeluf@users.mediawiki.org>
Sun, 10 Apr 2005 21:27:42 +0000 (21:27 +0000)
committerJens Frank <jeluf@users.mediawiki.org>
Sun, 10 Apr 2005 21:27:42 +0000 (21:27 +0000)
includes/DefaultSettings.php
includes/SpecialUnusedimages.php

index 1082492..61a72aa 100644 (file)
@@ -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();
 }
index 3b7459f..24262aa 100644 (file)
@@ -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 ) {