Сгенерированная разметка для отображения поля файла (PDF в этом примере):
<img src="/modules/file/icons/application-pdf.png" title="application/pdf" alt="" class="file-icon">
Я хотел бы использовать другое изображение значка. Как я могу сделать это без изменения содержимого / modules / file / icons?
Я думаю, я мог бы скрыть изображение по умолчанию и отобразить другое изображение с помощью CSS, но кажется немного грязным.
Два дополнительных примечания по этому вопросу:
Как пример, мне нужно было использовать пользовательский значок для файла .bib (bibtex). Этот тип отображается в file_default_mimetype_mapping () , но по умолчанию используется значок текста по умолчанию, поскольку для этого типа MIME специально не определен значок (text / x-bibtex).
Я переопределил theme_file_icon () в template.php моей темы, но я сделал это так, чтобы путь к значкам изменялся только по мере необходимости, и мне не пришлось копировать каталог значков по умолчанию в каталог моей темы:
Во-вторых, вы должны правильно назвать иконку. Если вы просто продолжите использовать file_icon_url () , этот код из этой функции будет определять имя файла для иконки:
Поэтому в моем случае мне нужно было назвать мой файл text-x-bibtex.png. Конечно, если вы хотите просто назвать его как хотите (в данном случае bibtex.png), вы можете просто установить имя файла вручную:
Любой из них будет работать, но этот метод позволяет вам сохранять значки по умолчанию там, где они есть, и настраивать их только по мере необходимости.
источник
Я и Tregis сделали этот модуль File Field Icons некоторое время назад. Надеюсь это поможет
источник
Вы можете (обычно) предварительно обработать функции темы. Так что если вы:
theme_file_icon()
в вашей теме.Скопируйте весь
modules/file/icons
каталог в вашу тему (я использовалfile_icons
) и добавьте эту функцию предварительной обработки в template.php вашей темы:Вы также можете сделать условные переопределения таким образом ala @ wonder95, но я хотел, чтобы все было просто.
источник
Хотя это и не так чисто, как некоторые из приведенных решений, по-настоящему простой способ справиться с этим - использовать CSS3-селектор атрибута type. Вы можете использовать это, чтобы быстро добавить свой собственный значок в качестве фонового изображения для вашей ссылки. Результат, что оба связаны с целевым файлом. Затем вы можете скрыть исходное изображение. Я сделал это, чтобы получить следующий вид:
Это CSS, который я использовал для достижения результатов выше:
В моем примере я показывал поля файла, используя представления.
источник