इस पर दो अतिरिक्त नोट:
- सभी डिफ़ॉल्ट आइकन फ़ाइलों को अपनी थीम निर्देशिका में कॉपी करना आवश्यक नहीं है।
- यदि आप एक कस्टम आइकन का उपयोग कर रहे हैं, तो इसे खोजने के लिए इसे उचित रूप से नामित किया जाना चाहिए।
एक उदाहरण के रूप में, मुझे एक .bib (bibtex) फ़ाइल के लिए एक कस्टम आइकन का उपयोग करने की आवश्यकता थी। यह प्रकार file_default_mimetype_mapping () में मैप किया गया है , लेकिन यह डिफॉल्ट टेक्स्ट आइकन को डिफॉल्ट करता है, क्योंकि उस माइम टाइप (टेक्स्ट / x-bibtex) के लिए विशेष रूप से परिभाषित आइकन नहीं है।
मैंने अपने विषय के खाका में थीम_file_icon () को ओवररोड किया है। लेकिन मैंने ऐसा इसलिए किया ताकि आइकन पथ केवल आवश्यकतानुसार संशोधित हो, और मुझे अपने विषय निर्देशिका में डिफ़ॉल्ट आइकन निर्देशिका की प्रतिलिपि नहीं बनानी थी:
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;
}
इसलिए मेरे मामले में, मुझे अपनी फ़ाइल टेक्स्ट-x-bibtex.png नाम देने की आवश्यकता थी। बेशक, यदि आप इसे केवल जो चाहें नाम दें (bibtex.png इस मामले में), आप बस फ़ाइल फ़ाइल मैन्युअल रूप से सेट कर सकते हैं:
$icon_url = $icon_directory . '/bibtex.png';
या तो एक काम करेगा, लेकिन यह विधि आपको डिफ़ॉल्ट आइकन रखने की अनुमति देती है जहां वे हैं और केवल आवश्यकतानुसार चीजों को घुमाएं।