Существует на сегодня довольно большое количество модулей для создания галереи на друпал,
в том числе и модули для интеграции сторонних галерей.
Gallerix - это довольно небольшая галерейка для создания фотоальбома, но, пожалуй, это ее единственное преимущество.
С этим модулем обычно возникает много проблем,
к счастью, разработчики собираются коренным образом переписать этот модуль.
Тем не менее, по моему мнению, на сегодня лучший и наиболее гибкий способ создания галереи -
это использование полей CCK и views
filefield + imagefield + imagecache + views + lightbox2 (или thickbox)
Однако, если вы уже пользуетесь этой галереей, я опишу сдесь пару вопросов, которые мне пришлось решать.
Добавление дополнительного пресета для превью
В настройках гелереи (/admin/gallerix/general) есть возможность добавить дополнительные размеры для фото.
Однако само добавление не работает. Чтобы исправить, придется изменить файл из модуля: moules/gallerix/managment.inc
строка 201:
$entry['name'] = array( '#type' => 'textfield', '#size' => 20, '#default_value' => $name, // julia changed //'#disabled' => $name == 'thumbnail' || $name == 'frame', );
Добавление lightbox2
На странице альбома Gallerix показывает небольшие превьюшки и болшую фотографию,
которая обновляется аджаксом, но ее размер также задается в настройках гелереи.
А если фотография имеет еще бОльшее разрешение? И хочется чтобы по клику эта большая фотография открывалась
с помощью например, jQuery плагина типа Lighbox2. В самой gallerix нет такой возможности.
Однако мы может ее приделать.
- Для начала установить модуль - LightBox2.
- Java-script
- В теме
Теперь в теме нужно добавить javascript файл.
В .info файле вашей тимы добавляем строчку
scripts[] = 'js/my.js'
в самой теме создаем каталог js c файлом my.js,
в котором пишем:
$(document).ready(function(){
$('.gallerix-thumbnail-link').click(function(){
href = $(this).find('img').attr('src');
newhref = href.replace(/thumbnail/, 'original');
$('#gallerix-display a').attr({href: newhref});
});
});
В теме, которую вы используете, надо переписать функцию из gallerix,
которая темизирует страницу альбома.
В template.php нужно добавить:
function phptemplate_gallerix_frame($node) {
$output = '';
$output .= '<div id="gallerix-loader">' . "\n" ;
$output .= '<div id="gallerix-display">' . "\n" ;
$output .= '<a href="/'. $picture->original .'" rel="lightbox" title="'. $picture->caption .'">';
$output .= theme('image', $source, '', $picture->caption, array('id' => 'gallerix-frame'));
$output .= '</a>';
$output .= '</div>' . "\n" ;
$output .= '</div>' . "\n" ;
return $output;
}
$picture = gallerix_load_picture($node->gallerix['current']);
$source = $picture->frame;
Вот вобщем то и все, теперь на главной странице альбома,
при клике на большое фото, будет показываться фото еще бОльшего размера
во всю страницу.