61 $start = str_replace(
' ',
'_', $this->
getOption(
'start',
'' ) );
62 $end = str_replace(
' ',
'_', $this->
getOption(
'end',
'' ) );
64 $media_type = str_replace(
' ',
'_', $this->
getOption(
'media_type',
'' ) );
66 $major_mime = str_replace(
' ',
'_', $this->
getOption(
'major_mime',
'' ) );
68 $minor_mime = str_replace(
' ',
'_', $this->
getOption(
'minor_mime',
'' ) );
74 $queryBuilder = FileSelectQueryBuilder::newForFile( $dbr );
76 $queryBuilder->where( $dbr->expr(
'img_name',
'>', $start ) );
78 $queryBuilder->andWhere( $dbr->expr(
'img_name',
'<=', $end ) );
81 if ( $media_type !==
'' ) {
82 $queryBuilder->andWhere( [
'img_media_type' => $media_type ] );
85 if ( $major_mime !==
'' ) {
86 $queryBuilder->andWhere( [
'img_major_mime' => $major_mime ] );
89 if ( $minor_mime !==
'' ) {
90 $queryBuilder->andWhere( [
'img_minor_mime' => $minor_mime ] );
94 ->orderBy(
'img_name', SelectQueryBuilder::SORT_ASC )
96 ->caller( __METHOD__ )->fetchResultSet();
98 if ( $res->numRows() > 0 ) {
99 $row1 = $res->current();
100 $this->
output(
"Processing next {$res->numRows()} row(s) starting with {$row1->img_name}.\n" );
104 $backendOperations = [];
106 foreach ( $res as $row ) {
107 $file = $repo->newFileFromRow( $row );
108 $headers = $file->getContentHeaders();
109 if ( $this->
getOption(
'refreshContentType',
false ) ) {
110 $headers[
'Content-Type'] = $row->img_major_mime .
'/' . $row->img_minor_mime;
113 if ( count( $headers ) ) {
114 $backendOperations[] = [
115 'op' =>
'describe',
'src' => $file->getPath(),
'headers' => $headers
120 foreach ( $file->getHistory() as $oldFile ) {
121 $headers = $oldFile->getContentHeaders();
122 if ( count( $headers ) ) {
123 $backendOperations[] = [
124 'op' =>
'describe',
'src' => $oldFile->getPath(),
'headers' => $headers
130 $this->
output(
"Queued headers update for file '{$row->img_name}'.\n" );
133 $start = $row->img_name;
136 $backendOperationsCount = count( $backendOperations );
137 $count += $backendOperationsCount;
139 $this->
output(
"Updating headers for {$backendOperationsCount} file(s).\n" );
141 }
while ( $res->numRows() === $this->getBatchSize() );
143 $this->
output(
"Done. Updated headers for $count file(s).\n" );