$this->mAllowGenerator = ( $flags & ApiPageSet::DISABLE_GENERATORS ) == 0;
$this->mDefaultNamespace = $defaultNamespace;
$this->mAllowGenerator = ( $flags & ApiPageSet::DISABLE_GENERATORS ) == 0;
$this->mDefaultNamespace = $defaultNamespace;
$this->mParams = $this->extractRequestParams();
$this->mResolveRedirects = $this->mParams['redirects'];
$this->mConvertTitles = $this->mParams['converttitles'];
$this->mParams = $this->extractRequestParams();
$this->mResolveRedirects = $this->mParams['redirects'];
$this->mConvertTitles = $this->mParams['converttitles'];
$generatorName = $this->mAllowGenerator ? $this->mParams['generator'] : null;
if ( isset( $generatorName ) ) {
$dbSource = $this->mDbSource;
$generatorName = $this->mAllowGenerator ? $this->mParams['generator'] : null;
if ( isset( $generatorName ) ) {
$dbSource = $this->mDbSource;
// If the parent container of this pageset is not ApiQuery, we must create it to run generator
$dbSource = $this->getMain()->getModuleManager()->getModule( 'query' );
// If the parent container of this pageset is not ApiQuery, we must create it to run generator
$dbSource = $this->getMain()->getModuleManager()->getModule( 'query' );
}
$generator = $dbSource->getModuleManager()->getModule( $generatorName, null, true );
if ( $generator === null ) {
}
$generator = $dbSource->getModuleManager()->getModule( $generatorName, null, true );
if ( $generator === null ) {
if ( !$isDryRun ) {
$generator->executeGenerator( $this );
Hooks::run( 'APIQueryGeneratorAfterExecute', array( &$generator, &$this ) );
if ( !$isDryRun ) {
$generator->executeGenerator( $this );
Hooks::run( 'APIQueryGeneratorAfterExecute', array( &$generator, &$this ) );
// only store non-default fields
$this->mRequestedPageFields = array_diff_key( $this->mRequestedPageFields, $pageFlds );
// only store non-default fields
$this->mRequestedPageFields = array_diff_key( $this->mRequestedPageFields, $pageFlds );
* @param ResultWrapper $queryResult Query result object
*/
public function populateFromQueryResult( $db, $queryResult ) {
* @param ResultWrapper $queryResult Query result object
*/
public function populateFromQueryResult( $db, $queryResult ) {
$set = $linkBatch->constructSet( 'page', $db );
// Get pageIDs data from the `page` table
$set = $linkBatch->constructSet( 'page', $db );
// Get pageIDs data from the `page` table
$res = $db->select( 'page', $this->getPageTableFields(), $set,
__METHOD__ );
$res = $db->select( 'page', $this->getPageTableFields(), $set,
__METHOD__ );
// Hack: get the ns:titles stored in array(ns => array(titles)) format
$this->initFromQueryResult( $res, $linkBatch->data, true ); // process Titles
// Hack: get the ns:titles stored in array(ns => array(titles)) format
$this->initFromQueryResult( $res, $linkBatch->data, true ); // process Titles
$res = $db->select( 'page', $this->getPageTableFields(), $set,
__METHOD__ );
$res = $db->select( 'page', $this->getPageTableFields(), $set,
__METHOD__ );
$where = array( 'rev_id' => $revids, 'rev_page = page_id' );
// Get pageIDs data from the `page` table
$where = array( 'rev_id' => $revids, 'rev_page = page_id' );
// Get pageIDs data from the `page` table
$res = $db->select( $tables, $fields, $where, __METHOD__ );
foreach ( $res as $row ) {
$revid = intval( $row->rev_id );
$res = $db->select( $tables, $fields, $where, __METHOD__ );
foreach ( $res as $row ) {
$revid = intval( $row->rev_id );
$fields = array( 'ar_rev_id', 'ar_namespace', 'ar_title' );
$where = array( 'ar_rev_id' => $this->mMissingRevIDs );
$fields = array( 'ar_rev_id', 'ar_namespace', 'ar_title' );
$where = array( 'ar_rev_id' => $this->mMissingRevIDs );
$res = $db->select( $tables, $fields, $where, __METHOD__ );
$titles = array();
foreach ( $res as $row ) {
$res = $db->select( $tables, $fields, $where, __METHOD__ );
$titles = array();
foreach ( $res as $row ) {
$titles[$revid] = Title::makeTitle( $row->ar_namespace, $row->ar_title );
unset( $remaining[$revid] );
}
$titles[$revid] = Title::makeTitle( $row->ar_namespace, $row->ar_title );
unset( $remaining[$revid] );
}
$res = $db->select( 'page', $pageFlds, $set, __METHOD__ );
$res = $db->select( 'page', $pageFlds, $set, __METHOD__ );
// Hack: get the ns:titles stored in array(ns => array(titles)) format
$this->initFromQueryResult( $res, $linkBatch->data, true );
// Hack: get the ns:titles stored in array(ns => array(titles)) format
$this->initFromQueryResult( $res, $linkBatch->data, true );
foreach ( $res as $row ) {
$rdfrom = intval( $row->rd_from );
$from = $this->mPendingRedirectIDs[$rdfrom]->getPrefixedText();
foreach ( $res as $row ) {
$rdfrom = intval( $row->rd_from );
$from = $this->mPendingRedirectIDs[$rdfrom]->getPrefixedText();
ApiBase::PARAM_DFLT => false,
ApiBase::PARAM_HELP_MSG => array(
'api-pageset-param-converttitles',
ApiBase::PARAM_DFLT => false,
ApiBase::PARAM_HELP_MSG => array(
'api-pageset-param-converttitles',
- $this->getLanguage()->commaList( LanguageConverter::$languagesWithVariants ),
+ new DeferredStringifier(
+ function ( IContextSource $context ) {
+ return $context->getLanguage()
+ ->commaList( LanguageConverter::$languagesWithVariants );
+ },
+ $this
+ )