X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FCategoryPage.php;h=92e4e27923a63bd55d88ce2d49ee4bb42cc170fd;hb=4627bbd5457adebc5a506352406a77beab50e3af;hp=9a3d5b737b1a0dfdddecb16a61e7dfc404bb62fc;hpb=6dc68f577700be8b3134917f507b492691ffb12b;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/CategoryPage.php b/includes/CategoryPage.php index 9a3d5b737b..92e4e27923 100644 --- a/includes/CategoryPage.php +++ b/includes/CategoryPage.php @@ -135,7 +135,16 @@ class CategoryViewer { } /** - * Add a subcategory to the internal lists + * Add a subcategory to the internal lists, using a Category object + */ + function addSubcategoryObject( $cat, $sortkey, $pageLength ) { + $title = $cat->getTitle(); + $this->addSubcategory( $title, $sortkey, $pageLength ); + } + + /** + * Add a subcategory to the internal lists, using a title object + * @deprectated kept for compatibility, please use addSubcategoryObject instead */ function addSubcategory( $title, $sortkey, $pageLength ) { global $wgContLang; @@ -213,17 +222,17 @@ class CategoryViewer { $this->flip = false; } $res = $dbr->select( - array( 'page', 'categorylinks' ), - array( 'page_title', 'page_namespace', 'page_len', 'page_is_redirect', 'cl_sortkey' ), + array( 'page', 'categorylinks', 'category' ), + array( 'page_title', 'page_namespace', 'page_len', 'page_is_redirect', 'cl_sortkey', + 'cat_id', 'cat_title', 'cat_subcats', 'cat_pages', 'cat_files' ), array( $pageCondition, - 'cl_from = page_id', - 'cl_to' => $this->title->getDBkey()), - #'page_is_redirect' => 0), - #+ $pageCondition, + 'cl_to' => $this->title->getDBkey() ), __METHOD__, array( 'ORDER BY' => $this->flip ? 'cl_sortkey DESC' : 'cl_sortkey', - 'USE INDEX' => 'cl_sortkey', - 'LIMIT' => $this->limit + 1 ) ); + 'USE INDEX' => array( 'categorylinks' => 'cl_sortkey' ), + 'LIMIT' => $this->limit + 1 ), + array( 'categorylinks' => array( 'INNER JOIN', 'cl_from = page_id' ), + 'category' => array( 'LEFT JOIN', 'cat_title = page_title AND page_namespace = ' . NS_CATEGORY ) ) ); $count = 0; $this->nextPage = null; @@ -238,7 +247,8 @@ class CategoryViewer { $title = Title::makeTitle( $x->page_namespace, $x->page_title ); if( $title->getNamespace() == NS_CATEGORY ) { - $this->addSubcategory( $title, $x->cl_sortkey, $x->page_len ); + $cat = Category::newFromRow( $x, $title ); + $this->addSubcategoryObject( $cat, $x->cl_sortkey, $x->page_len ); } elseif( $this->showGallery && $title->getNamespace() == NS_IMAGE ) { $this->addImage( $title, $x->cl_sortkey, $x->page_len, $x->page_is_redirect ); } else { @@ -497,7 +507,7 @@ class CategoryViewer { return wfMsgExt("category-$type-count-limited", 'parse', $wgLang->formatNum( $rescnt ) ); } - return wfMsgExt( "category-$type-count", 'parse', $rescnt, + return wfMsgExt( "category-$type-count", 'parse', $wgLang->formatNum( $rescnt ), $wgLang->formatNum( $totalcnt ) ); } }