From 9db190c7e736ec8d063187d4241b59feaf7dc2d1 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 22 Jun 2011 11:28:20 +0200 Subject: update to MediaWiki 1.17.0 --- includes/Categoryfinder.php | 50 ++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 23 deletions(-) (limited to 'includes/Categoryfinder.php') diff --git a/includes/Categoryfinder.php b/includes/Categoryfinder.php index 5ac8a9be..1f08b7f8 100644 --- a/includes/Categoryfinder.php +++ b/includes/Categoryfinder.php @@ -10,14 +10,14 @@ * # Determines whether the article with the page_id 12345 is in both * # "Category 1" and "Category 2" or their subcategories, respectively * - * $cf = new Categoryfinder ; - * $cf->seed ( - * array ( 12345 ) , - * array ( "Category 1","Category 2" ) , - * "AND" - * ) ; - * $a = $cf->run() ; - * print implode ( "," , $a ) ; + * $cf = new Categoryfinder; + * $cf->seed( + * array( 12345 ), + * array( 'Category 1', 'Category 2' ), + * 'AND' + * ); + * $a = $cf->run(); + * print implode( ',' , $a ); * * */ @@ -43,7 +43,7 @@ class Categoryfinder { * @param $categories FIXME * @param $mode String: FIXME, default 'AND'. */ - function seed( $article_ids, $categories, $mode = "AND" ) { + function seed( $article_ids, $categories, $mode = 'AND' ) { $this->articles = $article_ids; $this->next = $article_ids; $this->mode = $mode; @@ -64,9 +64,9 @@ class Categoryfinder { * then checks the articles if they match the conditions * @return array of page_ids (those given to seed() that match the conditions) */ - function run () { + function run() { $this->dbr = wfGetDB( DB_SLAVE ); - while ( count ( $this->next ) > 0 ) { + while ( count( $this->next ) > 0 ) { $this->scan_next_layer(); } @@ -90,7 +90,7 @@ class Categoryfinder { * @param $path used to check for recursion loops * @return bool Does this match the conditions? */ - function check( $id , &$conds, $path = array() ) { + function check( $id, &$conds, $path = array() ) { // Check for loops and stop! if ( in_array( $id, $path ) ) { return false; @@ -114,13 +114,13 @@ class Categoryfinder { # Is this a condition? if ( isset( $conds[$pname] ) ) { # This key is in the category list! - if ( $this->mode == "OR" ) { + if ( $this->mode == 'OR' ) { # One found, that's enough! $conds = array(); return true; } else { # Assuming "AND" as default - unset( $conds[$pname] ) ; + unset( $conds[$pname] ); if ( count( $conds ) == 0 ) { # All conditions met, done return true; @@ -131,7 +131,7 @@ class Categoryfinder { # Not done yet, try sub-parents if ( !isset( $this->name2id[$pname] ) ) { # No sub-parent - continue ; + continue; } $done = $this->check( $this->name2id[$pname], $conds, $path ); if ( $done || count( $conds ) == 0 ) { @@ -152,10 +152,10 @@ class Categoryfinder { /* FROM */ 'categorylinks', /* SELECT */ '*', /* WHERE */ array( 'cl_from' => $this->next ), - __METHOD__ . "-1" + __METHOD__ . '-1' ); - while ( $o = $this->dbr->fetchObject( $res ) ) { - $k = $o->cl_to ; + foreach ( $res as $o ) { + $k = $o->cl_to; # Update parent tree if ( !isset( $this->parents[$o->cl_from] ) ) { @@ -164,9 +164,13 @@ class Categoryfinder { $this->parents[$o->cl_from][$k] = $o; # Ignore those we already have - if ( in_array ( $k , $this->deadend ) ) continue; + if ( in_array( $k, $this->deadend ) ) { + continue; + } - if ( isset ( $this->name2id[$k] ) ) continue; + if ( isset( $this->name2id[$k] ) ) { + continue; + } # Hey, new category! $layer[$k] = $k; @@ -175,14 +179,14 @@ class Categoryfinder { $this->next = array(); # Find the IDs of all category pages in $layer, if they exist - if ( count ( $layer ) > 0 ) { + if ( count( $layer ) > 0 ) { $res = $this->dbr->select( /* FROM */ 'page', /* SELECT */ array( 'page_id', 'page_title' ), /* WHERE */ array( 'page_namespace' => NS_CATEGORY , 'page_title' => $layer ), - __METHOD__ . "-2" + __METHOD__ . '-2' ); - while ( $o = $this->dbr->fetchObject( $res ) ) { + foreach ( $res as $o ) { $id = $o->page_id; $name = $o->page_title; $this->name2id[$name] = $id; -- cgit v1.2.2