WordPress: Добавить ссылку "Сохранить фото" для галереи на NextGen с эффектом Lightbox
NextGen - самая популярная и, пожалуй удобная галерея для WordPress. Но в эффекте Lightbox есть одно неудобство - нет возможности сохранить текущую фотку по нажатию правой кнопкой мыши. Добавляю ссылку на оригинал изображения. 1 вариант: Своя доработка кода.
prettyPhoto - javascript для красивого вывода фотогалереи. Но если, просматривая галерею, мы хотим сохранить какое-то изображение, то по нажатию правой кнопки мыши, в контекстном выпадающем меню мы не увидим строк "сохранить изображение" и "Открыть изображение в новом окне".

Это происходит, потому что на слой картинки наложен ещё слой с двумя элементами-блоками для перехода к следующей и предыдущей картинке. Этот слой с элементами-ссылками занимает всё пространство и не оставляет места для картинки. Поэтому в контекстном меню мы видим только опции "Открыть ссылку..." и похожие. Но сама галерея выглядит красиво, и по-моему, выигрывает у других эффектов (Highslide, Thickbox).

Устраняем этот маленький недостаток. Все изменения коснутся файла jquery.prettyPhoto.js и немного prettyPhoto.css:
- /wp-content/themes/[your_theme]/js/jquery.prettyPhoto.js
- /wp-content/themes/[your_theme]/css/prettyPhoto.css
Мои файлы с внесёнными правками:

Теперь, разбираемся. В jquery.prettyPhoto.js вносим добавления:
строка 64 - добавляю
<div class="ppt1"> </div> \
строка 209 - добавляю $ppt1
// Fade the content in
if($ppt.is(':hidden')) $ppt.css('opacity',0).show();
if($ppt1.is(':hidden')) $ppt1.css('opacity',0).show();
строка 235
// Set the title
(settings.show_title && pp_titles[set_position] != "" && typeof pp_titles[set_position] != "undefined") ? $ppt.html(unescape(pp_titles[set_position])) : $ppt.html(' ');
(settings.show_title && pp_titles[set_position] != "" && typeof pp_titles[set_position] != "undefined") ? $ppt1.html('<a href="'+unescape(pp_images[set_position])+'">Сохранить фото</a>') : $ppt1.html(' ');
строка 471
$('div.pp_pic_holder,div.ppt,div.ppt1,.pp_fade').fadeOut(settings.animation_speed,function(){ $(this).remove(); });
строка 504
$ppt.fadeTo(settings.animation_speed,1); $ppt1.fadeTo(settings.animation_speed,1);
строка 761
$pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $ppt1 = $('.ppt1'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors
И в prettyPhoto.css
...
div.ppt1 {
//display:block;
line-height:22px;
position:absolute;
right:40px;
//text-indent:-10000px;
margin-top:7px;
}
div.ppt1 a{background: url("../img/floppy.png") no-repeat scroll left center transparent;
padding: 3px 0 0 23px;
}
...
2 вариант: Использование плагина Wp Jquery Lightbox.

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Вы можете почитать все статьи от almix'а.
- WordPress: Настройки плагина галереи NextGen Gallery (27.04.2013)
- WordPress: Иконка favicon.ico для области администратора (22.04.2013)
- WordPress. Настройка для локальной работы (27.03.2013)
- Несколько функций в body onload (08.03.2013)
- Как в iframe показывать только определённую область страницы (04.03.2013)
- WordPress: Добавить ссылку "Сохранить фото" для галереи на NextGen с эффектом Lightbox (12.04.2013) ← вы тут
- jQuery Tooltips от Jörn Zaefferer. Всплывающие подсказки с помощью jQuery (08.12.2012)
- Team Sense: Многопользовательский календарь, заменяем радиокнопки на чекбоксы в выборе преподавателей. Массивы в Javascript. (06.12.2012)
- Team Sense: В календарь-расписание уроков добавлено разделение по преподавателям, которым присвоены свои цвета. (04.12.2012)
- CodeIgniter не передаёт $this->uri->segment(3) в функцию контроллера (передача переменной PHP->JavaScript->PHP) (28.11.2012)
- Случаи возникновения ошибки в IE: "Предполагается наличие идентификатора, строки или числа" (Expected identifier, string...) (23.11.2012)
- Воюем с форматом даты в JavaScript. Приведение формата даты в поле input в календаре системы TeamSense к более красивому виду. (18.11.2012)
- Хороший тон: Если у пользователя отключен Javascript в браузере или устаревшая версия браузера (09.08.2012)
- Русификация FullCalendar (13.01.2012)
- Yii: Красивенький и чистенький JavaScript плавно прокручивает страницу до якоря и делает лёгкий откат (22.04.2012)
- Yii: MTreeView extension - расширение для формирования древовидного меню + немножко loco-магии (12.05.2012)
- JQuery FullCalendar. Проблема с датой события, сохраняется на час позже! (13.01.2012)
- Вставка видео на сайт. Вставляем всплывающее окошко с видеоплеером JW Player на сайт (28.11.2011)
- Создание версии для печати страницы сайта (вариант на JavaScript) (23.10.2011)
- Сделать весь блок div ссылкой, строку tr таблицы ссылкой (23.10.2011)
- Плавное вертикальное прокручивание на jQuery к началу страницы (22.10.2011)
- Асинхронная загрузка JavaScript - ускоряем загрузку страниц (17.08.2011)
- Раскрывающееся меню на Jquery, раскрытие-сворачивание блоков с помощью Javascript (01.11.2011)
- Ajax-пагинация в фреймворке CodeIgniter (24.08.2011)
- Делаем всплывающую / свёртывающуюся панель на JavaScript (23.10.2011)
Leave a Comment