FreedomFighterSparrow has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/352352 )
Change subject: A much improved query of pre-existing categories, by Brent
Laabs (labster)
......................................................................
A much improved query of pre-existing categories, by Brent Laabs (labster)
Bug: T161387
Change-Id: I290d785128184a32beaf41990cbce0d4f35fa7e1
---
M AutoCreateCategoryPages.body.php
M README
M extension.json
3 files changed, 11 insertions(+), 11 deletions(-)
Approvals:
jenkins-bot: Checked
diff --git a/AutoCreateCategoryPages.body.php b/AutoCreateCategoryPages.body.php
index f0646d3..cd23d94 100644
--- a/AutoCreateCategoryPages.body.php
+++ b/AutoCreateCategoryPages.body.php
@@ -1,17 +1,16 @@
<?php
class AutoCreateCategoryPages {
- /**
- * Get an array of existing categories, with the name in the key and
sort key in the value.
+ /**
+ * Get an array of existing categories on this page, with the
unprefixed name
*
* @return array
*/
- static function getExistingCategories() {
- // TODO: cache this. Probably have to add to said cache every
time a category page is created,
- // by us or manually
+ static function getExistingCategories( $page_cats ) {
$dbr = wfGetDB( DB_SLAVE );
- $res = $dbr->select( 'page', 'page_title', array(
'page_namespace' => NS_CATEGORY ) );
-
+ $res = $dbr->select( 'page', 'page_title',
+ array( 'page_namespace' => NS_CATEGORY, 'page_title' =>
$page_cats )
+ );
$categories = array();
foreach ( $res as $row ) {
$categories[] = $row->page_title;
@@ -37,14 +36,14 @@
// array keys will cast numeric category names to ints
// so we need to cast them back to strings to avoid potentially
breaking things!
$page_cats = array_map( 'strval', array_keys( $page_cats ) );
- $existing_cats = self::getExistingCategories();
+ $existing_cats = self::getExistingCategories( $page_cats );
// Determine which categories on page do not exist
$new_cats = array_diff( $page_cats, $existing_cats );
if( count( $new_cats ) > 0 ) {
/*
- * TODO probably need to use User::newSystemUser()
+ * @TODO probably need to use User::newSystemUser()
* MW 1.27+ is supposed to use SessionManager, which
requires some changes.
* See
https://www.mediawiki.org/wiki/Manual:SessionManager_and_AuthManager/Updating_tips
*/
diff --git a/README b/README
index 48095e1..1e0bd23 100644
--- a/README
+++ b/README
@@ -8,7 +8,7 @@
== Compatibility ==
-Version 1.0.0 and above is compatible with MediaWiki 1.25+.
+Version 1.0.0 and beyond are compatible with MediaWiki 1.25+.
The previous version should work with MediaWiki 1.21-1.24.
== Installation ==
@@ -35,6 +35,7 @@
The extension was released under GPLv3. See LICENSE file for more details.
== Short changelog ==
+* Version 1.0.2, 2017-03-25: A much improved query of pre-existing categories,
by Brent Laabs (labster)
* Version 1.0.1, 2016-02-01: Fix bug where only the first new category page
was actually created
* Version 1.0.0, 2015-05-24: Convert to extension registration for MW 1.25
* Version 0.2.0, 2013-10-28: updated to work with MW 1.21.x & MW 1.22alpha.
diff --git a/extension.json b/extension.json
index 4642145..64edc58 100644
--- a/extension.json
+++ b/extension.json
@@ -1,6 +1,6 @@
{
"name": "AutoCreateCategoryPages",
- "version": "1.0.1",
+ "version": "1.0.2",
"license-name": "GPL-3.0",
"author": [
"Merrick Schaefer",
--
To view, visit https://gerrit.wikimedia.org/r/352352
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I290d785128184a32beaf41990cbce0d4f35fa7e1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/AutoCreateCategoryPages
Gerrit-Branch: master
Gerrit-Owner: FreedomFighterSparrow <[email protected]>
Gerrit-Reviewer: FreedomFighterSparrow <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits