Bununla ilgili iki ek not:
- Varsayılan simge dosyalarının tümünü tema dizininize kopyalamanız gerekmez.
- Özel bir simge kullanıyorsanız, bulunabilmesi için simgenin uygun şekilde adlandırılmış olması gerekir.
Örnek olarak, .bib (bibtex) dosyası için özel bir simge kullanmaya ihtiyacım vardı. Bu tür, file_default_mimetype_mapping () öğesinde eşlenir , ancak varsayılan olarak varsayılan metin simgesidir, çünkü o mime türü (metin / x-bibtex) için özel olarak tanımlanmış bir simge yoktur.
Temamın template.php öğesinde theme_file_icon () yöntemini geçersiz kıldım, ancak simge yolunun yalnızca gerektiği gibi değiştirilmesini sağladım ve varsayılan simgeler dizinini tema dizinime kopyalamak zorunda kalmadım:
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 . '" />';
}
İkinci şey, simgeyi uygun şekilde adlandırmanız gerektiğidir. Sadece file_icon_url () işlevini kullanmaya devam ederseniz , bu işlevdeki bu kod simgenin dosya adını belirler:
// 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;
}
Bu yüzden benim durumumda text-x-bibtex.png dosyamı adlandırmam gerekiyordu. Tabii ki, sadece istediğinizi adlandırmak istiyorsanız (bu durumda bibtex.png), dosya adını manuel olarak ayarlayabilirsiniz:
$icon_url = $icon_directory . '/bibtex.png';
Her ikisi de işe yarayacaktır, ancak bu yöntem varsayılan simgeleri oldukları yerde tutmanıza ve yalnızca gerektiği gibi ayarlamanıza izin verir.