Як додати полю свій клас (додаємо тегу img потрібний клас). Функція theme_preprocess_field. Модуль image_url_formatter

http://datatag.com.ua/
Оцінка матеріалу: 
Average: 5 (4 votes)

В попердніх уроках ми розглядали форми темізаці полів в Друпал 7. Однак, що робити коли потрібно додати до певного поля свій клас. Темізація дозволяє лише обгорнути поле в клас, а додати його, для прикладу всередену тегу img ніяк. Проте Друпал і тут дає можливість вебмастеру втілити заплановане в реальність. Сьогоднеі розглянемо два варіанти.

Перший варіант це функція my_theme_preprocess_field. За допомогою цієї функції ми знайдемо потрібне нам поле і додамо потрібний клас. У файлі template.php прописуємо код:

function MY_THEME_preprocess_field(&$vars) {
  if ($vars['element']['#field_name'] == 'FIELD_NAME') {
    foreach($vars['items'] as $key => $item){
      $vars['items'][ $key ]['#item']['attributes']['class'][] = 'MY_CLASS';
    }
  }
}

 Де FIELD_NAME - назва потрібного поля (для прикладу - field_gallery_photo) і MY_CLASS - клас, який додаємо до поля. Закидаємо на сервер і скидаємо кеш. Тепер цей клас буде додаватися до потрібного поля. Але є одне але. Якщо ви виводите це поле через Views, клас доданий не буде, оскільки Views змінює назву поля, додаючи свої суфікси до нього (цей варіант підходить коли ви не використовуєте представлення і потрібно лише прикріпити клас до певого поля типу матеріалу.). Проте що роботи коли без Views не обійтися? Для цього в нас є план "Б". Встановлюємо модуль Image URL Formatter і активовуємо його. Тепер заходимо в представлення і в потрібному полі змінюємо форматер на URL зображення і ставимо галочку абсолюний шлях

 

Как полю img добавить свой класс. How to add my class to img field Drupal 7

Зберігаємо і переходимо до перезапису нашо поля. Ставимо галочку "Перезаписати вивід цього поля" і прописуємо такий код:

<img src="[FIELD_NAME]" class="MY_CLASS">

Тобто ми спочатку вивели наше поле у вигляді абсолютного шляху і потім перезаписали його, вставивши цей шлях у тег img, додавши потрібний нам клас.

 

http://datatag.com.ua/