Das generierte Markup zum Anzeigen eines Dateifelds lautet (PDF in diesem Beispiel):
<img src="/modules/file/icons/application-pdf.png" title="application/pdf" alt="" class="file-icon">
Ich möchte ein anderes Symbolbild verwenden. Wie kann ich dies tun, ohne den Inhalt von / modules / file / icons zu ändern?
Ich denke, ich könnte das Standardbild ausblenden und ein anderes mit CSS anzeigen, aber es scheint ein bisschen chaotisch.
Zwei zusätzliche Hinweise dazu:
Als Beispiel musste ich ein benutzerdefiniertes Symbol für eine BIB-Datei (Bibtex) verwenden. Dieser Typ wird in file_default_mimetype_mapping () zugeordnet , verwendet jedoch standardmäßig das Standardtextsymbol, da für diesen MIME-Typ (text / x-bibtex) kein Symbol speziell definiert ist.
Ich habe theme_file_icon () in der template.php meines Themas überschrieben, aber ich habe es so gemacht, dass der Symbolpfad nur nach Bedarf geändert wird und ich das Standard-Symbolverzeichnis nicht in mein Themenverzeichnis kopieren musste:
Die zweite Sache ist, dass Sie das Symbol entsprechend benennen müssen. Wenn Sie nur file_icon_url () verwenden , bestimmt dieser Code dieser Funktion den Dateinamen für das Symbol:
In meinem Fall musste ich meine Datei text-x-bibtex.png benennen. Wenn Sie es einfach so benennen möchten, wie Sie möchten (in diesem Fall bibtex.png), können Sie den Dateinamen natürlich auch manuell festlegen:
Beides funktioniert, aber mit dieser Methode können Sie die Standardsymbole dort belassen, wo sie sich befinden, und die Dinge nur nach Bedarf anpassen.
quelle
Me and tregis habe diese Datei eingeblendete Symbole Modul vor einer Weile getan. Hoffe das hilft
quelle
Sie können (normalerweise) Themenfunktionen vorverarbeiten. Also, wenn Sie:
theme_file_icon()
du dein Thema überschreibst .Kopieren Sie das gesamte
modules/file/icons
Verzeichnis in Ihr Thema (ich habe es verwendetfile_icons
) und fügen Sie diese Vorverarbeitungsfunktion zur template.php Ihres Themas hinzu:Sie können auf diese Weise auch bedingte Überschreibungen durchführen, aber ich wollte die Dinge einfach halten.
quelle
Obwohl dies nicht so sauber ist wie einige der angegebenen Lösungen, besteht eine wirklich einfache Möglichkeit, damit umzugehen, darin, den CSS3-Attributselektor 'type' zu verwenden. Sie können dies verwenden, um Ihr benutzerdefiniertes Symbol schnell als Hintergrundbild zu Ihrem Link hinzuzufügen. Das Ergebnis, dass beide mit der Zieldatei verknüpft sind. Sie können dann das Originalbild ausblenden. Ich habe dies getan, um das folgende Erscheinungsbild zu erhalten:
Dies ist das CSS, mit dem ich die oben genannten Ergebnisse erzielt habe:
In meinem Beispiel habe ich die Dateifelder mithilfe von Ansichten angezeigt.
quelle