Есть поле field_photos куда загружаются несколько фотографий.
Есть пресет detsad-small в Imagecache, который служит для уменьшения превьюшек.
С превьюшек должны быть ссылки на оригинальные фото.
Скажите, пожалуйста, что неправильного в этом коде, что все превьюшки выводятся одинаковыми? А ссылки уже идут на правильные оригинальные картинки.
Это у меня в Contemplate:
<?php foreach ($node->field_photos as $images) { if ($images['filepath'] != $imagePath) { ?>
<a href="<?=base_path()?><?=$images['filepath']?>" title="<?=$title?>" class="imagefield-fancybox">
<img src="<?=base_path()?>sites/default/files/imagecache/detsad-small/<?=$images['filename']?>" alt="<?=$title?>"></a>
<?php } } ?>
</div>
Комментарии
аццко.
l()
theme('imagecache')
if ($images['filepath'] != $imagePath) это ещё что такое?
Ну вообще я взяла кусок с работаешего решения страницы уберкарта Видать там смысл был, но в моих неумелых ручках потерялся.
Вот полный код:
<?php $imagePath = $node->field_image_cache['0']['filepath']; ?>
<div class="main-product-image">
<a href="<?=base_path()?><?=$imagePath?>" rel="lightshow[prod]" class="imagefield-fancybox">
<img src="<?=base_path()?>sites/default/files/imagecache/product/<?=$imagePath?>" alt="<?=$title?>" title="<?=$title?>">
</a>
</div>
<div class="other_imgs">
<?php foreach ($node->field_image_cache as $images) { if ($images['filepath'] != $imagePath) { ?>
<a href="<?=base_path()?><?=$images['filepath']?>" title="<?=$title?>" class="imagefield-fancybox">
<img src="<?=base_path()?>sites/default/files/imagecache/uc_thumbnail/<?=$images['filename']?>" alt="<?=$title?>"></a>
<?php } } ?>
</div>
</div>
в интернете увидила еще такой кусочек, но у меня такое тоже не проходит, вообще какая-то бурда с путями получается:
foreach((array)$field_photos as $item) {
print '<a href="'.$item['filepath'].'"><img src="/files/imagecache/detsad-small/'.$item['filepath'].'" title="'.$item['title'].'" alt="'.$item['alt'].'"></a>';
}
?>
Если у Вас поле CCK и установлен модуль contemplate, то проблем не должно быть. Зайдите на страницу шаблона этого типа материалов (адрес страницы (admin/content/types/ваш_тип_материала/template) и посмотрите переменные и соберите, что хотите.
Если Вы правильно записали поле field_photos, то путь к картинке должен быть
примерно такой $node->field_photos[0]['view'];
VladoMire, таким способом вставляются картинки, но без пресета Imagecache. То есть оригинального размера. А как мне указать, чтобы использовался пресет?
у меня с пресетом так вставляет. Дело в том, что вы эту переменную должны отрегулировать следующим образом:
идете в раздел отображения полей: путь (admin/content/types/ваш_тип_материала/display):
Там настраиваете отображение и в тизере и в основном материале, как душе угодно выставляя из выпадающего списка хоть с пресетом, хоть без или каким другим образом.
Сделайте, так и все будет хорошо:)))
Сделала
<?php foreach ($node->field_photos as $images) { if ($images['filepath'] != $imagePath) { ?>
<a href="<?=base_path()?><?=$images['filepath']?>" title="<?=$title?>" class="imagefield-fancybox">
<?php
print theme('imagecache', 'detsad-small', $images['filepath'], $alt, $title);
?></a>
<?php } } ?>
</div>
VladoMire, вы абсолютно правы! Опять я самый простой путь не увидела. Спасибо!
Всегда существует несколько способов решения вопроса:))) Бывают нюансы, которые требуют более рациональных решений.
А если их 4 фотографии а мне необходимо отобразить только одну - первую фотографию?