Dua catatan tambahan tentang ini:
- Tidak perlu menyalin semua file ikon default ke direktori tema Anda.
- Jika Anda menggunakan ikon khusus, ikon tersebut harus dinamai dengan tepat agar dapat ditemukan.
Sebagai contoh, saya harus menggunakan ikon khusus untuk file .bib (bibtex). Tipe ini dipetakan dalam file_default_mimetype_mapping () , tetapi ini default ke ikon teks default karena tidak ada ikon yang ditentukan secara spesifik untuk tipe mime itu (teks / x-bibtex).
Saya mengesampingkan theme_file_icon () di template.php tema saya, tetapi saya melakukannya sehingga jalur ikon hanya dimodifikasi sesuai kebutuhan, dan saya tidak perlu menyalin direktori ikon default ke direktori tema saya:
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 . '" />';
}
Yang kedua adalah Anda harus memberi nama ikon dengan tepat. Jika Anda tetap menggunakan file_icon_url () , kode ini dari fungsi itu akan menentukan nama file untuk ikon:
// 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;
}
Jadi dalam kasus saya, saya perlu memberi nama file teks-x-bibtex.png saya. Tentu saja, jika Anda ingin memberi nama saja apa pun yang Anda inginkan (bibtex.png dalam kasus ini), Anda bisa mengatur nama file secara manual:
$icon_url = $icon_directory . '/bibtex.png';
Salah satu akan berfungsi, tetapi metode ini memungkinkan Anda untuk menjaga ikon default di mana mereka berada dan hanya men-tweak hal-hal yang diperlukan.