Na het doorbladeren van de code kwam ik bij deze functie terecht.
/**
* 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;
}
Mijn php-vaardigheden zijn beperkt, maar ik kan zien dat het de bestanden in de map met plug-ins/transformaties doorleest en die bestandsnamen terugstuurt naar de scripts die naar deze functie verwijzen. Toen ik door deze map bladerde vanaf een terminal, merkte ik dat deze vol was met ._-bestanden gemaakt door vinder. Ik gebruik een mac om mijn ontwikkeling op te doen en ik had dit laatste exemplaar van phpmyadmin getrokken met Finder in plaats van wget, dus al deze ._-bestanden werden gemaakt. Iets aan hen heeft deze functie in de war gebracht en toen ik ze eenmaal verwijderde met een zoekcommando op het basisniveau, werkte alles zoals bedoeld. Hier is het zoekcommando voor iedereen die iets soortgelijks ervaart:
find . -type f -name '._*' -exec rm {} \;
Voer dat nogmaals uit op het basisniveau van de phpmyadmin-directory en alles zou in orde moeten zijn.