just photo

Gallerix: галерея для Drupal

Julia 21/06/2009
та самая галерея Gallerix, которую пришлось настраивать

Существует на сегодня довольно большое количество модулей для создания галереи на друпал,
в том числе и модули для интеграции сторонних галерей.

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 нет такой возможности.
Однако мы может ее приделать.

  1. Для начала установить модуль - LightBox2.
  2. Java-script
  3. Теперь в теме нужно добавить 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});
      });
    });
  4. В теме
  5. В теме, которую вы используете, надо переписать функцию из gallerix,
    которая темизирует страницу альбома.

    В template.php нужно добавить:

    function phptemplate_gallerix_frame($node) {

      $picture = gallerix_load_picture($node->gallerix['current']);
      $source = $picture->frame;

      $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;
     
    }

Вот вобщем то и все, теперь на главной странице альбома,
при клике на большое фото, будет показываться фото еще бОльшего размера
во всю страницу.

тэги:

У меня связка с LightBox2 не заработала. По умолчанию img в диве gallerix-display не обернут ссылкой. И видимо LightBox2 тоже нужно как-то настроить, чтобы он свой класс подставлял в ссылку?

Спасибо, что проверили,
я действительно забыла половину :( -
функция темы в template.php - я дописала это сейчас в пост.

Вроде бы и недавно совсем делала это для заказчика,
а уже успела забыть, надо все писать сразу,
или тренировать память :)

сделал все как у вас написано, но LightBox2 открывает всегда первую картинку, которую загрузили с его помощью.
то есть открыли галлерею, ткнули первый раз по картинке, LightBox2 загрузил большой вариант, все ок. потом закрываем LightBox2, тsrftv вторую картинку, а загружается в LightBox2 опять же самая первая.

и еще может подскажите про gallerix. не отображается описание альбома, то что забивали в Album Description.
и как можно вывести на страницу список всех альбомов без views?

Спасибо за пост!
Вопрос: как обновлять caption при перелистывании картинки ?

Спасибо, очень хороший модуль ничего лишнего!

Здравствуйте! А не подскажите как сделать что-бы в одном альбоме было несколько страниц (например по 40 фото)?

Не представляю как вы хотите, чтобы выглядели в gallarix отдельные страницы альбома,
когда там вы можете загружать сколько угодно фото и они все будут прокручиваться внизу под текущей большой фото.
С помощью views вы можете показывать их и постранично.

то чего не хватало для этого модуля и одна из причин по которой я его не взял. Вторая это отдельный контент, меня это не устраивает сейчас.
Где-то видел способ с помощью которого можно, дивным образом, делать ссылки на галерею. Не просто ссылка на документ, а именно на галерею, вставкой в текст простого снипета. Найду подкину ссылку сюда а там сделаю ссылку сюда, ну уж очень красивое решение.

Здравствуйте! Очень понравилось, но есть две проблемы:
1. Как пришить комментарии к фото?
2. вторая проблема такая же как у Алексея:
сделал все как у вас написано, но LightBox2 открывает всегда первую картинку, которую загрузили с его помощью.
то есть открыли галлерею, ткнули первый раз по картинке, LightBox2 загрузил большой вариант, все ок. потом закрываем LightBox2, тsrftv вторую картинку, а загружается в LightBox2 опять же самая первая

Здравствуйте,
насколько я помню в этом модуле не предусмотрены комментарии к фотографиям,
так как объект фото здесь не является нодой.

Насчет второй проблемы, если можете киньте мне ссылку на проект через форму обратной связи и свои контакты, так как у меня нет сейчас под рукой проекта с этим модулем.

Отправить новый комментарий

Содержимое этого поля хранится скрыто и не будет показываться публично.
  • Адреса страниц и электронной почты автоматически преобразовываются в ссылки.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Автоматический перевод строки.
  • Вы можете публиковать код, размещая его в <code>...</code> (generic) или в <?php ... ?> (раскрашенный PHP).

Дополнительная информация о настройках форматирования