16 if ( $params[
'continue'] !==
null ) {
18 $op = $params[
'dir'] ==
'descending' ?
'<=' :
'>=';
19 $this->
addWhere( $db->
expr(
'cat_title', $op, $cont[0] ) );
22 $dir = ( $params[
'dir'] ==
'descending' ?
'older' :
'newer' );
23 $from = ( $params[
'from'] ===
null
26 $to = ( $params[
'to'] ===
null
31 $min = $params[
'min'];
32 $max = $params[
'max'];
33 if ( $dir ==
'newer' ) {
39 if ( isset( $params[
'prefix'] ) ) {
49 $this->
addOption(
'LIMIT', $params[
'limit'] + 1 );
50 $sort = (
$params[
'dir'] ==
'descending' ?
' DESC' :
'' );
51 $this->
addOption(
'ORDER BY',
'cat_title' . $sort );
53 $prop = array_fill_keys( $params[
'prop'],
true );
54 $this->
addFieldsIf( [
'cat_pages',
'cat_subcats',
'cat_files' ], isset( $prop[
'size'] ) );
55 if ( isset( $prop[
'hidden'] ) ) {
56 $this->
addTables( [
'page',
'page_props' ] );
58 'page' => [
'LEFT JOIN', [
60 'page_title=cat_title' ] ],
61 'page_props' => [
'LEFT JOIN', [
63 'pp_propname' =>
'hiddencat' ] ],
65 $this->
addFields( [
'cat_hidden' =>
'pp_propname' ] );
70 $res = $this->select( __METHOD__ );
73 $result = $this->getResult();
75 foreach ( $res as $row ) {
76 if ( ++$count > $params[
'limit'] ) {
79 $this->setContinueEnumParameter(
'continue', $row->cat_title );
85 if ( $resultPageSet !==
null ) {
90 $prop = array_fill_keys( $params[
'prop'],
true );
91 if ( isset( $prop[
'size'] ) ) {
92 $item[
'size'] = (int)$row->cat_pages;
93 $item[
'pages'] = $row->cat_pages - $row->cat_subcats - $row->cat_files;
94 $item[
'files'] = (int)$row->cat_files;
95 $item[
'subcats'] = (int)$row->cat_subcats;
97 if ( isset( $prop[
'hidden'] ) ) {
98 $item[
'hidden'] = (bool)$row->cat_hidden;
100 if ( isset( $options[
'catNames'] ) ) {
101 $catNameList = $options[
'catNames'];
102 $item[
'catid'] = $catNameList[ $titleObj->getDBkey() ];
104 $fit = $result->addValue( [
'query', $this->getModuleName() ],
null, $item );
106 $this->setContinueEnumParameter(
'continue', $row->cat_title );
112 if ( $resultPageSet ===
null ) {
113 $result->addIndexedTagName( [
'query', $this->getModuleName() ],
'c' );
115 $resultPageSet->populateFromTitles( $pages );
This class contains a list of pages that the client has requested.