Presque tout dans le titre. Je voudrais ajouter une classe CSS aux images générées via une fonction de thème de style d'image, de sorte que la sortie ressemble à:
<img class="MYCLASS" alt="" src="site.com/sites/default/files/styles/profile_picture/public/pictures/picture-1-1318455022.jpg" typeof="foaf:Image">
Y a-t-il un moyen de le faire?
Voici un code basé sur la réponse de Ryan .
theme
danstheme_image_style
le nom de votre thème.ajoutez les lignes suivantes à la fonction
Au lieu de
'my-class'
je voulais utiliser le nom du style réel, j'ai donc utilisé à la$variables['style_name']
place. Les noms de style d'image sont toujours des noms de classe css valides, donc cette approche ne devrait pas poser de problème. La fonction devrait ressembler à ceci:la source
Utiliser la fonction de prétraitement
Vous voulez que cette classe sur l'image réelle, l'ajout via JS / jQuery est désordonné et se casse si le contenu est chargé en ajax.
Pourquoi je n'utilise pas theme_image_style () pour cela
Le problème avec ce faisant par theme_image_style () est qu'elle l' emporte sur la fonction de sortie pour un seul champ, si vous avez plusieurs champs dans différents endroits ... trop de
THEME_field__field_photo__team($variables)
réaliser la même chose que ci - dessus en utilisant theme_image_style () ressemblerait à ceci:la source
$variables['content']['field_images'][$key]['#item']['attributes']['class'][] = [your_css_class]
.Si la raison pour laquelle vous souhaitez ajouter la classe est de fournir des CSS supplémentaires pour les images, vous pouvez contourner cela en accédant à un niveau supérieur dans l'arborescence dom. Vos images doivent être incluses dans un champ div qui a une classe comme
.field-type-image
. Dans cet esprit, vous pouvez écrire un sélecteur qui sélectionne les images, quelque chose comme:div.field-type-image img {border: 1px solid #ccc }
ou plus spécifique comme:
div.field-type-image div.field-items div.field-item img {border: 1px solid #ccc }
la source
Je pense que vous voulez l'utiliser pour les sous-titres. Après avoir beaucoup chassé, utilisez Jquery. Ce truc est pour Drupal 7.
créez votre fichier js. Appelez-le caption.js. Vous pouvez l'appeler autrement. Stockez-le quelque part dans votre thème.
Assurez-vous que le script est appelé en modifiant votre fichier theme.info et en ajoutant des scripts [] = pathtoyourfile / caption.js
caption.js doit contenir le code suivant
Remplacez .views-field-field-useimage img par votre propre sélecteur.
Appuyez sur le bouton de cache vide et essayez-le.
la source
Une suggestion pour cette réponse .
Changer la
à
donc le nom du style d'image est ajouté au tableau de classe et rien n'est écrasé par inadvertance.
Extrait complet:
la source