So ziemlich alles im Titel. Ich möchte Bildern, die über eine Bildstil-Themenfunktion generiert wurden, eine CSS-Klasse hinzufügen, damit die Ausgabe wie folgt aussieht:
<img class="MYCLASS" alt="" src="site.com/sites/default/files/styles/profile_picture/public/pictures/picture-1-1318455022.jpg" typeof="foaf:Image">
Gibt es sowieso dazu?
Hier ist ein Code, der auf Ryans Antwort basiert .
theme
intheme_image_style
mit dem Namen Ihr Thema ist.Fügen Sie der Funktion die folgenden Zeilen hinzu
Anstatt
'my-class'
den Namen des tatsächlichen Stils verwenden zu wollen, habe ich$variables['style_name']
stattdessen verwendet. Bildstilnamen sind immer gültige CSS-Klassennamen, daher sollte dieser Ansatz kein Problem darstellen. Die Funktion sollte folgendermaßen aussehen:quelle
Verwenden Sie die Vorverarbeitungsfunktion
Sie möchten, dass diese Klasse im eigentlichen Image angezeigt wird. Das Hinzufügen über JS / jQuery ist unübersichtlich und bricht ab, wenn der Inhalt ajax geladen ist.
Warum ich dafür nicht theme_image_style () verwende
Das Problem bei der Ausführung über theme_image_style () besteht darin, dass die Ausgabefunktion für nur ein Feld überschrieben wird. Wenn Sie mehrere Felder an verschiedenen Stellen haben ... würden zu viele
THEME_field__field_photo__team($variables)
, die mit theme_image_style () dasselbe wie oben erreichen, folgendermaßen aussehen:quelle
$variables['content']['field_images'][$key]['#item']['attributes']['class'][] = [your_css_class]
.Wenn der Grund, warum Sie die Klasse hinzufügen möchten, darin besteht, zusätzliche CSS für die Bilder bereitzustellen, können Sie dies umgehen, indem Sie zu einer oberen Ebene im Dom-Baum wechseln. Ihre Bilder sollten in einem Feld div enthalten sein, das eine Klasse wie hat
.field-type-image
. In diesem Sinne können Sie einen Selektor schreiben, der die Bilder auswählt, etwa:div.field-type-image img {border: 1px solid #ccc }
oder eine spezifischere wie:
div.field-type-image div.field-items div.field-item img {border: 1px solid #ccc }
quelle
Ich denke, Sie möchten dies für Untertitel verwenden. Verwenden Sie nach langem Jagen Jquery. Dieses Zeug ist für Drupal 7.
Erstellen Sie Ihre JS-Datei. Nennen Sie es caption.js. Sie können es etwas anderes nennen. Speichern Sie es irgendwo in Ihrem Thema.
Stellen Sie sicher, dass das Skript aufgerufen wird, indem Sie Ihre Datei theme.info bearbeiten und scripts [] = pathtoyourfile / caption.js hinzufügen
caption.js sollte den folgenden Code enthalten
Ersetzen Sie .views-field-field-useimage img durch Ihren eigenen Selektor.
Drücken Sie die leere Cache-Taste und probieren Sie es aus.
quelle
Ein Vorschlag für diese Antwort .
Ändere das
zu
Daher wird der Name des Bildstils an das Klassenarray angehängt und nichts wird versehentlich gequetscht.
Vollständiger Ausschnitt:
quelle