Prawie wszystko w tytule. Chciałbym dodać klasy CSS do obrazów generowanych za pomocą funkcji motywu stylu obrazu, aby dane wyjściowe wyglądały następująco:
<img class="MYCLASS" alt="" src="site.com/sites/default/files/styles/profile_picture/public/pictures/picture-1-1318455022.jpg" typeof="foaf:Image">
Czy jest coś takiego?
Oto kod oparty na odpowiedzi Ryana .
theme
wtheme_image_style
nazwą Twojego motywu.dodaj następujące wiersze do funkcji
Zamiast
'my-class'
chciałem użyć rzeczywistej nazwy stylu, więc użyłem$variables['style_name']
zamiast tego. Nazwy stylu obrazu są zawsze prawidłowymi nazwami klas css, więc nie powinno być problemu z tym podejściem. Funkcja powinna wyglądać następująco:źródło
Użyj funkcji wstępnego przetwarzania
Chcesz, aby ta klasa na rzeczywistym obrazie, dodawanie przez JS / jQuery było niechlujne i pęka, jeśli zawartość jest ładowana przez ajax.
Dlaczego nie używam do tego theme_image_style ()
Problem z robieniem tego za pomocą theme_image_style () polega na tym, że zastępuje on funkcję wyjściową tylko dla jednego pola, co jeśli masz wiele pól w różnych miejscach ... zbyt wiele
THEME_field__field_photo__team($variables)
osiągających to samo co powyżej przy użyciu theme_image_style () wyglądałoby tak:źródło
$variables['content']['field_images'][$key]['#item']['attributes']['class'][] = [your_css_class]
.Jeśli chcesz dodać klasę, aby zapewnić dodatkowe css dla obrazów, możesz to obejść, przechodząc na wyższy poziom w drzewie dom. Twoje obrazy powinny być zawarte w polu div, który ma klasę podobną
.field-type-image
. Mając to na uwadze, możesz napisać selektor, który wybiera obrazy, na przykład:div.field-type-image img {border: 1px solid #ccc }
lub bardziej szczegółowy, taki jak:
div.field-type-image div.field-items div.field-item img {border: 1px solid #ccc }
źródło
Myślę, że chcesz użyć tego do podpisów. Po wielu polowaniach użyj Jquery. To jest dla Drupala 7.
utwórz plik js. Nazwij to caption.js. Możesz to nazwać czymś innym. Umieść go gdzieś w swoim motywie.
Upewnij się, że skrypt zostanie wywołany, edytując plik theme.info i dodając skrypty [] = pathtoyourfile / caption.js
caption.js powinien zawierać następujący kod
Zastąp .views-field-field-useimage img dla własnego selektora.
Naciśnij pusty przycisk pamięci podręcznej i spróbuj.
źródło
Sugestia dla tej odpowiedzi .
Zmienić
do
więc nazwa stylu obrazu jest dołączana do tablicy klas i nic nie zostaje przypadkowo zgniecione.
Pełny fragment kodu:
źródło