'userinfo' => ApiQueryUserInfo::class,
'filerepoinfo' => ApiQueryFileRepoInfo::class,
'tokens' => ApiQueryTokens::class,
+ 'languageinfo' => ApiQueryLanguageinfo::class,
];
/**
// Filter modules based on continue parameter
$continuationManager = new ApiContinuationManager( $this, $allModules, $propModules );
$this->setContinuationManager( $continuationManager );
+ /** @var ApiQueryBase[] $modules */
$modules = $continuationManager->getRunModules();
+ '@phan-var ApiQueryBase[] $modules';
if ( !$continuationManager->isGeneratorDone() ) {
// Query modules may optimize data requests through the $this->getPageSet()
$cacheMode = $this->mPageSet->getCacheMode();
// Execute all unfinished modules
- /** @var ApiQueryBase $module */
foreach ( $modules as $module ) {
$params = $module->extractRequestParams();
$cacheMode = $this->mergeCacheMode(
$exportTitles = [];
$titles = $pageSet->getGoodTitles();
if ( count( $titles ) ) {
- $user = $this->getUser();
/** @var Title $title */
foreach ( $titles as $title ) {
- if ( $title->userCan( 'read', $user ) ) {
+ if ( $this->getPermissionManager()->userCan( 'read', $this->getUser(), $title ) ) {
$exportTitles[] = $title;
}
}
$exporter = new WikiExporter( $this->getDB() );
$sink = new DumpStringOutput;
$exporter->setOutputSink( $sink );
+ $exporter->setSchemaVersion( $this->mParams['exportschema'] );
$exporter->openStream();
foreach ( $exportTitles as $title ) {
$exporter->pageByTitle( $title );
'indexpageids' => false,
'export' => false,
'exportnowrap' => false,
+ 'exportschema' => [
+ ApiBase::PARAM_DFLT => WikiExporter::schemaVersion(),
+ ApiBase::PARAM_TYPE => XmlDumpWriter::$supportedSchemas,
+ ],
'iwurl' => false,
'continue' => [
ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',