Efter att ha tittat igenom koden hamnade jag på den här funktionen.
/**
* Gets all available MIME-types
*
* @access public
* @staticvar array mimetypes
* @return array array[mimetype], array[transformation]
*/
function PMA_getAvailableMIMEtypes()
{
static $stack = null;
if (null !== $stack) {
return $stack;
}
$stack = array();
$filestack = array();
$handle = opendir('./libraries/plugins/transformations');
if (! $handle) {
return $stack;
}
while ($file = readdir($handle)) {
$filestack[] = $file;
}
closedir($handle);
sort($filestack);
foreach ($filestack as $file) {
if (preg_match('|^.*_.*_.*\.class\.php$|', $file)) {
// File contains transformation functions.
$parts = explode('_', str_replace('.class.php', '', $file));
$mimetype = $parts[0] . "/" . $parts[1];
$stack['mimetype'][$mimetype] = $mimetype;
$stack['transformation'][] = $mimetype . ': ' . $parts[2];
$stack['transformation_file'][] = $file;
} elseif (preg_match('|^.*\.class.php$|', $file)) {
// File is a plain mimetype, no functions.
$base = str_replace('.class.php', '', $file);
if ($base != 'global') {
$mimetype = str_replace('_', '/', $base);
$stack['mimetype'][$mimetype] = $mimetype;
$stack['empty_mimetype'][$mimetype] = $mimetype;
}
}
}
return $stack;
}
Mina php-kunskaper är begränsade men jag kan se att det läser igenom filerna i plugins/transformations-katalogen och returnerar dessa filnamn till skripten som refererar till denna funktion. När jag bläddrade i den här katalogen från en terminal märkte jag att den var fylld med ._-filer skapade av finder. Jag använder en mac för att göra min utveckling på och jag hade hämtat den senaste kopian av phpmyadmin med finder istället för wget så alla dessa ._-filer skapades. Något med dem förstörde den här funktionen och när jag väl tog bort dem med ett sökkommando på basnivå fungerade allt som det var tänkt. Här är sökkommandot för alla som upplever något liknande:
find . -type f -name '._*' -exec rm {} \;
Återigen, kör det på basnivån i phpmyadmin-katalogen och allt borde vara bra.