47 $start = str_replace(
' ',
'_', $this->
getOption(
'start',
'' ) );
48 $end = str_replace(
' ',
'_', $this->
getOption(
'end',
'' ) );
50 $media_type = str_replace(
' ',
'_', $this->
getOption(
'media_type',
'' ) );
52 $major_mime = str_replace(
' ',
'_', $this->
getOption(
'major_mime',
'' ) );
54 $minor_mime = str_replace(
' ',
'_', $this->
getOption(
'minor_mime',
'' ) );
60 $queryBuilder = FileSelectQueryBuilder::newForFile( $dbr );
62 $queryBuilder->where( $dbr->expr(
'img_name',
'>', $start ) );
64 $queryBuilder->andWhere( $dbr->expr(
'img_name',
'<=', $end ) );
67 if ( $media_type !==
'' ) {
68 $queryBuilder->andWhere( [
'img_media_type' => $media_type ] );
71 if ( $major_mime !==
'' ) {
72 $queryBuilder->andWhere( [
'img_major_mime' => $major_mime ] );
75 if ( $minor_mime !==
'' ) {
76 $queryBuilder->andWhere( [
'img_minor_mime' => $minor_mime ] );
80 ->orderBy(
'img_name', SelectQueryBuilder::SORT_ASC )
82 ->caller( __METHOD__ )->fetchResultSet();
84 if ( $res->numRows() > 0 ) {
85 $row1 = $res->current();
86 $this->
output(
"Processing next {$res->numRows()} row(s) starting with {$row1->img_name}.\n" );
90 $backendOperations = [];
92 foreach ( $res as $row ) {
93 $file = $repo->newFileFromRow( $row );
94 $headers = $file->getContentHeaders();
95 if ( $this->
getOption(
'refreshContentType',
false ) ) {
96 $headers[
'Content-Type'] = $row->img_major_mime .
'/' . $row->img_minor_mime;
99 if ( count( $headers ) ) {
100 $backendOperations[] = [
101 'op' =>
'describe',
'src' => $file->getPath(),
'headers' => $headers
106 foreach ( $file->getHistory() as $oldFile ) {
107 $headers = $oldFile->getContentHeaders();
108 if ( count( $headers ) ) {
109 $backendOperations[] = [
110 'op' =>
'describe',
'src' => $oldFile->getPath(),
'headers' => $headers
116 $this->
output(
"Queued headers update for file '{$row->img_name}'.\n" );
119 $start = $row->img_name;
122 $backendOperationsCount = count( $backendOperations );
123 $count += $backendOperationsCount;
125 $this->
output(
"Updating headers for {$backendOperationsCount} file(s).\n" );
127 }
while ( $res->numRows() === $this->getBatchSize() );
129 $this->
output(
"Done. Updated headers for $count file(s).\n" );