หมายเหตุเพิ่มเติมสองประการเกี่ยวกับสิ่งนี้:
- ไม่จำเป็นต้องคัดลอกไฟล์ไอคอนเริ่มต้นทั้งหมดไปยังไดเรกทอรีธีมของคุณ
- หากคุณใช้ไอคอนที่กำหนดเองจะต้องตั้งชื่ออย่างเหมาะสมเพื่อให้สามารถพบได้
ตัวอย่างเช่นฉันต้องการใช้ไอคอนที่กำหนดเองสำหรับไฟล์. bib (bibtex) ประเภทนี้ถูกแมปใน file_default_mimetype_mapping ()แต่เป็นค่าเริ่มต้นที่ไอคอนข้อความเริ่มต้นเนื่องจากไม่มีไอคอนที่กำหนดไว้โดยเฉพาะสำหรับประเภท mime นั้น (text / x-bibtex)
ฉันลบล้าง theme_file_icon () ใน template.php ของชุดรูปแบบของฉัน แต่ฉันทำเพื่อให้เส้นทางไอคอนมีการแก้ไขตามความจำเป็นเท่านั้นและฉันไม่ต้องคัดลอกไดเรกทอรีไอคอนเริ่มต้นไปยังไดเรกทอรีชุดรูปแบบของฉัน:
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 . '" />';
}
สิ่งที่สองคือคุณต้องตั้งชื่อไอคอนให้เหมาะสม หากคุณเพียงแค่ใช้งานfile_icon_url ()โค้ดนี้จากฟังก์ชันนั้นจะกำหนดชื่อไฟล์สำหรับไอคอน:
// 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;
}
ดังนั้นในกรณีของฉันฉันจำเป็นต้องตั้งชื่อไฟล์ text-x-bibtex.png แน่นอนถ้าคุณต้องการตั้งชื่อตามที่คุณต้องการ (bibtex.png ในกรณีนี้) คุณสามารถตั้งชื่อไฟล์ได้เอง:
$icon_url = $icon_directory . '/bibtex.png';
วิธีใดวิธีหนึ่งจะใช้งานได้ แต่วิธีนี้ช่วยให้คุณสามารถเก็บไอคอนเริ่มต้นที่พวกเขาอยู่และปรับแต่งสิ่งต่าง ๆ ตามที่จำเป็นเท่านั้น