(follow-up r86567) per CR rename the class JpegOrTiffHandler to ExifBitmapHandler.
authorBrian Wolff <bawolff@users.mediawiki.org>
Fri, 17 Jun 2011 03:37:59 +0000 (03:37 +0000)
committerBrian Wolff <bawolff@users.mediawiki.org>
Fri, 17 Jun 2011 03:37:59 +0000 (03:37 +0000)
RELEASE-NOTES-1.19
includes/AutoLoader.php
includes/media/ExifBitmap.php [new file with mode: 0644]
includes/media/Jpeg.php
includes/media/JpegOrTiff.php [deleted file]
includes/media/Tiff.php

index 57640eb..d1a49bc 100644 (file)
@@ -95,7 +95,8 @@ production.
   as lastTabIndex().
 * (bug 29332) Warn if user requests mediawiki-announce subscription but does not
   enter an e-mail address.
-* (bug 25375) Add canonical namespaces to JavaScript "wgNamespaceIds" 
+* (bug 25375) Add canonical namespaces to JavaScript "wgNamespaceIds"
+* The class JpegOrTiffHandler was renamed ExifBitmapHandler. 
 
 === API changes in 1.19 ===
 * BREAKING CHANGE: action=watch now requires POST and token.
index ab53ab3..ab86371 100644 (file)
@@ -528,7 +528,7 @@ $wgAutoloadLocalClasses = array(
        'IPTC' => 'includes/media/IPTC.php',
        'JpegHandler' => 'includes/media/Jpeg.php',
        'JpegMetadataExtractor' => 'includes/media/JpegMetadataExtractor.php',
-       'JpegOrTiffHandler' => 'includes/media/JpegOrTiff.php',
+       'ExifBitmapHandler' => 'includes/media/ExifBitmap.php',
        'MediaHandler' => 'includes/media/Generic.php',
        'MediaTransformError' => 'includes/media/MediaTransformOutput.php',
        'MediaTransformOutput' => 'includes/media/MediaTransformOutput.php',
diff --git a/includes/media/ExifBitmap.php b/includes/media/ExifBitmap.php
new file mode 100644 (file)
index 0000000..b63ef18
--- /dev/null
@@ -0,0 +1,127 @@
+<?php
+/**
+ * @file
+ * @ingroup Media
+ */
+
+/**
+ * Stuff specific to JPEG and (built-in) TIFF handler.
+ * All metadata related, since both JPEG and TIFF support Exif.
+ *
+ * @ingroup Media
+ */
+class ExifBitmapHandler extends BitmapHandler {
+
+       const BROKEN_FILE = '-1'; // error extracting metadata
+       const OLD_BROKEN_FILE = '0'; // outdated error extracting metadata.
+
+       function convertMetadataVersion( $metadata, $version = 1 ) {
+               // basically flattens arrays.
+               $version = explode(';', $version, 2);
+               $version = intval($version[0]);
+               if ( $version < 1 || $version >= 2 ) {
+                       return $metadata;
+               }
+
+               $avoidHtml = true;
+
+               if ( !is_array( $metadata ) ) {
+                       $metadata = unserialize( $metadata );
+               }
+               if ( !isset( $metadata['MEDIAWIKI_EXIF_VERSION'] ) || $metadata['MEDIAWIKI_EXIF_VERSION'] != 2 ) {
+                       return $metadata;
+               }
+
+               // Treat Software as a special case because in can contain
+               // an array of (SoftwareName, Version).
+               if (isset( $metadata['Software'] ) 
+                       && is_array( $metadata['Software'] ) 
+                       && is_array( $metadata['Software'][0])
+                       && isset( $metadata['Software'][0][0] )
+                       && isset( $metadata['Software'][0][1])
+                ) {
+                       $metadata['Software'] = $metadata['Software'][0][0] . ' (Version '
+                               . $metadata['Software'][0][1] . ')';
+               }
+
+               // ContactInfo also has to be dealt with specially
+               if ( isset( $metadata['Contact'] ) ) {
+                       $metadata['Contact'] =
+                               FormatMetadata::collapseContactInfo(
+                                       $metadata['Contact'] );
+               }
+
+               foreach ( $metadata as &$val ) {
+                       if ( is_array( $val ) ) {
+                               $val = FormatMetadata::flattenArray( $val, 'ul', $avoidHtml );
+                       }
+               }
+               $metadata['MEDIAWIKI_EXIF_VERSION'] = 1;
+               return $metadata;
+       }
+
+       function isMetadataValid( $image, $metadata ) {
+               global $wgShowEXIF;
+               if ( !$wgShowEXIF ) {
+                       # Metadata disabled and so an empty field is expected
+                       return self::METADATA_GOOD;
+               }
+               if ( $metadata === self::OLD_BROKEN_FILE ) {
+                       # Old special value indicating that there is no EXIF data in the file.
+                       # or that there was an error well extracting the metadata.
+                       wfDebug( __METHOD__ . ": back-compat version\n");
+                       return self::METADATA_COMPATIBLE;
+               }
+               if ( $metadata === self::BROKEN_FILE ) {
+                       return self::METADATA_GOOD;
+               }
+               wfSuppressWarnings();
+               $exif = unserialize( $metadata );
+               wfRestoreWarnings();
+               if ( !isset( $exif['MEDIAWIKI_EXIF_VERSION'] ) ||
+                       $exif['MEDIAWIKI_EXIF_VERSION'] != Exif::version() )
+               {
+                       if ( isset( $exif['MEDIAWIKI_EXIF_VERSION'] ) &&
+                               $exif['MEDIAWIKI_EXIF_VERSION'] == 1 )
+                       {
+                               //back-compatible but old
+                               wfDebug( __METHOD__.": back-compat version\n" );
+                               return self::METADATA_COMPATIBLE;
+                       }
+                       # Wrong (non-compatible) version
+                       wfDebug( __METHOD__.": wrong version\n" );
+                       return self::METADATA_BAD;
+               }
+               return self::METADATA_GOOD;
+       }
+
+       /**
+        * @param $image File
+        * @return array|bool
+        */
+       function formatMetadata( $image ) {
+               $metadata = $image->getMetadata();
+               if ( !$metadata ||
+                       $this->isMetadataValid( $image, $metadata ) === self::METADATA_BAD )
+               {
+                       // So we don't try and display metadata from PagedTiffHandler
+                       // for example when using InstantCommons.
+                       return false;
+               }
+
+               $exif = unserialize( $metadata );
+               if ( !$exif ) {
+                       return false;
+               }
+               unset( $exif['MEDIAWIKI_EXIF_VERSION'] );
+               if ( count( $exif ) == 0 ) {
+                       return false;
+               }
+               return $this->formatMetadataHelper( $exif );
+       }
+
+       function getMetadataType( $image ) {
+               return 'exif';
+       }
+}
+
index d8f713d..7033409 100644 (file)
@@ -8,11 +8,12 @@
  * JPEG specific handler.
  * Inherits most stuff from BitmapHandler, just here to do the metadata handler differently.
  *
- * Metadata stuff common to Jpeg and built-in Tiff (not PagedTiffHandler) is in JpegOrTiffHandler.
+ * Metadata stuff common to Jpeg and built-in Tiff (not PagedTiffHandler) is
+ * in ExifBitmapHandler.
  *
  * @ingroup Media
  */
-class JpegHandler extends JpegOrTiffHandler {
+class JpegHandler extends ExifBitmapHandler {
 
        function getMetadata ( $image, $filename ) {
                try {
@@ -28,7 +29,7 @@ class JpegHandler extends JpegOrTiffHandler {
                        // BitmapMetadataHandler throws an exception in certain exceptional cases like if file does not exist.
                        wfDebug( __METHOD__ . ': ' . $e->getMessage() . "\n" );
 
-                       /* This used to use 0 (JpegOrTiffHandler::OLD_BROKEN_FILE) for the cases
+                       /* This used to use 0 (ExifBitmapHandler::OLD_BROKEN_FILE) for the cases
                         *      * No metadata in the file
                         *      * Something is broken in the file.
                         * However, if the metadata support gets expanded then you can't tell if the 0 is from
@@ -37,7 +38,7 @@ class JpegHandler extends JpegOrTiffHandler {
                         * Thus switch to using -1 to denote only a broken file, and use an array with only
                         * MEDIAWIKI_EXIF_VERSION to denote no props.
                         */
-                       return JpegOrTiffHandler::BROKEN_FILE;
+                       return ExifBitmapHandler::BROKEN_FILE;
                }
        }
 
diff --git a/includes/media/JpegOrTiff.php b/includes/media/JpegOrTiff.php
deleted file mode 100644 (file)
index d483500..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-/**
- * @file
- * @ingroup Media
- */
-
-/**
- * Stuff specific to JPEG and (built-in) TIFF handler.
- * All metadata related, since both JPEG and TIFF support Exif.
- *
- * @ingroup Media
- */
-class JpegOrTiffHandler extends BitmapHandler {
-
-       const BROKEN_FILE = '-1'; // error extracting metadata
-       const OLD_BROKEN_FILE = '0'; // outdated error extracting metadata.
-
-       function convertMetadataVersion( $metadata, $version = 1 ) {
-               // basically flattens arrays.
-               $version = explode(';', $version, 2);
-               $version = intval($version[0]);
-               if ( $version < 1 || $version >= 2 ) {
-                       return $metadata;
-               }
-
-               $avoidHtml = true;
-
-               if ( !is_array( $metadata ) ) {
-                       $metadata = unserialize( $metadata );
-               }
-               if ( !isset( $metadata['MEDIAWIKI_EXIF_VERSION'] ) || $metadata['MEDIAWIKI_EXIF_VERSION'] != 2 ) {
-                       return $metadata;
-               }
-
-               // Treat Software as a special case because in can contain
-               // an array of (SoftwareName, Version).
-               if (isset( $metadata['Software'] ) 
-                       && is_array( $metadata['Software'] ) 
-                       && is_array( $metadata['Software'][0])
-                       && isset( $metadata['Software'][0][0] )
-                       && isset( $metadata['Software'][0][1])
-                ) {
-                       $metadata['Software'] = $metadata['Software'][0][0] . ' (Version '
-                               . $metadata['Software'][0][1] . ')';
-               }
-
-               // ContactInfo also has to be dealt with specially
-               if ( isset( $metadata['Contact'] ) ) {
-                       $metadata['Contact'] =
-                               FormatMetadata::collapseContactInfo(
-                                       $metadata['Contact'] );
-               }
-
-               foreach ( $metadata as &$val ) {
-                       if ( is_array( $val ) ) {
-                               $val = FormatMetadata::flattenArray( $val, 'ul', $avoidHtml );
-                       }
-               }
-               $metadata['MEDIAWIKI_EXIF_VERSION'] = 1;
-               return $metadata;
-       }
-
-       function isMetadataValid( $image, $metadata ) {
-               global $wgShowEXIF;
-               if ( !$wgShowEXIF ) {
-                       # Metadata disabled and so an empty field is expected
-                       return self::METADATA_GOOD;
-               }
-               if ( $metadata === self::OLD_BROKEN_FILE ) {
-                       # Old special value indicating that there is no EXIF data in the file.
-                       # or that there was an error well extracting the metadata.
-                       wfDebug( __METHOD__ . ": back-compat version\n");
-                       return self::METADATA_COMPATIBLE;
-               }
-               if ( $metadata === self::BROKEN_FILE ) {
-                       return self::METADATA_GOOD;
-               }
-               wfSuppressWarnings();
-               $exif = unserialize( $metadata );
-               wfRestoreWarnings();
-               if ( !isset( $exif['MEDIAWIKI_EXIF_VERSION'] ) ||
-                       $exif['MEDIAWIKI_EXIF_VERSION'] != Exif::version() )
-               {
-                       if ( isset( $exif['MEDIAWIKI_EXIF_VERSION'] ) &&
-                               $exif['MEDIAWIKI_EXIF_VERSION'] == 1 )
-                       {
-                               //back-compatible but old
-                               wfDebug( __METHOD__.": back-compat version\n" );
-                               return self::METADATA_COMPATIBLE;
-                       }
-                       # Wrong (non-compatible) version
-                       wfDebug( __METHOD__.": wrong version\n" );
-                       return self::METADATA_BAD;
-               }
-               return self::METADATA_GOOD;
-       }
-
-       /**
-        * @param $image File
-        * @return array|bool
-        */
-       function formatMetadata( $image ) {
-               $metadata = $image->getMetadata();
-               if ( !$metadata ||
-                       $this->isMetadataValid( $image, $metadata ) === self::METADATA_BAD )
-               {
-                       // So we don't try and display metadata from PagedTiffHandler
-                       // for example when using InstantCommons.
-                       return false;
-               }
-
-               $exif = unserialize( $metadata );
-               if ( !$exif ) {
-                       return false;
-               }
-               unset( $exif['MEDIAWIKI_EXIF_VERSION'] );
-               if ( count( $exif ) == 0 ) {
-                       return false;
-               }
-               return $this->formatMetadataHelper( $exif );
-       }
-
-       function getMetadataType( $image ) {
-               return 'exif';
-       }
-}
-
index 64710ce..2674267 100644 (file)
@@ -11,7 +11,7 @@
  *
  * @ingroup Media
  */
-class TiffHandler extends JpegOrTiffHandler {
+class TiffHandler extends ExifBitmapHandler {
 
        /**
         * Conversion to PNG for inline display can be disabled here...
@@ -63,7 +63,7 @@ class TiffHandler extends JpegOrTiffHandler {
                                $data['MEDIAWIKI_EXIF_VERSION'] = Exif::version();
                                return serialize( $data );
                        } else {
-                               return JpegOrTiffHandler::BROKEN_FILE;
+                               return ExifBitmapHandler::BROKEN_FILE;
                        }
                } else {
                        return '';