24 namespace MediaWiki\Specials;
45 private $exceptionList =
null;
63 $languageConverterFactory
65 $this->mName =
'Uncategorizedcategories';
75 private function getExceptionList() {
76 if ( $this->exceptionList ===
null ) {
77 $this->exceptionList = [];
78 $exList = $this->
msg(
'uncategorized-categories-exceptionlist' )
79 ->inContentLanguage()->plain();
80 $proposedTitles = explode(
"\n", $exList );
81 foreach ( $proposedTitles as $titleStr ) {
82 if ( !str_starts_with( $titleStr,
'*' ) ) {
85 $titleStr = preg_replace(
"/^\\*\\s*/",
'', $titleStr );
87 if ( $title && $title->getNamespace() !==
NS_CATEGORY ) {
91 $this->exceptionList[] = $title->getDBkey();
95 return $this->exceptionList;
99 $query = parent::getQueryInfo();
100 $exceptionList = $this->getExceptionList();
101 if ( $exceptionList ) {
103 $query[
'conds'][] =
'page_title not in ( ' . $dbr->makeList( $exceptionList ) .
' )';
117 $text = $title->getText();
127 class_alias( SpecialUncategorizedCategories::class,
'SpecialUncategorizedCategories' );
msg( $key,... $params)
Wrapper around wfMessage that sets the current context.
A special page looking for page without any category.
The base class for all skins.