Выбор галереи для сайта

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

Аватар пользователя init0 init0 26 октября 2011 в 18:54

При добавлении новости на сайт есть возможность добавить три картинки к ней, вопрос как оптимально их вывести в самой ноде.

Сайт почти визитка поэтому нужно какую то легковесного галерею в середине ноды, искал по сайту, но те ​​галереи что находил тянут за собой кучу модулей.

Возможно кто подскажет решение или модуль.
Спасибо.

Комментарии

Аватар пользователя init0 init0 27 октября 2011 в 23:04

"VasyOK" wrote:
Просто выстроить их средствами CSS и прикрутить какой нибудь бокс модуль (lighthbox, colorbox)

Спасибо что ответили, я думал что труднее то будет вывести, а получилось все довольно просто.

Опишу вкратце как сделал, может кому и пригодится.

Вот результат:
[img]http://s2.itrash.ru/idb/dd7dcca733d46101a00de3b007c3e222/oVydelenie_001....
такой разброс картинок достигается позиционированием изображений через CSS, то есть каждая картинка имеет свой класс foto1, foto2, foto n, n генерируется в цикле и задается для тега img.

Код использовать в node.tpl.php или для нужного типа node-type, для того чтобы узнать свои переменные используйте print_r($node), если установлен devel то dsm($node), сам код:

<?php
// выполняем код только когда есть картинки      
            
if(isset($node->field_images[0]['filepath'])) {
                
// Делаем $base_url доступним для ноди
                
global $base_url;
                
                
// Подсчитываем количество картинок
                
$size count($node->field_images);
                
                print 
'<div class="gallery">';
                
                
// Переменная для вывода id класса (foto1, foto2 ...)
                
$class_id 1;
                
                
// Выводим картинки в цикле
                
for($i 0$i $size$i++) {            

                    

// $base_url.'/'.$node->field_images[$i]['filepath'] -- абсолютный путь к загруженной картинки
                    // $base_url -- задается в sites/default/settings.php
                    // $i -- номер картинки
                    // field_images -- images название моево поля для загрузки изображения
                    // rel="lightbox[field_images]" - привязка к lightbox
                    
print '<a href="'.$base_url.'/'.$node->field_images[$i]['filepath'].'" rel="lightbox[field_images]" >'.PHP_EOL;
                        
// хук вивода картинки через пресет imagecache, имя моево преcета "small"
                        // theme('imagecache', $preset, $image['filepath'], $alt, $title,  $attributes);
                        
print theme('imagecache''small'$node ->field_images[$i]['filepath'], '''', array('class' => 'foto'.$class_id)).PHP_EOL;
                    print 
'</a>'.PHP_EOL;     
                    
                    
$class_id++;
                }
                
                print 
'</div>';
                print 
'<div class="marg"></div>';
                }
?>

чтобы не дублировало картинок при показе, надо исключить их из вывода:
admin/content/node-type/[YOUR_type]/display
и там поставить галочку - exclude

По теме:
http://www.drupal.ru/node/50203
http://drupal.org/node/826488