Skip to content
Browse files

Prepare collective.prettyphoto 0.4.2.

  • Loading branch information...
1 parent 7567d40 commit 5ff31fa76f95eb4e3cd85d8c4a9c1b698874d75e @petschki petschki committed Jul 13, 2011
View
5 README.txt
@@ -94,6 +94,11 @@ collective.prettyphoto can be customized via property sheet (go to ZMI, portal_p
* slideshow: false OR interval time in ms (default: False)
+* deeplinking: rewrite the browser location to enable directlinks to overlay images (default: False)
+
+* social_tools: html markup for social links within image overlays (twitter, FB, ...) (default: empty) see http://bit.ly/pDQ19A for detailed information
+
+
Copyright and Credits
=====================
View
69 collective/prettyphoto/browser/javascript/jquery.prettyPhoto.compressed.js
@@ -1,69 +0,0 @@
-/* ------------------------------------------------------------------------
- Class: prettyPhoto
- Use: Lightbox clone for jQuery
- Author: Stephane Caron (http://www.no-margin-for-errors.com)
- Version: 3.0.3
-------------------------------------------------------------------------- */
-
-(function($){$.prettyPhoto={version:'3.0.2'};$.fn.prettyPhoto=function(pp_settings){pp_settings=jQuery.extend({animation_speed:'fast',slideshow:false,autoplay_slideshow:false,opacity:0.80,show_title:true,allow_resize:true,default_width:500,default_height:344,counter_separator_label:'/',theme:'facebook',hideflash:false,wmode:'opaque',autoplay:true,modal:false,overlay_gallery:true,keyboard_shortcuts:true,changepicturecallback:function(){},callback:function(){},markup:'<div class="pp_pic_holder"> \
- <div class="ppt">&nbsp;</div> \
- <div class="pp_top"> \
- <div class="pp_left"></div> \
- <div class="pp_middle"></div> \
- <div class="pp_right"></div> \
- </div> \
- <div class="pp_content_container"> \
- <div class="pp_left"> \
- <div class="pp_right"> \
- <div class="pp_content"> \
- <div class="pp_loaderIcon"></div> \
- <div class="pp_fade"> \
- <a href="#" class="pp_expand" title="Expand the image">Expand</a> \
- <div class="pp_hoverContainer"> \
- <a class="pp_next" href="#">next</a> \
- <a class="pp_previous" href="#">previous</a> \
- </div> \
- <div id="pp_full_res"></div> \
- <div class="pp_details clearfix"> \
- <p class="pp_description"></p> \
- <a class="pp_close" href="#">Close</a> \
- <div class="pp_nav"> \
- <a href="#" class="pp_arrow_previous">Previous</a> \
- <p class="currentTextHolder">0/0</p> \
- <a href="#" class="pp_arrow_next">Next</a> \
- </div> \
- </div> \
- </div> \
- </div> \
- </div> \
- </div> \
- </div> \
- <div class="pp_bottom"> \
- <div class="pp_left"></div> \
- <div class="pp_middle"></div> \
- <div class="pp_right"></div> \
- </div> \
- </div> \
- <div class="pp_overlay"></div>',gallery_markup:'<div class="pp_gallery"> \
- <a href="#" class="pp_arrow_previous">Previous</a> \
- <ul> \
- {gallery} \
- </ul> \
- <a href="#" class="pp_arrow_next">Next</a> \
- </div>',image_markup:'<img id="fullResImage" src="{path}" />',flash_markup:'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',quicktime_markup:'<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>',iframe_markup:'<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',inline_markup:'<div class="pp_inline clearfix">{content}</div>',custom_markup:''},pp_settings);var matchedObjects=this,percentBased=false,pp_dimensions,pp_open,pp_contentHeight,pp_contentWidth,pp_containerHeight,pp_containerWidth,windowHeight=$(window).height(),windowWidth=$(window).width(),pp_slideshow;doresize=true,scroll_pos=_get_scroll();$(window).unbind('resize.prettyphoto').bind('resize.prettyphoto',function(){_center_overlay();_resize_overlay();});if(pp_settings.keyboard_shortcuts){$(document).unbind('keydown.prettyphoto').bind('keydown.prettyphoto',function(e){if(typeof $pp_pic_holder!='undefined'){if($pp_pic_holder.is(':visible')){switch(e.keyCode){case 37:$.prettyPhoto.changePage('previous');e.preventDefault();break;case 39:$.prettyPhoto.changePage('next');e.preventDefault();break;case 27:if(!settings.modal)
-$.prettyPhoto.close();e.preventDefault();break;};};};});}
-$.prettyPhoto.initialize=function(){settings=pp_settings;if($.browser.msie&&parseInt($.browser.version)==6)settings.theme="light_square";theRel=$(this).attr('rel');galleryRegExp=/\[(?:.*)\]/;isSet=(galleryRegExp.exec(theRel))?true:false;pp_images=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr('rel').indexOf(theRel)!=-1)return $(n).attr('href');}):$.makeArray($(this).attr('href'));pp_titles=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr('rel').indexOf(theRel)!=-1)return($(n).find('img').attr('alt'))?$(n).find('img').attr('alt'):"";}):$.makeArray($(this).find('img').attr('alt'));pp_descriptions=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr('rel').indexOf(theRel)!=-1)return($(n).attr('title'))?$(n).attr('title'):"";}):$.makeArray($(this).attr('title'));_buildOverlay(this);if(settings.allow_resize)
-$(window).bind('scroll.prettyphoto',function(){_center_overlay();});set_position=jQuery.inArray($(this).attr('href'),pp_images);$.prettyPhoto.open();return false;}
-$.prettyPhoto.open=function(event){if(typeof settings=="undefined"){settings=pp_settings;if($.browser.msie&&$.browser.version==6)settings.theme="light_square";pp_images=$.makeArray(arguments[0]);pp_titles=(arguments[1])?$.makeArray(arguments[1]):$.makeArray("");pp_descriptions=(arguments[2])?$.makeArray(arguments[2]):$.makeArray("");isSet=(pp_images.length>1)?true:false;set_position=0;_buildOverlay(event.target);}
-if($.browser.msie&&$.browser.version==6)$('select').css('visibility','hidden');if(settings.hideflash)$('object,embed').css('visibility','hidden');_checkPosition($(pp_images).size());$('.pp_loaderIcon').show();if($ppt.is(':hidden'))$ppt.css('opacity',0).show();$pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity);$pp_pic_holder.find('.currentTextHolder').text((set_position+1)+settings.counter_separator_label+$(pp_images).size());$pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position]));(settings.show_title&&pp_titles[set_position]!=""&&typeof pp_titles[set_position]!="undefined")?$ppt.html(unescape(pp_titles[set_position])):$ppt.html('&nbsp;');movie_width=(parseFloat(grab_param('width',pp_images[set_position])))?grab_param('width',pp_images[set_position]):settings.default_width.toString();movie_height=(parseFloat(grab_param('height',pp_images[set_position])))?grab_param('height',pp_images[set_position]):settings.default_height.toString();if(movie_height.indexOf('%')!=-1){movie_height=parseFloat(($(window).height()*parseFloat(movie_height)/100)-150);percentBased=true;}
-if(movie_width.indexOf('%')!=-1){movie_width=parseFloat(($(window).width()*parseFloat(movie_width)/100)-150);percentBased=true;}
-$pp_pic_holder.fadeIn(function(){imgPreloader="";switch(_getFileType(pp_images[set_position])){case'image':imgPreloader=new Image();nextImage=new Image();if(isSet&&set_position<$(pp_images).size()-1)nextImage.src=pp_images[set_position+1];prevImage=new Image();if(isSet&&pp_images[set_position-1])prevImage.src=pp_images[set_position-1];$pp_pic_holder.find('#pp_full_res')[0].innerHTML=settings.image_markup.replace(/{path}/g,pp_images[set_position]);imgPreloader.onload=function(){pp_dimensions=_fitToViewport(imgPreloader.width,imgPreloader.height);_showContent();};imgPreloader.onerror=function(){alert('Image cannot be loaded. Make sure the path is correct and image exist.');$.prettyPhoto.close();};imgPreloader.src=pp_images[set_position];break;case'youtube':pp_dimensions=_fitToViewport(movie_width,movie_height);movie='http://www.youtube.com/v/'+grab_param('v',pp_images[set_position]);if(settings.autoplay)movie+="&autoplay=1";toInject=settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);break;case'vimeo':pp_dimensions=_fitToViewport(movie_width,movie_height);movie_id=pp_images[set_position];var regExp=/http:\/\/(www\.)?vimeo.com\/(\d+)/;var match=movie_id.match(regExp);movie='http://player.vimeo.com/video/'+match[2]+'?title=0&amp;byline=0&amp;portrait=0';if(settings.autoplay)movie+="&autoplay=1;";vimeo_width=pp_dimensions['width']+'/embed/?moog_width='+pp_dimensions['width'];toInject=settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie);break;case'quicktime':pp_dimensions=_fitToViewport(movie_width,movie_height);pp_dimensions['height']+=15;pp_dimensions['contentHeight']+=15;pp_dimensions['containerHeight']+=15;toInject=settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);break;case'flash':pp_dimensions=_fitToViewport(movie_width,movie_height);flash_vars=pp_images[set_position];flash_vars=flash_vars.substring(pp_images[set_position].indexOf('flashvars')+10,pp_images[set_position].length);filename=pp_images[set_position];filename=filename.substring(0,filename.indexOf('?'));toInject=settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars);break;case'iframe':pp_dimensions=_fitToViewport(movie_width,movie_height);frame_url=pp_images[set_position];frame_url=frame_url.substr(0,frame_url.indexOf('iframe')-1);toInject=settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url);break;case'custom':pp_dimensions=_fitToViewport(movie_width,movie_height);toInject=settings.custom_markup;break;case'inline':myClone=$(pp_images[set_position]).clone().css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline clearfix"></div></div>').appendTo($('body')).show();doresize=false;pp_dimensions=_fitToViewport($(myClone).width(),$(myClone).height());doresize=true;$(myClone).remove();toInject=settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html());break;};if(!imgPreloader){$pp_pic_holder.find('#pp_full_res')[0].innerHTML=toInject;_showContent();};});return false;};$.prettyPhoto.changePage=function(direction){currentGalleryPage=0;if(direction=='previous'){set_position--;if(set_position<0){set_position=0;return;};}else if(direction=='next'){set_position++;if(set_position>$(pp_images).size()-1){set_position=0;}}else{set_position=direction;};if(!doresize)doresize=true;$('.pp_contract').removeClass('pp_contract').addClass('pp_expand');_hideContent(function(){$.prettyPhoto.open();});};$.prettyPhoto.changeGalleryPage=function(direction){if(direction=='next'){currentGalleryPage++;if(currentGalleryPage>totalPage){currentGalleryPage=0;};}else if(direction=='previous'){currentGalleryPage--;if(currentGalleryPage<0){currentGalleryPage=totalPage;};}else{currentGalleryPage=direction;};itemsToSlide=(currentGalleryPage==totalPage)?pp_images.length-((totalPage)*itemsPerPage):itemsPerPage;$pp_pic_holder.find('.pp_gallery li').each(function(i){$(this).animate({'left':(i*itemWidth)-((itemsToSlide*itemWidth)*currentGalleryPage)});});};$.prettyPhoto.startSlideshow=function(){if(typeof pp_slideshow=='undefined'){$pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){$.prettyPhoto.stopSlideshow();return false;});pp_slideshow=setInterval($.prettyPhoto.startSlideshow,settings.slideshow);}else{$.prettyPhoto.changePage('next');};}
-$.prettyPhoto.stopSlideshow=function(){$pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){$.prettyPhoto.startSlideshow();return false;});clearInterval(pp_slideshow);pp_slideshow=undefined;}
-$.prettyPhoto.close=function(){if($pp_overlay.is(":animated"))return;$.prettyPhoto.stopSlideshow();$pp_pic_holder.stop().find('object,embed').css('visibility','hidden');$('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){$(this).remove();});$pp_overlay.fadeOut(settings.animation_speed,function(){if($.browser.msie&&$.browser.version==6)$('select').css('visibility','visible');if(settings.hideflash)$('object,embed').css('visibility','visible');$(this).remove();$(window).unbind('scroll');settings.callback();doresize=true;pp_open=false;delete settings;});};function _showContent(){$('.pp_loaderIcon').hide();$ppt.fadeTo(settings.animation_speed,1);projectedTop=scroll_pos['scrollTop']+((windowHeight/2)-(pp_dimensions['containerHeight']/2));if(projectedTop<0)projectedTop=0;$pp_pic_holder.find('.pp_content').animate({height:pp_dimensions['contentHeight'],width:pp_dimensions['contentWidth']},settings.animation_speed);$pp_pic_holder.animate({'top':projectedTop,'left':(windowWidth/2)-(pp_dimensions['containerWidth']/2),width:pp_dimensions['containerWidth']},settings.animation_speed,function(){$pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']);$pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed);if(isSet&&_getFileType(pp_images[set_position])=="image"){$pp_pic_holder.find('.pp_hoverContainer').show();}else{$pp_pic_holder.find('.pp_hoverContainer').hide();}
-if(pp_dimensions['resized']){$('a.pp_expand,a.pp_contract').show();}else{$('a.pp_expand,a.pp_contract').hide();}
-if(settings.autoplay_slideshow&&!pp_slideshow&&!pp_open)$.prettyPhoto.startSlideshow();settings.changepicturecallback();pp_open=true;});_insert_gallery();};function _hideContent(callback){$pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden');$pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){$('.pp_loaderIcon').show();callback();});};function _checkPosition(setCount){(setCount>1)?$('.pp_nav').show():$('.pp_nav').hide();};function _fitToViewport(width,height){resized=false;_getDimensions(width,height);imageWidth=width,imageHeight=height;if(((pp_containerWidth>windowWidth)||(pp_containerHeight>windowHeight))&&doresize&&settings.allow_resize&&!percentBased){resized=true,fitting=false;while(!fitting){if((pp_containerWidth>windowWidth)){imageWidth=(windowWidth-200);imageHeight=(height/width)*imageWidth;}else if((pp_containerHeight>windowHeight)){imageHeight=(windowHeight-200);imageWidth=(width/height)*imageHeight;}else{fitting=true;};pp_containerHeight=imageHeight,pp_containerWidth=imageWidth;};_getDimensions(imageWidth,imageHeight);};return{width:Math.floor(imageWidth),height:Math.floor(imageHeight),containerHeight:Math.floor(pp_containerHeight),containerWidth:Math.floor(pp_containerWidth)+40,contentHeight:Math.floor(pp_contentHeight),contentWidth:Math.floor(pp_contentWidth),resized:resized};};function _getDimensions(width,height){width=parseFloat(width);height=parseFloat(height);$pp_details=$pp_pic_holder.find('.pp_details');$pp_details.width(width);detailsHeight=parseFloat($pp_details.css('marginTop'))+parseFloat($pp_details.css('marginBottom'));$pp_details=$pp_details.clone().appendTo($('body')).css({'position':'absolute','top':-10000});detailsHeight+=$pp_details.height();detailsHeight=(detailsHeight<=34)?36:detailsHeight;if($.browser.msie&&$.browser.version==7)detailsHeight+=8;$pp_details.remove();$pp_title=$pp_pic_holder.find('.ppt');$pp_title.width(width);titleHeight=parseFloat($pp_title.css('marginTop'))+parseFloat($pp_title.css('marginBottom'));$pp_title=$pp_title.clone().appendTo($('body')).css({'position':'absolute','top':-10000});titleHeight+=$pp_title.height();$pp_title.remove();pp_contentHeight=height+detailsHeight;pp_contentWidth=width;pp_containerHeight=pp_contentHeight+titleHeight+$pp_pic_holder.find('.pp_top').height()+$pp_pic_holder.find('.pp_bottom').height();pp_containerWidth=width;}
-function _getFileType(itemSrc){if(itemSrc.match(/youtube\.com\/watch/i)){return'youtube';}else if(itemSrc.match(/vimeo\.com/i)){return'vimeo';}else if(itemSrc.match(/\b.mov\b/i)){return'quicktime';}else if(itemSrc.match(/\b.swf\b/i)){return'flash';}else if(itemSrc.match(/\biframe=true\b/i)){return'iframe';}else if(itemSrc.match(/\bcustom=true\b/i)){return'custom';}else if(itemSrc.substr(0,1)=='#'){return'inline';}else{return'image';};};function _center_overlay(){if(doresize&&typeof $pp_pic_holder!='undefined'){scroll_pos=_get_scroll();contentHeight=$pp_pic_holder.height(),contentwidth=$pp_pic_holder.width();projectedTop=(windowHeight/2)+scroll_pos['scrollTop']-(contentHeight/2);if(projectedTop<0)projectedTop=0;$pp_pic_holder.css({'top':projectedTop,'left':(windowWidth/2)+scroll_pos['scrollLeft']-(contentwidth/2)});};};function _get_scroll(){if(self.pageYOffset){return{scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset};}else if(document.documentElement&&document.documentElement.scrollTop){return{scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft};}else if(document.body){return{scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft};};};function _resize_overlay(){windowHeight=$(window).height(),windowWidth=$(window).width();if(typeof $pp_overlay!="undefined")$pp_overlay.height($(document).height()).width(windowWidth);};function _insert_gallery(){if(isSet&&settings.overlay_gallery&&_getFileType(pp_images[set_position])=="image"){itemWidth=52+5;navWidth=(settings.theme=="facebook")?58:38;itemsPerPage=Math.floor((pp_dimensions['containerWidth']-100-navWidth)/itemWidth);itemsPerPage=(itemsPerPage<pp_images.length)?itemsPerPage:pp_images.length;totalPage=Math.ceil(pp_images.length/itemsPerPage)-1;if(totalPage==0){navWidth=0;$pp_pic_holder.find('.pp_gallery .pp_arrow_next,.pp_gallery .pp_arrow_previous').hide();}else{$pp_pic_holder.find('.pp_gallery .pp_arrow_next,.pp_gallery .pp_arrow_previous').show();};galleryWidth=itemsPerPage*itemWidth+navWidth;$pp_pic_holder.find('.pp_gallery').width(galleryWidth).css('margin-left',-(galleryWidth/2));$pp_pic_holder.find('.pp_gallery ul').width(itemsPerPage*itemWidth).find('li.selected').removeClass('selected');goToPage=(Math.ceil((set_position+1)/itemsPerPage)<totalPage)?Math.ceil((set_position+1)/itemsPerPage):totalPage;$.prettyPhoto.changeGalleryPage(goToPage);$pp_pic_holder.find('.pp_gallery ul li:eq('+set_position+')').addClass('selected');}else{$pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave');$pp_pic_holder.find('.pp_gallery').hide();}}
-function _buildOverlay(caller){$('body').append(settings.markup);$pp_pic_holder=$('.pp_pic_holder'),$ppt=$('.ppt'),$pp_overlay=$('div.pp_overlay');if(isSet&&settings.overlay_gallery){currentGalleryPage=0;toInject="";for(var i=0;i<pp_images.length;i++){if(!pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)){classname='default';}else{classname='';}
-toInject+="<li class='"+classname+"'><a href='#'><img src='"+pp_images[i]+"' width='50' alt='' /></a></li>";};toInject=settings.gallery_markup.replace(/{gallery}/g,toInject);$pp_pic_holder.find('#pp_full_res').after(toInject);$pp_pic_holder.find('.pp_gallery .pp_arrow_next').click(function(){$.prettyPhoto.changeGalleryPage('next');$.prettyPhoto.stopSlideshow();return false;});$pp_pic_holder.find('.pp_gallery .pp_arrow_previous').click(function(){$.prettyPhoto.changeGalleryPage('previous');$.prettyPhoto.stopSlideshow();return false;});$pp_pic_holder.find('.pp_content').hover(function(){$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn();},function(){$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut();});itemWidth=52+5;$pp_pic_holder.find('.pp_gallery ul li').each(function(i){$(this).css({'position':'absolute','left':i*itemWidth});$(this).find('a').unbind('click').click(function(){$.prettyPhoto.changePage(i);$.prettyPhoto.stopSlideshow();return false;});});};if(settings.slideshow){$pp_pic_holder.find('.pp_nav').prepend('<a href="#" class="pp_play">Play</a>')
-$pp_pic_holder.find('.pp_nav .pp_play').click(function(){$.prettyPhoto.startSlideshow();return false;});}
-$pp_pic_holder.attr('class','pp_pic_holder '+settings.theme);$pp_overlay.css({'opacity':0,'height':$(document).height(),'width':$(window).width()}).bind('click',function(){if(!settings.modal)$.prettyPhoto.close();});$('a.pp_close').bind('click',function(){$.prettyPhoto.close();return false;});$('a.pp_expand').bind('click',function(e){if($(this).hasClass('pp_expand')){$(this).removeClass('pp_expand').addClass('pp_contract');doresize=false;}else{$(this).removeClass('pp_contract').addClass('pp_expand');doresize=true;};_hideContent(function(){$.prettyPhoto.open();});return false;});$pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){$.prettyPhoto.changePage('previous');$.prettyPhoto.stopSlideshow();return false;});$pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){$.prettyPhoto.changePage('next');$.prettyPhoto.stopSlideshow();return false;});_center_overlay();};return this.unbind('click.prettyphoto').bind('click.prettyphoto',$.prettyPhoto.initialize);};function grab_param(name,url){name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(url);return(results==null)?"":results[1];}})(jQuery);
View
249 collective/prettyphoto/browser/javascript/jquery.prettyPhoto.js
@@ -2,32 +2,34 @@
Class: prettyPhoto
Use: Lightbox clone for jQuery
Author: Stephane Caron (http://www.no-margin-for-errors.com)
- Version: 3.0.3
+ Version: 3.1.2
------------------------------------------------------------------------- */
-
(function($) {
- $.prettyPhoto = {version: '3.0.2'};
+ $.prettyPhoto = {version: '3.1.2'};
$.fn.prettyPhoto = function(pp_settings) {
pp_settings = jQuery.extend({
animation_speed: 'fast', /* fast/slow/normal */
- slideshow: false, /* false OR interval time in ms */
+ slideshow: 5000, /* false OR interval time in ms */
autoplay_slideshow: false, /* true/false */
opacity: 0.80, /* Value between 0 and 1 */
show_title: true, /* true/false */
allow_resize: true, /* Resize the photos bigger than viewport. true/false */
default_width: 500,
default_height: 344,
counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
- theme: 'facebook', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
+ theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
+ horizontal_padding: 20, /* The padding on each side of the picture */
hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
wmode: 'opaque', /* Set the flash wmode attribute */
autoplay: true, /* Automatically start videos: True/False */
modal: false, /* If set to true, only the close button will close the window */
+ deeplinking: true, /* Allow prettyPhoto to update the url to enable deeplinking. */
overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */
keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */
changepicturecallback: function(){}, /* Called everytime an item is shown/changed */
callback: function(){}, /* Called when prettyPhoto is closed */
+ ie6_fallback: true,
markup: '<div class="pp_pic_holder"> \
<div class="ppt">&nbsp;</div> \
<div class="pp_top"> \
@@ -47,14 +49,15 @@
<a class="pp_previous" href="#">previous</a> \
</div> \
<div id="pp_full_res"></div> \
- <div class="pp_details clearfix"> \
- <p class="pp_description"></p> \
- <a class="pp_close" href="#">Close</a> \
+ <div class="pp_details"> \
<div class="pp_nav"> \
<a href="#" class="pp_arrow_previous">Previous</a> \
<p class="currentTextHolder">0/0</p> \
<a href="#" class="pp_arrow_next">Next</a> \
</div> \
+ <p class="pp_description"></p> \
+ {pp_social} \
+ <a class="pp_close" href="#">Close</a> \
</div> \
</div> \
</div> \
@@ -70,17 +73,20 @@
<div class="pp_overlay"></div>',
gallery_markup: '<div class="pp_gallery"> \
<a href="#" class="pp_arrow_previous">Previous</a> \
- <ul> \
- {gallery} \
- </ul> \
+ <div> \
+ <ul> \
+ {gallery} \
+ </ul> \
+ </div> \
<a href="#" class="pp_arrow_next">Next</a> \
</div>',
image_markup: '<img id="fullResImage" src="{path}" />',
flash_markup: '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',
quicktime_markup: '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>',
iframe_markup: '<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',
- inline_markup: '<div class="pp_inline clearfix">{content}</div>',
- custom_markup: ''
+ inline_markup: '<div class="pp_inline">{content}</div>',
+ custom_markup: '',
+ social_tools: '<div class="pp_social"><div class="twitter"><a href="http://twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="facebook"><iframe src="http://www.facebook.com/plugins/like.php?locale=en_US&href='+location.href+'&amp;layout=button_count&amp;show_faces=true&amp;width=500&amp;action=like&amp;font&amp;colorscheme=light&amp;height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:23px;" allowTransparency="true"></iframe></div></div>' /* html or false to disable */
}, pp_settings);
// Global variables accessible only by prettyPhoto
@@ -123,16 +129,17 @@
};
};
});
- }
-
+ };
/**
* Initialize prettyPhoto.
*/
$.prettyPhoto.initialize = function() {
+
settings = pp_settings;
- if($.browser.msie && parseInt($.browser.version) == 6) settings.theme = "light_square"; // Fallback to a supported theme for IE6
+ if(settings.theme == 'pp_default') settings.horizontal_padding = 16;
+ if(settings.ie6_fallback && $.browser.msie && parseInt($.browser.version) == 6) settings.theme = "light_square"; // Fallback to a supported theme for IE6
// Find out if the picture is part of a set
theRel = $(this).attr('rel');
@@ -144,12 +151,14 @@
pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr('rel').indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(this).find('img').attr('alt'));
pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr('rel').indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(this).attr('title'));
- _buildOverlay(this); // Build the overlay {this} being the caller
+ set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned
+ rel_index = (isSet) ? set_position : $("a[rel^='"+theRel+"']").index($(this));
+
+ _build_overlay(this); // Build the overlay {this} being the caller
if(settings.allow_resize)
$(window).bind('scroll.prettyphoto',function(){ _center_overlay(); });
- set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned
$.prettyPhoto.open();
@@ -172,12 +181,12 @@
pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray("");
isSet = (pp_images.length > 1) ? true : false;
set_position = 0;
- _buildOverlay(event.target); // Build the overlay {this} being the caller
+ _build_overlay(event.target); // Build the overlay {this} being the caller
}
if($.browser.msie && $.browser.version == 6) $('select').css('visibility','hidden'); // To fix the bug with IE select boxes
- if(settings.hideflash) $('object,embed').css('visibility','hidden'); // Hide the flash
+ if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden'); // Hide the flash
_checkPosition($(pp_images).size()); // Hide the next/previous links if on first or last images.
@@ -191,22 +200,28 @@
$pp_pic_holder.find('.currentTextHolder').text((set_position+1) + settings.counter_separator_label + $(pp_images).size());
// Set the description
- $pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position]));
-
- // 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('&nbsp;');
+ if(pp_descriptions[set_position] != ""){
+ $pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position]));
+ }else{
+ $pp_pic_holder.find('.pp_description').hide();
+ }
// Get the dimensions
- movie_width = ( parseFloat(grab_param('width',pp_images[set_position])) ) ? grab_param('width',pp_images[set_position]) : settings.default_width.toString();
- movie_height = ( parseFloat(grab_param('height',pp_images[set_position])) ) ? grab_param('height',pp_images[set_position]) : settings.default_height.toString();
+ movie_width = ( parseFloat(getParam('width',pp_images[set_position])) ) ? getParam('width',pp_images[set_position]) : settings.default_width.toString();
+ movie_height = ( parseFloat(getParam('height',pp_images[set_position])) ) ? getParam('height',pp_images[set_position]) : settings.default_height.toString();
// If the size is % based, calculate according to window dimensions
+ percentBased=false;
if(movie_height.indexOf('%') != -1) { movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 150); percentBased = true; }
if(movie_width.indexOf('%') != -1) { movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 150); percentBased = true; }
// Fade the holder
$pp_pic_holder.fadeIn(function(){
+ // 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('&nbsp;');
+
imgPreloader = "";
+ skipInjection = false;
// Inject the proper content
switch(_getFileType(pp_images[set_position])){
@@ -239,10 +254,12 @@
case 'youtube':
pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
- movie = 'http://www.youtube.com/v/'+grab_param('v',pp_images[set_position]);
+ movie = 'http://www.youtube.com/embed/'+getParam('v',pp_images[set_position]);
+ (getParam('rel',pp_images[set_position])) ? movie+="?rel="+getParam('rel',pp_images[set_position]) : movie+="?rel=1";
+
if(settings.autoplay) movie += "&autoplay=1";
- toInject = settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);
+ toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);
break;
case 'vimeo':
@@ -284,10 +301,24 @@
frame_url = pp_images[set_position];
frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1);
-
+
toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url);
break;
+ case 'ajax':
+ doresize = false; // Make sure the dimensions are not resized.
+ pp_dimensions = _fitToViewport(movie_width,movie_height);
+ doresize = true; // Reset the dimensions
+
+ skipInjection = true;
+ $.get(pp_images[set_position],function(responseHTML){
+ toInject = settings.inline_markup.replace(/{content}/g,responseHTML);
+ $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject;
+ _showContent();
+ });
+
+ break;
+
case 'custom':
pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
@@ -296,7 +327,7 @@
case 'inline':
// to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete
- myClone = $(pp_images[set_position]).clone().css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline clearfix"></div></div>').appendTo($('body')).show();
+ myClone = $(pp_images[set_position]).clone().append('<br clear="all" />').css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline"></div></div>').appendTo($('body')).show();
doresize = false; // Make sure the dimensions are not resized.
pp_dimensions = _fitToViewport($(myClone).width(),$(myClone).height());
doresize = true; // Reset the dimensions
@@ -305,7 +336,7 @@
break;
};
- if(!imgPreloader){
+ if(!imgPreloader && !skipInjection){
$pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject;
// Show content
@@ -326,18 +357,15 @@
if(direction == 'previous') {
set_position--;
- if (set_position < 0){
- set_position = 0;
- return;
- };
+ if (set_position < 0) set_position = $(pp_images).size()-1;
}else if(direction == 'next'){
set_position++;
- if(set_position > $(pp_images).size()-1) {
- set_position = 0;
- }
+ if(set_position > $(pp_images).size()-1) set_position = 0;
}else{
set_position=direction;
};
+
+ rel_index = set_position;
if(!doresize) doresize = true; // Allow the resizing of the images
$('.pp_contract').removeClass('pp_contract').addClass('pp_expand');
@@ -354,27 +382,20 @@
if(direction=='next'){
currentGalleryPage ++;
- if(currentGalleryPage > totalPage){
- currentGalleryPage = 0;
- };
+ if(currentGalleryPage > totalPage) currentGalleryPage = 0;
}else if(direction=='previous'){
currentGalleryPage --;
- if(currentGalleryPage < 0){
- currentGalleryPage = totalPage;
- };
+ if(currentGalleryPage < 0) currentGalleryPage = totalPage;
}else{
currentGalleryPage = direction;
};
+
+ slide_speed = (direction == 'next' || direction == 'previous') ? settings.animation_speed : 0;
- // Slide the pages, if we're on the last page, find out how many items we need to slide. To make sure we don't have an empty space.
- itemsToSlide = (currentGalleryPage == totalPage) ? pp_images.length - ((totalPage) * itemsPerPage) : itemsPerPage;
+ slide_to = currentGalleryPage * (itemsPerPage * itemWidth);
- $pp_pic_holder.find('.pp_gallery li').each(function(i){
- $(this).animate({
- 'left': (i * itemWidth) - ((itemsToSlide * itemWidth) * currentGalleryPage)
- });
- });
+ $pp_gallery.find('ul').animate({left:-slide_to},slide_speed);
};
@@ -422,11 +443,11 @@
$pp_overlay.fadeOut(settings.animation_speed, function(){
if($.browser.msie && $.browser.version == 6) $('select').css('visibility','visible'); // To fix the bug with IE select boxes
- if(settings.hideflash) $('object,embed').css('visibility','visible'); // Show the flash
+ if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible'); // Show the flash
$(this).remove(); // No more need for the prettyPhoto markup
- $(window).unbind('scroll');
+ $(window).unbind('scroll.prettyphoto');
settings.callback();
@@ -443,13 +464,13 @@
*/
function _showContent(){
$('.pp_loaderIcon').hide();
-
- $ppt.fadeTo(settings.animation_speed,1);
// Calculate the opened top position of the pic holder
projectedTop = scroll_pos['scrollTop'] + ((windowHeight/2) - (pp_dimensions['containerHeight']/2));
if(projectedTop < 0) projectedTop = 0;
+ $ppt.fadeTo(settings.animation_speed,1);
+
// Resize the content holder
$pp_pic_holder.find('.pp_content')
.animate({
@@ -473,11 +494,14 @@
if(pp_dimensions['resized']){ // Fade the resizing link if the image is resized
$('a.pp_expand,a.pp_contract').show();
}else{
- $('a.pp_expand,a.pp_contract').hide();
+ $('a.pp_expand').hide();
}
if(settings.autoplay_slideshow && !pp_slideshow && !pp_open) $.prettyPhoto.startSlideshow();
+ if(settings.deeplinking)
+ setHashtag();
+
settings.changepicturecallback(); // Callback!
pp_open = true;
@@ -539,13 +563,17 @@
};
_getDimensions(imageWidth,imageHeight);
+
+ if((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)){
+ _fitToViewport(pp_containerWidth,pp_containerHeight)
+ };
};
-
+
return {
width:Math.floor(imageWidth),
height:Math.floor(imageHeight),
containerHeight:Math.floor(pp_containerHeight),
- containerWidth:Math.floor(pp_containerWidth) + 40, // 40 behind the side padding
+ containerWidth:Math.floor(pp_containerWidth) + (settings.horizontal_padding * 2),
contentHeight:Math.floor(pp_contentHeight),
contentWidth:Math.floor(pp_contentWidth),
resized:resized
@@ -565,7 +593,8 @@
$pp_details = $pp_pic_holder.find('.pp_details');
$pp_details.width(width);
detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom'));
- $pp_details = $pp_details.clone().appendTo($('body')).css({
+
+ $pp_details = $pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({
'position':'absolute',
'top':-10000
});
@@ -603,6 +632,8 @@
return 'flash';
}else if(itemSrc.match(/\biframe=true\b/i)){
return 'iframe';
+ }else if(itemSrc.match(/\bajax=true\b/i)){
+ return 'ajax';
}else if(itemSrc.match(/\bcustom=true\b/i)){
return 'custom';
}else if(itemSrc.substr(0,1) == '#'){
@@ -619,6 +650,9 @@
projectedTop = (windowHeight/2) + scroll_pos['scrollTop'] - (contentHeight/2);
if(projectedTop < 0) projectedTop = 0;
+
+ if(contentHeight > windowHeight)
+ return;
$pp_pic_holder.css({
'top': projectedTop,
@@ -644,9 +678,9 @@
};
function _insert_gallery(){
- if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image") {
+ if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image" && (settings.ie6_fallback && !($.browser.msie && parseInt($.browser.version) == 6))) {
itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
- navWidth = (settings.theme == "facebook") ? 58 : 38; // Define the arrow width depending on the theme
+ navWidth = (settings.theme == "facebook" || settings.theme == "pp_default") ? 50 : 30; // Define the arrow width depending on the theme
itemsPerPage = Math.floor((pp_dimensions['containerWidth'] - 100 - navWidth) / itemWidth);
itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length;
@@ -655,38 +689,35 @@
// Hide the nav in the case there's no need for links
if(totalPage == 0){
navWidth = 0; // No nav means no width!
- $pp_pic_holder.find('.pp_gallery .pp_arrow_next,.pp_gallery .pp_arrow_previous').hide();
+ $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').hide();
}else{
- $pp_pic_holder.find('.pp_gallery .pp_arrow_next,.pp_gallery .pp_arrow_previous').show();
+ $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').show();
};
- galleryWidth = itemsPerPage * itemWidth + navWidth;
+ galleryWidth = itemsPerPage * itemWidth;
+ fullGalleryWidth = pp_images.length * itemWidth;
// Set the proper width to the gallery items
- $pp_pic_holder.find('.pp_gallery')
- .width(galleryWidth)
- .css('margin-left',-(galleryWidth/2));
-
- $pp_pic_holder
- .find('.pp_gallery ul')
- .width(itemsPerPage * itemWidth)
- .find('li.selected')
- .removeClass('selected');
+ $pp_gallery
+ .css('margin-left',-((galleryWidth/2) + (navWidth/2)))
+ .find('div:first').width(galleryWidth+5)
+ .find('ul').width(fullGalleryWidth)
+ .find('li.selected').removeClass('selected');
- goToPage = (Math.ceil((set_position+1)/itemsPerPage) < totalPage) ? Math.ceil((set_position+1)/itemsPerPage) : totalPage;
+ goToPage = (Math.floor(set_position/itemsPerPage) < totalPage) ? Math.floor(set_position/itemsPerPage) : totalPage;
$.prettyPhoto.changeGalleryPage(goToPage);
- $pp_pic_holder
- .find('.pp_gallery ul li:eq('+set_position+')')
- .addClass('selected');
+ $pp_gallery_li.filter(':eq('+set_position+')').addClass('selected');
}else{
$pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave');
- $pp_pic_holder.find('.pp_gallery').hide();
+ // $pp_gallery.hide();
}
}
- function _buildOverlay(caller){
+ function _build_overlay(caller){
+
+ settings.markup=settings.markup.replace('{pp_social}',(settings.social_tools)?settings.social_tools:'');
$('body').append(settings.markup); // Inject the markup
@@ -699,23 +730,27 @@
for (var i=0; i < pp_images.length; i++) {
if(!pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)){
classname = 'default';
+ img_src = '';
}else{
classname = '';
+ img_src = pp_images[i];
}
- toInject += "<li class='"+classname+"'><a href='#'><img src='" + pp_images[i] + "' width='50' alt='' /></a></li>";
+ toInject += "<li class='"+classname+"'><a href='#'><img src='" + img_src + "' width='50' alt='' /></a></li>";
};
toInject = settings.gallery_markup.replace(/{gallery}/g,toInject);
$pp_pic_holder.find('#pp_full_res').after(toInject);
- $pp_pic_holder.find('.pp_gallery .pp_arrow_next').click(function(){
+ $pp_gallery = $('.pp_pic_holder .pp_gallery'), $pp_gallery_li = $pp_gallery.find('li'); // Set the gallery selectors
+
+ $pp_gallery.find('.pp_arrow_next').click(function(){
$.prettyPhoto.changeGalleryPage('next');
$.prettyPhoto.stopSlideshow();
return false;
});
- $pp_pic_holder.find('.pp_gallery .pp_arrow_previous').click(function(){
+ $pp_gallery.find('.pp_arrow_previous').click(function(){
$.prettyPhoto.changeGalleryPage('previous');
$.prettyPhoto.stopSlideshow();
return false;
@@ -730,17 +765,14 @@
});
itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
- $pp_pic_holder.find('.pp_gallery ul li').each(function(i){
- $(this).css({
- 'position':'absolute',
- 'left': i * itemWidth
- });
-
- $(this).find('a').unbind('click').click(function(){
- $.prettyPhoto.changePage(i);
- $.prettyPhoto.stopSlideshow();
- return false;
- });
+ $pp_gallery_li.each(function(i){
+ $(this)
+ .find('a')
+ .click(function(){
+ $.prettyPhoto.changePage(i);
+ $.prettyPhoto.stopSlideshow();
+ return false;
+ });
});
};
@@ -797,16 +829,43 @@
_center_overlay(); // Center it
};
+
+ if(!pp_alreadyInitialized && getHashtag()){
+ pp_alreadyInitialized = true;
+
+ // Grab the rel index to trigger the click on the correct element
+ hashIndex = getHashtag();
+ hashRel = hashIndex;
+ hashIndex = hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1);
+ hashRel = hashRel.substring(0,hashRel.indexOf('/'));
+
+ // Little timeout to make sure all the prettyPhoto initialize scripts has been run.
+ // Useful in the event the page contain several init scripts.
+ setTimeout(function(){ $("a[rel^='"+hashRel+"']:eq("+hashIndex+")").trigger('click'); },50);
+ }
return this.unbind('click.prettyphoto').bind('click.prettyphoto',$.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once
};
- function grab_param(name,url){
+ function getHashtag(){
+ url = location.href;
+ hashtag = (url.indexOf('#!') != -1) ? decodeURI(url.substring(url.indexOf('#!')+2,url.length)) : false;
+ return hashtag;
+ };
+
+ function setHashtag(){
+ if(typeof theRel == 'undefined') return; // theRel is set on normal calls, it's impossible to deeplink using the API
+ location.hash = '!' + theRel + '/'+rel_index+'/';
+ };
+
+ function getParam(name,url){
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( url );
return ( results == null ) ? "" : results[1];
}
-})(jQuery);
+})(jQuery);
+
+var pp_alreadyInitialized = false; // Used for the deep linking to make sure not to call the same function several times.
View
12 collective/prettyphoto/browser/javascript/prettyPhoto.js
@@ -1,14 +1,14 @@
-jq(document).ready(function(){
- jq(document).ready(function(){
+(function($) {
+ $(function() {
// add rel tag for all links with class 'prettyPhoto'
- jq("a.prettyPhoto").attr({"rel": "prettyPhoto"});
+ $("a.prettyPhoto").attr({"rel": "prettyPhoto"});
// add iframe attributes for all links with class 'prettyPhotoIframe'
- jq("a.prettyPhotoIframe").attr("href", function() {
+ $("a.prettyPhotoIframe").attr("href", function() {
return this.href + "?iframe=true&width=75%&height=75%";
}).attr({"rel": "prettyPhoto"});
// enable prettyPhoto
- jq("a[rel^='prettyPhoto']").prettyPhoto({theme:'light_rounded'});
+ $("a[rel^='prettyPhoto']").prettyPhoto({theme:'light_rounded'});
});
-});
+})(jQuery);
View
20 collective/prettyphoto/browser/view.py
@@ -14,29 +14,33 @@ def __call__(self, request=None, response=None):
portal_properties."""
self.request.response.setHeader("Content-type", "text/javascript")
- return """jq(document).ready(function(){
- jq(document).ready(function(){
+ social_tools = getattr(self.prettyphoto_properties, 'social_tools', '')
+
+ return """(function($) {
+ $(function() {
// add rel tag for all links with class 'prettyPhoto'
- jq("a.prettyPhoto").attr({"rel": "prettyPhoto"});
+ $("a.prettyPhoto").attr({"rel": "prettyPhoto"});
// add iframe attributes for all links with class 'prettyPhotoIframe'
- jq("a.prettyPhotoIframe").attr("href", function() {
+ $("a.prettyPhotoIframe").attr("href", function() {
return this.href + "?iframe=true&width=%(iframe_width)s&height=%(iframe_height)s";
}).attr({"rel": "prettyPhoto"});
// enable prettyPhoto
- jq("a[rel^='prettyPhoto']").prettyPhoto({
+ $("a[rel^='prettyPhoto']").prettyPhoto({
animationSpeed: '%(speed)s', /* fast/slow/normal */
opacity: %(opacity)s, /* Value between 0 and 1 */
showTitle: %(show_title)s, /* true/false */
counter_separator_label: '%(counter_sep)s', /* The separator for the gallery counter 1 "of" 2 */
theme: '%(theme)s',
autoplay: %(autoplay)s, /* Automatically start videos: True/False */
slideshow: %(slideshow)s, /* false OR interval time in ms */
- overlay_gallery: %(overlay_gallery)s /* If set to true, a gallery will overlay the fullscreen image on mouse over */
+ overlay_gallery: %(overlay_gallery)s, /* If set to true, a gallery will overlay the fullscreen image on mouse over */
+ social_tools: %(social_tools)s, /* html markup for social tool icons */
+ deeplinking: %(deeplinking)s /* allow prettyphoto to rewrite url for direktlinking to an image */
});
});
- });
+ })(jQuery);
""" % dict(speed=getattr(self.prettyphoto_properties, 'speed', 'normal'),
opacity=getattr(self.prettyphoto_properties, 'opacity', '0.80'),
show_title=getattr(self.prettyphoto_properties, 'show_title', True) and 'true' or 'false',
@@ -47,4 +51,6 @@ def __call__(self, request=None, response=None):
iframe_height=getattr(self.prettyphoto_properties, 'iframe_height', '75%'),
overlay_gallery=getattr(self.prettyphoto_properties, 'overlay_gallery', False) and 'true' or 'false',
slideshow=getattr(self.prettyphoto_properties, 'slideshow', 0) or 'false',
+ social_tools=social_tools and "'%s'" % social_tools or 'false',
+ deeplinking=getattr(self.prettyphoto_properties, 'deeplinking', False) and 'true' or 'false',
)
View
2 collective/prettyphoto/exportimport.py
@@ -16,6 +16,8 @@
dict(name='iframe_height', type_='string', value='75%'),
dict(name='overlay_gallery', type_='boolean', value=False),
dict(name='slideshow', type_='int', value=0),
+ dict(name='deeplinking', type_='boolean', value=False),
+ dict(name='social_tools', type_='string', value=''),
]
View
2 collective/prettyphoto/profiles/default/jsregistry.xml
@@ -15,4 +15,4 @@
expression=""
id="prettyPhoto.js"
inline="False" />
-</object>
+</object>
View
6 docs/HISTORY.txt
@@ -1,9 +1,13 @@
Changelog
=========
-0.4.2 (unreleased)
+0.4.2 (2011-07-13)
------------------
+- Upgraded to prettyPhoto 3.1.2 and implemented two new properties:
+ deeplinking , social_tools
+ [petschki]
+
0.4.1 (2011-03-22)
------------------
View
2 setup.py
@@ -1,7 +1,7 @@
from setuptools import setup, find_packages
import os
-version = '0.4.2dev'
+version = '0.4.2'
setup(name='collective.prettyphoto',
version=version,

0 comments on commit 5ff31fa

Please sign in to comment.
Something went wrong with that request. Please try again.