*/
use MediaWiki\MediaWikiServices;
+use Wikimedia\Rdbms\IResultWrapper;
require_once __DIR__ . '/Maintenance.php';
/**
* A resource pointing to a sitemap file
*
- * @var resource
+ * @var resource|false
*/
public $file;
$this->fatalError( "Can not create directory $fspath." );
}
+ $dbDomain = WikiMap::getCurrentWikiDbDomain()->getId();
$this->fspath = realpath( $fspath ) . DIRECTORY_SEPARATOR;
$this->urlpath = $this->getOption( 'urlpath', "" );
if ( $this->urlpath !== "" && substr( $this->urlpath, -1 ) !== '/' ) {
$this->urlpath .= '/';
}
- $this->identifier = $this->getOption( 'identifier', wfWikiID() );
+ $this->identifier = $this->getOption( 'identifier', $dbDomain );
$this->compress = $this->getOption( 'compress', 'yes' ) !== 'no';
$this->skipRedirects = $this->hasOption( 'skip-redirects' );
$this->dbr = $this->getDB( DB_REPLICA );
$this->generateNamespaces();
$this->timestamp = wfTimestamp( TS_ISO_8601, wfTimestampNow() );
- $this->findex = fopen( "{$this->fspath}sitemap-index-{$this->identifier}.xml", 'wb' );
+ $encIdentifier = rawurlencode( $this->identifier );
+ $this->findex = fopen( "{$this->fspath}sitemap-index-{$encIdentifier}.xml", 'wb' );
$this->main();
}
* Return a database resolution of all the pages in a given namespace
*
* @param int $namespace Limit the query to this namespace
- * @return Resource
+ * @return IResultWrapper
*/
function getPageRes( $namespace ) {
return $this->dbr->select( 'page',