57 $start = str_replace(
' ',
'_', $this->
getOption(
'start',
'' ) );
58 $end = str_replace(
' ',
'_', $this->
getOption(
'end',
'' ) );
60 $media_type = str_replace(
' ',
'_', $this->
getOption(
'media_type',
'' ) );
62 $major_mime = str_replace(
' ',
'_', $this->
getOption(
'major_mime',
'' ) );
64 $minor_mime = str_replace(
' ',
'_', $this->
getOption(
'minor_mime',
'' ) );
70 $queryBuilder = FileSelectQueryBuilder::newForFile( $dbr );
72 $queryBuilder->where( $dbr->expr(
'img_name',
'>', $start ) );
73 if ( strlen( $end ) ) {
74 $queryBuilder->andWhere( $dbr->expr(
'img_name',
'<=', $end ) );
77 if ( strlen( $media_type ) ) {
78 $queryBuilder->andWhere( [
'img_media_type' => $media_type ] );
81 if ( strlen( $major_mime ) ) {
82 $queryBuilder->andWhere( [
'img_major_mime' => $major_mime ] );
85 if ( strlen( $minor_mime ) ) {
86 $queryBuilder->andWhere( [
'img_minor_mime' => $minor_mime ] );
90 ->orderBy(
'img_name', SelectQueryBuilder::SORT_ASC )
92 ->caller( __METHOD__ )->fetchResultSet();
94 if ( $res->numRows() > 0 ) {
95 $row1 = $res->current();
96 $this->
output(
"Processing next {$res->numRows()} row(s) starting with {$row1->img_name}.\n" );
100 $backendOperations = [];
102 foreach ( $res as $row ) {
103 $file = $repo->newFileFromRow( $row );
104 $headers = $file->getContentHeaders();
105 if ( $this->
getOption(
'refreshContentType',
false ) ) {
106 $headers[
'Content-Type'] = $row->img_major_mime .
'/' . $row->img_minor_mime;
109 if ( count( $headers ) ) {
110 $backendOperations[] = [
111 'op' =>
'describe',
'src' => $file->getPath(),
'headers' => $headers
116 foreach ( $file->getHistory() as $oldFile ) {
117 $headers = $oldFile->getContentHeaders();
118 if ( count( $headers ) ) {
119 $backendOperations[] = [
120 'op' =>
'describe',
'src' => $oldFile->getPath(),
'headers' => $headers
126 $this->
output(
"Queued headers update for file '{$row->img_name}'.\n" );
129 $start = $row->img_name;
132 $backendOperationsCount = count( $backendOperations );
133 $count += $backendOperationsCount;
135 $this->
output(
"Updating headers for {$backendOperationsCount} file(s).\n" );
137 }
while ( $res->numRows() === $this->getBatchSize() );
139 $this->
output(
"Done. Updated headers for $count file(s).\n" );