Как добавить класс картинкам в нодах?

Главные вкладки

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 11 марта 2011 в 16:33

1) в своей теме, в файле template.php Вы можете использовать themename_image() (скопировав из файла theme.inc функцию theme_image() ), в модуле будет называться phptemplate_image() ;
2) Вам нужен параметр $attributes Через него можно добавить class.

Аватар пользователя sas@drupal.org sas@drupal.org 12 марта 2011 в 12:19

Ну вот смотрим фрагмент

<?php
...
$attributes drupal_attributes($attributes); 
...
  return 
'<img src="'check_url($url) .'" alt="'check_plain($alt) .'" title="'check_plain($title) .'" '. (isset($image_attributes) ? $image_attributes '') . $attributes .' />';
  } 
...
?>

Чтобы добавить например "my-class"
вставляем в начало скопированной функции:

if(isset($attributes['class'])){
 $attributes['class'] .= ' my-class';
} else {
 $attributes['class'] = 'my-class';
}

готово.

Аватар пользователя Funtik44 Funtik44 14 марта 2011 в 10:53

Вот что получилось, но результата нет, где я ошибся, подскажите? Добавил эту функцию в template.php:

function orange_image($path, $alt = '', $title = '', $attributes = NULL, $getsize = TRUE) {
  if(isset($attributes['class'])){
 $attributes['class'] .= ' my-class';
} else {
 $attributes['class'] = 'my-class';
}
  if (!$getsize || (is_file($path) && (list($width, $height, $type, $image_attributes) = [user=getimagesize]getimagesize[/user]($path)))) {
    $attributes = drupal_attributes($attributes);
    $url = (url($path) == $path) ? $path : (base_path() . $path);
    return '<img src="'. check_url($url) .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. (isset($image_attributes) ? $image_attributes : '') . $attributes .' />';
  }
}

PS Orange - это название темы.

Аватар пользователя sas@drupal.org sas@drupal.org 14 марта 2011 в 11:17

Возможно 2 варианта -
1) не работает в теме - попробуйте имя phptemplate_image
2) Картинки выводятся не через theme('image ...
тогда пишим js и функция php не нужна

jQuery("img").addClass("my-class");

js сроку можно добавить в js для темы