Index: trunk/phase3/includes/api/ApiQueryCategories.php |
— | — | @@ -96,9 +96,20 @@ |
97 | 97 | $this->dieUsage("Incorrect parameter - mutually exclusive values may not be supplied", 'show'); |
98 | 98 | if(isset($show['hidden']) || isset($show['!hidden'])) |
99 | 99 | { |
100 | | - $this->addTables('category'); |
101 | | - $this->addWhere(array( 'cl_to = cat_title', |
102 | | - 'cat_hidden' => isset($show['hidden']))); |
| 100 | + $this->addOption('STRAIGHT_JOIN'); |
| 101 | + $this->addTables(array('page', 'page_props')); |
| 102 | + $this->addJoinConds(array( |
| 103 | + 'page' => array('LEFT JOIN', array( |
| 104 | + 'page_namespace' => NS_CATEGORY, |
| 105 | + 'page_title = cl_to')), |
| 106 | + 'page_props' => array('LEFT JOIN', array( |
| 107 | + 'pp_page=page_id', |
| 108 | + 'pp_propname' => 'hiddencat')) |
| 109 | + )); |
| 110 | + if(isset($show['hidden'])) |
| 111 | + $this->addWhere(array('pp_propname IS NOT NULL')); |
| 112 | + else |
| 113 | + $this->addWhere(array('pp_propname IS NULL')); |
103 | 114 | } |
104 | 115 | |
105 | 116 | # Don't order by cl_from if it's constant in the WHERE clause |
Index: trunk/phase3/RELEASE-NOTES |
— | — | @@ -515,6 +515,7 @@ |
516 | 516 | * (bug 16613) action=protect doesn't tell when &cascade was set but cascading |
517 | 517 | protection wasn't allowed |
518 | 518 | * (bug 16626) action=delete now correctly handles empty "reason" param |
| 519 | +* (bug 15579) clshow considers all categories !hidden |
519 | 520 | |
520 | 521 | === Languages updated in 1.14 === |
521 | 522 | |