Wygenerowany znacznik do wyświetlania pola pliku to (PDF w tym przykładzie):
<img src="/modules/file/icons/application-pdf.png" title="application/pdf" alt="" class="file-icon">
Chciałbym użyć innego obrazu ikony. Jak mogę to zrobić bez zmiany zawartości / modułów / plików / ikon?
Myślę, że mógłbym ukryć domyślny obraz i wyświetlić inny z CSS, ale wydaje się nieco niechlujny.
Dwie dodatkowe uwagi na ten temat:
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:
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:
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:
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.
źródło
Ja i tregis zrobiliśmy ten moduł File Field Icons jakiś czas temu. Mam nadzieję że to pomoże
źródło
Możesz (zwykle) wstępnie przetwarzać funkcje motywu. Więc jeśli ty:
theme_file_icon()
motywu.Skopiuj cały
modules/file/icons
katalog do motywu (użyłemfile_icons
) i dodaj tę funkcję przetwarzania wstępnego do szablonu theme.php:W ten sposób można również wykonać przesłonięcia warunkowe ala @ wonder95, ale chciałem zachować prostotę.
źródło
Choć nie jest tak czysty, jak niektóre z podanych rozwiązań, bardzo prostym sposobem radzenia sobie z tym jest skorzystanie z selektora atrybutów „typ” CSS3. Możesz go użyć, aby szybko dodać niestandardową ikonę jako obraz tła do linku. W rezultacie oba są połączone z plikiem docelowym. Następnie możesz ukryć oryginalny obraz. Zrobiłem to, aby uzyskać następujący wygląd:
Oto CSS, którego użyłem do osiągnięcia powyższych wyników:
W moim przykładzie pokazywałem pola plików za pomocą widoków.
źródło