Возникла некоторая проблема с выводом функции theme с хуком imagecache.
Дело в том, что функция theme('imagecache', 'avatar-preset', $user->picture) по умолчанию выдает следующий результат:
<img class="imagecache avatar-preset" height="20" width="20" title="" alt="" src="http://fantasy-portal.ru/sites/default/files/imagecache/bloger-list-avatar/pictures/avatars/picture-7.jpg">
Зачем imgecache выводит в img src полный url до картинки с доменным именем, я не понимаю.
Думаю должна быть возможность вывода картинки без http и доменного имени (" http://fantasy-portal.ru ") ...
По идее, вот переменные, которые влияют на вывод данной функции:
print theme('imagecache', $preset, $image['filepath'], $alt, $title, $attributes);
Со всеми переменными кроме $attributes, все понятно. Интересно какие значения могут быть в переменной $attributes?
Комментарии
Нефиг было ставить $base_url
при выключеном $base_url происходит то же самое...
Ну как бы не 24 байта а 1,5-2 килобайта лишнего трафика на некоторых страницах, но зачем лишние байты если от них можно избавится?
24 байта на каждую картинку, если быть точным. Если картинка весит в среднем 50Кб - то это 0.05% прироста.
P.S. используйте gzip на выходе
Требую тег "highload".
Я думаю надо переписывать на ООП
тэг поставил, но блин, кто-нибудь подскажет что с этим $attributes делать?
а то как-то не по делу...
Тыкс, с переменной $attributes разобрался, она никак не влияет на формирование img src...
Переменная $attributes является массивом, в котором можно задать различные атрибуты объекта, в нашем случае это тэг img, например:
В примере мы задаем параметры тэга img и у нас на выходе сформируется следующая строка
src="http://нашдомен/sites/default/files/imagecache/имя пресета imagecache/путь до картинки">
Поиск в интернете дал информацию о том, что imagecache формирует img src таким образом на многих сайтах, только вот информацию о том, каким образом выводить путь до файла картинки без http и доменного имени, нигде не нашел... Походу надо копать модуль imagecache.
Ну вот я и нашел решение, и стоило вас великих гуру беспокоить?
Хук theme_imagecache в файле imagecache.module выглядит следующим образом:
// Check is_null() so people can intentionally pass an empty array of
// to override the defaults completely.
if (is_null($attributes)) {
$attributes = array('class' => 'imagecache imagecache-'. $presetname);
}
if ($getsize && ($image = image_get_info(imagecache_create_path($presetname, $path)))) {
$attributes['width'] = $image['width'];
$attributes['height'] = $image['height'];
}
$attributes = drupal_attributes($attributes);
$imagecache_url = imagecache_create_url($presetname, $path, FALSE, $absolute);
return '<img src="'. $imagecache_url .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. $attributes .' />';
}
и если в нашем примере сделать следующий вывод:
На выходе получим следующую строку:
src="/sites/default/files/imagecache/имя пресета imagecache/путь до картинки">
Спасибо Mascher-у за помощь
Надеюсь кому-то пригодится