Добрый день
Перед созданием темы воспользовался поиском и нашел пару тем по моему вопросу, но всё равно не получается..
Имеется Views блок по имени v_product_block, unformatted, field. В нём Должны быть 3 фото, при наведении на которые появляются альтернативные фото.
Создал тип материала, в нём 2 поля - field_photos (несколько фото) и field_hover_photo. В настройках вью выставил, чтобы выводилось только 1-е фото из field_photos.
Но кастомизировать вывод конкретных полей не получается в шаблоне..
Сейчас создал только views-view-unformatted--v-product-block.tpl.php (остальные дефолтные):
<?php
?>
<?php foreach ($rows as $id => $row): ?>
<div>
<?php print $row['field_photos'];?>
</div>
<?php endforeach; ?>
Плодит только пустые дивы. Просто print $row выводит фото друг за другом в отдельных дивах и т.д. Разметка не та, что мне нужна.
Что мне сделать, чтобы получить просто url'ы этих фото?
Комментарии
imagecache,
поставить в настройках поля: выводить как ссылку на изображение, тогда вы получите вывод типа:
<img src="путь до маленькой картинки">
</a>
далее уже javascript'ом придется писать обработчик наведения на картинку:
$(mydiv).attr({'id':'mydivid','style':'display:none; position: absolute;'}); //присваиваете ему id и назначаете стиль чтобы его не отображать сначала
$('#container_id').css('position', 'relative'); //меняем позиционирование родительского контейнера
$('#container_id').append(mydiv);
$('img').mouseover(function(e){ //Ставите обработчик на наведение на картинку
var imgsrc = $(this).parent().attr('href'); //Берете адрес до большой картинки
$(mydiv).html('<img src='+imgsrc+'/>'); //Помещаете картинку в наш div
var xpos = e.clientX;
var ypos = e.clientY; //Берем координаты курсора
$(mydiv).css({'top':ypos, 'left':xpos, 'display':'block' }); //Устанавливаем положение нашего div'а и отображаем его.
});
Осталось только написать событие mouseout чтобы делать наш div опять скрытым и готово.
Мне кажется я не все случаи учел с координатами, поэтому в качестве контейнера лучше выбрать ссылку
Спасибо, но проблема была несколько в другом, именно в темизации вывода вьюс. С JS проблем нет.
Нужна была верстка строки вида
...<a><img /><img /></a>...
Проблему решил.
Добавил views-view-fields--v-product-block.tpl.php:
<?php<a class="b-prodnew-link" href="<?php print $fields['path']->content; ?>">
<?php print $fields['field_photos_fid']->content; ?>
<?php print $fields['field_hover_photo_fid']->content; ?>
</a>?>
До этого добавлял тоже, забывал про fid и content.