From 39895ea6453bb2c81f82897e724f4047da6f76f0 Mon Sep 17 00:00:00 2001 From: Chad Horohoe Date: Tue, 2 Feb 2010 13:20:26 +0000 Subject: [PATCH] Fix a bunch of really weird spacing, other style fixes --- includes/Categoryfinder.php | 117 +++++++++++++++++------------------- 1 file changed, 56 insertions(+), 61 deletions(-) diff --git a/includes/Categoryfinder.php b/includes/Categoryfinder.php index 7c1c285670..325630d543 100644 --- a/includes/Categoryfinder.php +++ b/includes/Categoryfinder.php @@ -1,5 +1,4 @@ array()] - var $next = array () ; # Array of article/category IDs - var $targets = array () ; # Array of DBKEY category names - var $name2id = array () ; - var $mode ; # "AND" or "OR" - var $dbr ; # Read-DB slave + var $articles = array(); # The original article IDs passed to the seed function + var $deadend = array(); # Array of DBKEY category names for categories that don't have a page + var $parents = array(); # Array of [ID => array()] + var $next = array(); # Array of article/category IDs + var $targets = array(); # Array of DBKEY category names + var $name2id = array(); + var $mode; # "AND" or "OR" + var $dbr; # Read-DB slave /** * Constructor (currently empty). @@ -45,14 +44,14 @@ class Categoryfinder { * @param $categories FIXME * @param $mode String: FIXME, default 'AND'. */ - function seed ( $article_ids , $categories , $mode = "AND" ) { - $this->articles = $article_ids ; - $this->next = $article_ids ; - $this->mode = $mode ; + function seed( $article_ids, $categories, $mode = "AND" ) { + $this->articles = $article_ids; + $this->next = $article_ids; + $this->mode = $mode; # Set the list of target categories; convert them to DBKEY form first - $this->targets = array () ; - foreach ( $categories AS $c ) { + $this->targets = array(); + foreach ( $categories as $c ) { $ct = Title::makeTitleSafe( NS_CATEGORY, $c ); if( $ct ) { $c = $ct->getDBkey(); @@ -69,19 +68,19 @@ class Categoryfinder { function run () { $this->dbr = wfGetDB( DB_SLAVE ); while ( count ( $this->next ) > 0 ) { - $this->scan_next_layer () ; + $this->scan_next_layer(); } # Now check if this applies to the individual articles - $ret = array () ; - foreach ( $this->articles AS $article ) { - $conds = $this->targets ; - if ( $this->check ( $article , $conds ) ) { + $ret = array(); + foreach ( $this->articles as $article ) { + $conds = $this->targets; + if ( $this->check( $article, $conds ) ) { # Matches the conditions - $ret[] = $article ; + $ret[] = $article; } } - return $ret ; + return $ret; } /** @@ -91,107 +90,103 @@ 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; $path[] = $id; # Shortcut (runtime paranoia): No contitions=all matched - if ( count ( $conds ) == 0 ) return true ; + if ( count( $conds ) == 0 ) return true; - if ( !isset ( $this->parents[$id] ) ) return false ; + if ( !isset( $this->parents[$id] ) ) return false; # iterate through the parents - foreach ( $this->parents[$id] AS $p ) { + foreach ( $this->parents[$id] as $p ) { $pname = $p->cl_to ; # Is this a condition? - if ( isset ( $conds[$pname] ) ) { + if ( isset( $conds[$pname] ) ) { # This key is in the category list! if ( $this->mode == "OR" ) { # One found, that's enough! - $conds = array () ; - return true ; + $conds = array(); + return true; } else { # Assuming "AND" as default - unset ( $conds[$pname] ) ; - if ( count ( $conds ) == 0 ) { + unset( $conds[$pname] ) ; + if ( count( $conds ) == 0 ) { # All conditions met, done - return true ; + return true; } } } # Not done yet, try sub-parents - if ( !isset ( $this->name2id[$pname] ) ) { + if ( !isset( $this->name2id[$pname] ) ) { # No sub-parent continue ; } - $done = $this->check ( $this->name2id[$pname] , $conds, $path ); - if ( $done OR count ( $conds ) == 0 ) { + $done = $this->check( $this->name2id[$pname], $conds,$path ); + if ( $done || count( $conds ) == 0 ) { # Subparents have done it! - return true ; + return true; } } - return false ; + return false; } /** * Scans a "parent layer" of the articles/categories in $this->next */ - function scan_next_layer () { - $fname = "Categoryfinder::scan_next_layer" ; - + function scan_next_layer() { # Find all parents of the article currently in $this->next - $layer = array () ; + $layer = array(); $res = $this->dbr->select( /* FROM */ 'categorylinks', /* SELECT */ '*', /* WHERE */ array( 'cl_from' => $this->next ), - $fname."-1" + __METHOD__ . "-1" ); while ( $o = $this->dbr->fetchObject( $res ) ) { $k = $o->cl_to ; # Update parent tree - if ( !isset ( $this->parents[$o->cl_from] ) ) { - $this->parents[$o->cl_from] = array () ; + if ( !isset( $this->parents[$o->cl_from] ) ) { + $this->parents[$o->cl_from] = array(); } - $this->parents[$o->cl_from][$k] = $o ; + $this->parents[$o->cl_from][$k] = $o; # Ignore those we already have - if ( in_array ( $k , $this->deadend ) ) continue ; - if ( isset ( $this->name2id[$k] ) ) continue ; + if ( in_array ( $k , $this->deadend ) ) continue; + if ( isset ( $this->name2id[$k] ) ) continue; # Hey, new category! - $layer[$k] = $k ; + $layer[$k] = $k; } - $this->dbr->freeResult( $res ) ; - $this->next = array() ; + $this->next = array(); # Find the IDs of all category pages in $layer, if they exist if ( count ( $layer ) > 0 ) { $res = $this->dbr->select( /* FROM */ 'page', - /* SELECT */ 'page_id,page_title', + /* SELECT */ array( 'page_id', 'page_title' ), /* WHERE */ array( 'page_namespace' => NS_CATEGORY , 'page_title' => $layer ), - $fname."-2" + __METHOD__ . "-2" ); while ( $o = $this->dbr->fetchObject( $res ) ) { - $id = $o->page_id ; - $name = $o->page_title ; - $this->name2id[$name] = $id ; - $this->next[] = $id ; - unset ( $layer[$name] ) ; - } - $this->dbr->freeResult( $res ) ; + $id = $o->page_id; + $name = $o->page_title; + $this->name2id[$name] = $id; + $this->next[] = $id; + unset( $layer[$name] ); } + } # Mark dead ends - foreach ( $layer AS $v ) { - $this->deadend[$v] = $v ; + foreach ( $layer as $v ) { + $this->deadend[$v] = $v; } } -- 2.20.1