Dwie dodatkowe uwagi na ten temat:
- Nie jest konieczne kopiowanie wszystkich domyślnych plików ikon do katalogu motywów.
- Jeśli używasz niestandardowej ikony, należy ją odpowiednio nazwać, aby można ją było znaleźć.
Na przykład musiałem użyć niestandardowej ikony dla pliku .bib (bibtex). Ten typ jest odwzorowany w file_default_mimetype_mapping () , ale domyślnie jest domyślną ikoną tekstową, ponieważ nie ma specjalnie zdefiniowanej ikony dla tego typu MIME (text / x-bibtex).
Przesłoniłem theme_file_icon () w szablonie theme.php mojego motywu, ale zrobiłem to, aby ścieżka do ikon była modyfikowana tylko w razie potrzeby i nie musiałam kopiować domyślnego katalogu ikon do mojego katalogu motywów:
function mytheme_file_icon($variables) {
$file = $variables['file'];
$icon_directory = $variables['icon_directory'];
$mime = check_plain($file->filemime);
if ($mime == 'text/x-bibtex') {
$icon_directory = drupal_get_path('theme', 'mytheme') . '/images';
}
$icon_url = file_icon_url($file, $icon_directory);
return '<img class="file-icon" alt="" title="' . $mime . '" src="' . $icon_url . '" />';
}
Po drugie, musisz odpowiednio nazwać ikonę. Jeśli nadal korzystasz z funkcji file_icon_url () , ten kod z tej funkcji określi nazwę pliku ikony:
// For a few mimetypes, we can "manually" map to a generic icon.
$generic_mime = (string) file_icon_map($file);
$icon_path = $icon_directory . '/' . $generic_mime . '.png';
if ($generic_mime && file_exists($icon_path)) {
return $icon_path;
}
Więc w moim przypadku musiałem nazwać mój plik text-x-bibtex.png. Oczywiście, jeśli chcesz nadać jej dowolną nazwę (w tym przypadku bibtex.png), możesz po prostu ustawić nazwę pliku ręcznie:
$icon_url = $icon_directory . '/bibtex.png';
Każdy z nich będzie działał, ale ta metoda pozwala zachować domyślne ikony tam, gdzie są i dostosowywać tylko w razie potrzeby.