60 $start = str_replace(
' ',
'_', $this->
getOption(
'start',
'' ) );
61 $end = str_replace(
' ',
'_', $this->
getOption(
'end',
'' ) );
63 $media_type = str_replace(
' ',
'_', $this->
getOption(
'media_type',
'' ) );
65 $major_mime = str_replace(
' ',
'_', $this->
getOption(
'major_mime',
'' ) );
67 $minor_mime = str_replace(
' ',
'_', $this->
getOption(
'minor_mime',
'' ) );
73 $queryBuilder = FileSelectQueryBuilder::newForFile( $dbr );
75 $queryBuilder->where( $dbr->expr(
'img_name',
'>', $start ) );
77 $queryBuilder->andWhere( $dbr->expr(
'img_name',
'<=', $end ) );
80 if ( $media_type !==
'' ) {
81 $queryBuilder->andWhere( [
'img_media_type' => $media_type ] );
84 if ( $major_mime !==
'' ) {
85 $queryBuilder->andWhere( [
'img_major_mime' => $major_mime ] );
88 if ( $minor_mime !==
'' ) {
89 $queryBuilder->andWhere( [
'img_minor_mime' => $minor_mime ] );
93 ->orderBy(
'img_name', SelectQueryBuilder::SORT_ASC )
95 ->caller( __METHOD__ )->fetchResultSet();
97 if ( $res->numRows() > 0 ) {
98 $row1 = $res->current();
99 $this->
output(
"Processing next {$res->numRows()} row(s) starting with {$row1->img_name}.\n" );
103 $backendOperations = [];
105 foreach ( $res as $row ) {
106 $file = $repo->newFileFromRow( $row );
107 $headers = $file->getContentHeaders();
108 if ( $this->
getOption(
'refreshContentType',
false ) ) {
109 $headers[
'Content-Type'] = $row->img_major_mime .
'/' . $row->img_minor_mime;
112 if ( count( $headers ) ) {
113 $backendOperations[] = [
114 'op' =>
'describe',
'src' => $file->getPath(),
'headers' => $headers
119 foreach ( $file->getHistory() as $oldFile ) {
120 $headers = $oldFile->getContentHeaders();
121 if ( count( $headers ) ) {
122 $backendOperations[] = [
123 'op' =>
'describe',
'src' => $oldFile->getPath(),
'headers' => $headers
129 $this->
output(
"Queued headers update for file '{$row->img_name}'.\n" );
132 $start = $row->img_name;
135 $backendOperationsCount = count( $backendOperations );
136 $count += $backendOperationsCount;
138 $this->
output(
"Updating headers for {$backendOperationsCount} file(s).\n" );
140 }
while ( $res->numRows() === $this->getBatchSize() );
142 $this->
output(
"Done. Updated headers for $count file(s).\n" );