mTitle ); // If any of these are not 0, then has members if ( $cat->getMemberCount() || $cat->getSubcatCount() || $cat->getFileCount() ) { return true; } } return false; } /** * Checks if a category is hidden. * * @since 1.27 * @return bool */ public function isHidden() { $pageId = $this->getTitle()->getArticleID(); $pageProps = MediaWikiServices::getInstance() ->getPageProps() ->getProperties( $this->getTitle(), 'hiddencat' ); return isset( $pageProps[$pageId] ); } /** * Checks if a category is expected to be an unused category. * * @since 1.33 * @return bool */ public function isExpectedUnusedCategory() { $pageId = $this->getTitle()->getArticleID(); $pageProps = MediaWikiServices::getInstance() ->getPageProps() ->getProperties( $this->getTitle(), 'expectunusedcategory' ); return isset( $pageProps[$pageId] ); } /** * Update category counts on purge (T85696) * * @return bool */ public function doPurge() { if ( !parent::doPurge() ) { // Aborted by hook most likely return false; } $title = $this->mTitle; DeferredUpdates::addCallableUpdate( static function () use ( $title ) { $cat = Category::newFromTitle( $title ); // If the category has less than 5000 pages, refresh the counts. // 5000 was chosen based on the discussion at T85696. $cat->refreshCountsIfSmall( 5000 ); }, // Explicitly PRESEND so that counts are correct before we try to // re-render the page on the next load so {{PAGESINCAT:...}} will // be using the correct new values, not the old ones. DeferredUpdates::PRESEND ); return true; } } /** @deprecated class alias since 1.44 */ class_alias( WikiCategoryPage::class, 'WikiCategoryPage' );