WP Photo Album Plus - Version 7.1.06.012

Version Description

= 7.1.06 =

  • This version addresses various bug fixes and feature requests.

= 7.1.05 =

  • This version addresses various security issues.
  • This version addresses various bug fixes.

= 7.1.04 =

  • This version addresses various bug fixes.

= 7.1.03 =

  • This version addresses various security issues.
  • This version addresses various bug fixes.

= 7.1.02 =

  • This version addresses various security issues.
  • This version addresses various bug fixes and feature requests.

= 7.1.01 =

  • This version addresses various bug fixes and feature requests.

= 7.1.00 =

  • This version addresses various bug fixes and feature requests.
  • The Photo Album -> Upload Photos and Import Photos admin pages have been substantially improved. Read the changelog for details.

= 7.0.11 =

  • This version addresses various bug fixes and feature requests.

= 7.0.11 =

  • This version addresses various bug fixes

= 7.0.10 =

  • This version addresses various bug fixes

= 7.0.09 =

  • This version addresses various security issues.
  • This version addresses various bug fixes and feature requests.

= 7.0.08 =

  • This version addresses various security issues.
  • This version addresses various bug fixes

= 7.0.07 =

  • This version addresses various security issues.
  • This version addresses various bug fixes

= 7.0.06 =

  • This version addresses various bug fixes
  • This version addresses various security issues.

= 7.0.05 =

  • This version addresses various minor bug fixes and feature requests.
  • This version addresses various security issues.

= 7.0.04 =

  • This version addresses various bug fixes
  • This version addresses various security issues.

= 7.0.03 =

  • This version addresses various minor bug fixes and feature requests.

= 7.0.02 =

  • This version addresses various bug fixes
  • This version addresses various security issues.

= 7.0.01 =

  • This version addresses various minor bug fixes and feature requests.

= 7.0.00 =

  • Shortcode generators for Gutenberg added.
  • This version addresses various minor bug fixes and feature requests.
  • This version addresses various security issues.
  • To prevent spamming and give the users the opportunity to decide when they want us to email them, the mailing system has been revised. Configure Table IX-M to enable various mailing lists, and use the WPPA+ Notify widget for full user flexibility.

= 6.9.21 =

  • This version addresses various bug fixes
  • This version addresses various security issues.

= 6.9.20 =

  • This version addresses various bug fixes

= 6.9.19 =

  • This version addresses various minor bug fixes

= 6.9.18 =

  • This version addresses various minor bug fixes

= 6.9.17 =

  • This version addresses various minor bug fixes and feature requests.
  • This version addresses various security issues.

= 6.9.16 =

  • This version addresses various minor bug fixes and feature requests.
  • This version addresses various security issues.

= 6.9.15 =

  • This version addresses various minor bug fixes and feature requests.
  • This version addresses various security issues.

= 6.9.14 =

  • This version addresses various minor bug fixes and feature requests.
  • This version addresses various security issues.

= 6.9.13 =

  • Security release.

= 6.9.12 =

  • This version addresses various minor bug fixes and performance improvements.

= 6.9.11 =

  • This version addresses various minor bug fixes and performance improvements.

= 6.9.10 =

  • This version addresses various minor bug fixes and performance improvements.

= 6.9.09 =

  • Panorama support phase III.

= 6.9.08 =

  • This version addresses various minor bug fixes and feature requests.
  • Panorama support phase II.

= 6.9.07 =

  • This version addresses various minor bug fixes and feature requests.
  • Panorama support phase I.

= 6.9.06 =

  • This version addresses various minor bug fixes and feature requests.

= 6.9.05 =

  • This version addresses various minor bug fixes and feature requests.

= 6.9.04 =

  • This version addresses various minor bug fixes and feature requests.
  • Local CDN functionality has been added.

= 6.9.03 =

  • This version addresses various minor bug fixes and feature requests.

= 6.9.02 =

  • This version addresses various minor bug fixes and feature requests.

= 6.9.01 =

  • This version addresses various minor bug fixes and feature requests.

= 6.9.00 =

  • This version includes the code for the privacy policy requirements.

= 6.8.09

  • This version addresses various bug fixes and code edits.

= 6.8.08 =

  • This version addresses various minor bug fixes and feature requests.
  • This version offers substantial performance improvements when the box in Table IV-A13: Defer Javascript is ticked. This setting is now recommended and set ticked as the default.
  • For more info on performance improvements and compatibility with optimizers: see the changelog.txt

= 6.8.07 =

  • This version addresses various minor bug fixes and enhancements, and a new widget: Statistics.

= 6.8.06 =

  • This version addresses various minor bug fixes and improved cache handling.

= 6.8.05 =

  • This version addresses various minor bug fixes and feture requests.

= 6.8.04 =

  • This version addresses various display issues and a few fixes of bugs that seldom affected the plugins behaviour.
Download this release

Release Info

Developer opajaap
Plugin Icon wp plugin WP Photo Album Plus
Version 7.1.06.012
Comparing to
See all releases

Code changes from version 7.1.05.006 to 7.1.06.012

changelog.txt CHANGED
@@ -1,12 +1,23 @@
1
WP Photo Album Plus Changelog
2
3
= 7.1.05 =
4
5
* Various security fixes.
6
* Additinal lazy load process during resize handler.
7
* Fixed a few 'undefined var' warnings.
8
* Comment request mderation emails were not sent when comment notify emails was disabled. Fixed.
9
- * Unused depot folders will now automatically be deleted.
10
* User depot dirs will now be created the moment the user opens the import admin page for the first time.
11
12
= 7.1.04 =
1
WP Photo Album Plus Changelog
2
3
+ = 7.1.06 =
4
+
5
+ * Added shortcode argument delay="yes" to fill the wppa container by ajax after document.ready.
6
+ Use it when you have a random photo order and html caching. Does NOT work when defer javascript is active (Table IV-A13).
7
+ * Page specific js data is now printed in the page itsself, no longer by loading a page specific script file.
8
+ This saves a http request, and the page dependant data has to be loaded anyway.
9
+ * Fixed a layout issue in multicolumn responsive covers display.
10
+ * Videos did not display in the wppa recent activity dashboard widget. Fixed.
11
+ * Added 'infifite' as selection option in Table IX-A15.1
12
+ * Fixed a spurious warning message above wppa displays.
13
+
14
= 7.1.05 =
15
16
* Various security fixes.
17
* Additinal lazy load process during resize handler.
18
* Fixed a few 'undefined var' warnings.
19
* Comment request mderation emails were not sent when comment notify emails was disabled. Fixed.
20
+ * Unused depot folders will now automatically be deleted.
21
* User depot dirs will now be created the moment the user opens the import admin page for the first time.
22
23
= 7.1.04 =
js/wppa.js CHANGED
@@ -2,7 +2,7 @@
2
//
3
// conatins common vars and functions
4
//
5
- var wppaJsVersion = '7.1.05';
6
7
// Important notice:
8
// All external vars that may be given a value in wppa-non-admin.php must be declared here and not in other front-end js files!!
@@ -128,6 +128,7 @@ var wppaShareHideWhenRunning = false;
128
var wppaCommentRequiredAfterVote = true;
129
var wppaTopMoc = 0; // Set by wppa_functions.php -> function wppa_container( 'open' );
130
if ( ! wppaColWidth ) var wppaColWidth = []; // [mocc] Set by wppa_functions.php -> function wppa_container( 'open' );
131
var wppaFotomotoHideWhenRunning = false; // Set by wppa-non-admin.php -> wppa_create_wppa_init_js();
132
var wppaFotomotoMinWidth = 400; // Set by wppa-non-admin.php -> wppa_create_wppa_init_js();
133
var wppaPhotoView = []; // [id] Set to true by a bump viewcount to prevent duplicate bumps.
@@ -331,29 +332,38 @@ function wppaSizeAutoDiv() {
331
});
332
}
333
334
// Do the auto cols
335
function wppaDoAllAutocols(i) {
336
337
- if ( typeof(i) != 'number' ) i = 0;
338
else i++;
339
340
- wppaConsoleLog('Doing wppaDoAllAutocols('+i+')', 'force');
341
342
// Do occurrences that are responsive
343
- for ( mocc = 1; mocc <= wppaTopMoc; mocc++ ) {
344
if ( wppaAutoColumnWidth[mocc] ) {
345
_wppaDoAutocol( mocc, i);
346
}
347
}
348
349
// Do lazy, just to be sure, for Ale
350
wppaMakeLazyVisible();
351
352
// Do retries if configured
353
- if ( i < wppaExtendedResizeCount ) {
354
setTimeout(function(){wppaDoAllAutocols(i)}, wppaExtendedResizeDelay);
355
}
356
357
}
358
359
// If disable right mouseclick
@@ -513,76 +523,105 @@ function wppaGetContainerWidth( mocc ) {
513
function _wppaDoAutocol( mocc, i ) {
514
515
// Log we are in
516
- wppaConsoleLog('Enter auto. mocc = '+mocc+' retry = '+i, 'force');
517
518
// Auto?
519
if ( ! wppaAutoColumnWidth[mocc] ) return true;
520
var w;
521
var h;
522
523
// Container
524
- w = wppaGetContainerWidth( mocc );
525
526
- // Update current width
527
- wppaColWidth[mocc] = w;
528
529
- // Adjust container
530
- if ( wppaResponseSpeed == 0 ) {
531
- jQuery( ".wppa-container-"+mocc ).css( {width:w} );
532
}
533
else {
534
- jQuery( ".wppa-container-"+mocc ).stop().animate( {width:w}, wppaResponseSpeed );
535
- }
536
- if ( wppaRenderModal ) {
537
- jQuery( ".ui-dialog" ).css( 'width', w );
538
- jQuery( ".ui-dialog" ).attr( 'height', 'auto' );
539
}
540
-
541
// Covers
542
if ( wppaCoverImageResponsive[mocc] ) {
543
}
544
else {
545
- if ( wppaResponseSpeed == 0 ) {
546
- jQuery( ".wppa-asym-text-frame-"+mocc ).css( {width:(w - wppaTextFrameDelta)} );
547
- jQuery( ".wppa-cover-box-"+mocc ).css( {width:w} );
548
- }
549
- else {
550
- jQuery( ".wppa-asym-text-frame-"+mocc ).stop().animate( {width:(w - wppaTextFrameDelta)}, wppaResponseSpeed );
551
- jQuery( ".wppa-cover-box-"+mocc ).stop().animate( {width:w}, wppaResponseSpeed );
552
}
553
}
554
555
// Multi Column Responsive covers
556
- var exists = jQuery( ".wppa-cover-box-mcr-"+mocc );
557
- var MCRWidth;
558
if ( exists.length > 1 ) { // Yes there are
559
- var nCovers = parseInt( ( w + 8 )/( wppaMaxCoverWidth+8 ) ) + 1;
560
- var coverMax1 = nCovers - 1;
561
- MCRWidth = parseInt( ( ( w + 8 )/nCovers ) - 8 );
562
- var idx = 0;
563
- while ( idx < exists.length ) {
564
- var col = idx % nCovers;
565
- switch ( col ) {
566
- case 0: /* left */
567
- jQuery( exists[idx] ).css( {'marginLeft': '0px', 'clear': 'both', 'float': 'left'});
568
- break;
569
- case coverMax1: /* right */
570
- jQuery( exists[idx] ).css( {'marginLeft': '8px', 'clear': 'none', 'float': 'right'});
571
- break;
572
- default:
573
- jQuery( exists[idx] ).css( {'marginLeft': '8px', 'clear': 'none', 'float': 'left'});
574
}
575
- idx++;
576
- }
577
578
- if ( wppaCoverImageResponsive[mocc] ) {
579
- }
580
- else {
581
- jQuery( ".wppa-asym-text-frame-mcr-"+mocc ).stop().animate( {width: (MCRWidth - wppaTextFrameDelta)}, wppaResponseSpeed );
582
}
583
- jQuery( ".wppa-cover-box-mcr-"+mocc ).stop().animate( {width:MCRWidth}, wppaResponseSpeed );
584
}
585
- else { // One cover: full width, 0 covers don't care
586
if ( wppaCoverImageResponsive[mocc] ) {
587
}
588
else {
2
//
3
// conatins common vars and functions
4
//
5
+ var wppaJsVersion = '7.1.06';
6
7
// Important notice:
8
// All external vars that may be given a value in wppa-non-admin.php must be declared here and not in other front-end js files!!
128
var wppaCommentRequiredAfterVote = true;
129
var wppaTopMoc = 0; // Set by wppa_functions.php -> function wppa_container( 'open' );
130
if ( ! wppaColWidth ) var wppaColWidth = []; // [mocc] Set by wppa_functions.php -> function wppa_container( 'open' );
131
+ if ( ! wppaMCRWidth ) var wppaMCRWidth = [];
132
var wppaFotomotoHideWhenRunning = false; // Set by wppa-non-admin.php -> wppa_create_wppa_init_js();
133
var wppaFotomotoMinWidth = 400; // Set by wppa-non-admin.php -> wppa_create_wppa_init_js();
134
var wppaPhotoView = []; // [id] Set to true by a bump viewcount to prevent duplicate bumps.
332
});
333
}
334
335
+ var wppaDoAllAutocolsLastI = 0;
336
// Do the auto cols
337
function wppaDoAllAutocols(i) {
338
339
+ if ( typeof(i) != 'number' ) i = 1;
340
else i++;
341
+ if ( wppaDoAllAutocolsLastI >= i ) {
342
+ wppaDoAllAutocolsLastI = 0; // reset and wait for new event
343
+ return;
344
+ }
345
+ wppaDoAllAutocolsLastI = i;
346
347
+ wppaConsoleLog('Doing wppaDoAllAutocols('+i+')');
348
349
// Do occurrences that are responsive
350
+ var mocc = 1;
351
+ while ( mocc <= wppaAutoColumnWidth.length ) {
352
if ( wppaAutoColumnWidth[mocc] ) {
353
_wppaDoAutocol( mocc, i);
354
}
355
+ mocc++;
356
}
357
358
// Do lazy, just to be sure, for Ale
359
wppaMakeLazyVisible();
360
361
// Do retries if configured
362
+ if ( i < wppaExtendedResizeCount || wppaExtendedResizeCount == -1 ) {
363
setTimeout(function(){wppaDoAllAutocols(i)}, wppaExtendedResizeDelay);
364
}
365
366
+ return true;
367
}
368
369
// If disable right mouseclick
523
function _wppaDoAutocol( mocc, i ) {
524
525
// Log we are in
526
+ wppaConsoleLog('Enter auto. mocc = '+mocc+' retry = '+i);
527
528
// Auto?
529
if ( ! wppaAutoColumnWidth[mocc] ) return true;
530
var w;
531
var h;
532
+ var old;
533
+ var exists;
534
535
// Container
536
+ w = jQuery('#wppa-container-'+mocc).width();
537
538
+ // Anything to do here?
539
+ // if ( w == wppaColWidth[mocc] ) return true;
540
541
+ // Update current width
542
+ // wppaColWidth[mocc] = w;
543
+
544
+ /*
545
+ // Adjust container, only if it differs from current width
546
+ if ( ! wppaRenderModal ) {
547
+ old = jQuery( "#wppa-container-"+mocc ).width();
548
+ // wppaConsoleLog( 'container old='+old+', new='+w, 'force' );
549
+ if ( w != old ) {
550
+ if ( wppaResponseSpeed == 0 ) {
551
+ jQuery( ".wppa-container-"+mocc ).css( {width:w} );
552
+ }
553
+ else {
554
+ jQuery( ".wppa-container-"+mocc ).stop().animate( {width:w}, wppaResponseSpeed );
555
+ }
556
+ }
557
}
558
else {
559
+ old = jQuery( ".ui-dialog" ).css( 'width' );
560
+ if ( parseInt( w ) != parseInt( old ) ) {
561
+ jQuery( ".ui-dialog" ).css( 'width', w );
562
+ jQuery( ".ui-dialog" ).attr( 'height', 'auto' );
563
+ }
564
}
565
+ /**/
566
// Covers
567
if ( wppaCoverImageResponsive[mocc] ) {
568
}
569
else {
570
+ exists = jQuery( ".wppa-asym-text-frame-"+mocc );
571
+ if ( exists.length > 1 ) {
572
+ old = jQuery( exists[0] ).width();
573
+
574
+ if ( wppaResponseSpeed == 0 ) {
575
+ jQuery( ".wppa-asym-text-frame-"+mocc ).css( {width:(w - wppaTextFrameDelta)} );
576
+ jQuery( ".wppa-cover-box-"+mocc ).css( {width:w} );
577
+ }
578
+ else {
579
+ jQuery( ".wppa-asym-text-frame-"+mocc ).stop().animate( {width:(w - wppaTextFrameDelta)}, wppaResponseSpeed );
580
+ jQuery( ".wppa-cover-box-"+mocc ).stop().animate( {width:w}, wppaResponseSpeed );
581
+ }
582
}
583
}
584
585
// Multi Column Responsive covers
586
+ exists = jQuery( ".wppa-cover-box-mcr-"+mocc );
587
if ( exists.length > 1 ) { // Yes there are
588
+
589
+ var cw = document.getElementById( 'wppa-albumlist-' + mocc ).clientWidth;
590
+ var nCovers = parseInt( ( cw + 8 )/( wppaMaxCoverWidth+8 ) ) + 1;
591
+ var coverMax1 = nCovers - 1;
592
+ var MCRWidth = parseInt( ( ( cw + 8 )/nCovers ) - 8 );
593
+
594
+ if ( wppaColWidth[mocc] != cw || wppaMCRWidth[mocc] != MCRWidth ) {
595
+
596
+ wppaColWidth[mocc] = cw;
597
+ wppaMCRWidth[mocc] = MCRWidth;
598
+
599
+ var idx = 0;
600
+ while ( idx < exists.length ) {
601
+ var col = idx % nCovers;
602
+ switch ( col ) {
603
+ case 0: /* left */
604
+ jQuery( exists[idx] ).css( {'marginLeft': '0px', 'clear': 'both', 'float': 'left'});
605
+ break;
606
+ case coverMax1: /* right */
607
+ jQuery( exists[idx] ).css( {'marginLeft': '0px', 'clear': 'none', 'float': 'right'});
608
+ break;
609
+ default:
610
+ jQuery( exists[idx] ).css( {'marginLeft': '8px', 'clear': 'none', 'float': 'left'});
611
+ }
612
+ idx++;
613
}
614
615
+ if ( wppaCoverImageResponsive[mocc] ) {
616
+ }
617
+ else {
618
+ jQuery( ".wppa-asym-text-frame-mcr-"+mocc ).stop().animate( {width: (MCRWidth - wppaTextFrameDelta)}, wppaResponseSpeed );
619
+ }
620
+ old = jQuery( exists[0] ).width();
621
+ jQuery( ".wppa-cover-box-mcr-"+mocc ).stop().animate( {width:MCRWidth}, wppaResponseSpeed );
622
}
623
}
624
+ else if ( exists.length == 1 ) { // One cover: full width, 0 covers don't care
625
if ( wppaCoverImageResponsive[mocc] ) {
626
}
627
else {
js/wppa.min.js CHANGED
@@ -1 +1 @@
1
- var wppaJsVersion="7.1.05",wppaVersion="0",wppaIsIe=!1,wppaUseSvg=!0,wppaDebug,wppaFullValign=[],wppaFullHalign=[],wppaFullFrameDelta=[],wppaAnimationSpeed,wppaImageDirectory,wppaThumbnailAreaDelta;if(!wppaAutoColumnWidth)var wppaAutoColumnWidth=[];if(!wppaAutoColumnFrac)var wppaAutoColumnFrac=[];var wppaSlideShowTimeOut=2500,wppaFadeInAfterFadeOut=!1,wppaTextFrameDelta=0,wppaBoxDelta=0,wppaPreambule=[],wppaHideWhenEmpty=!1,wppaThumbnailPitch=[],wppaFilmStripLength=[],wppaFilmStripMargin=[],wppaFilmStripAreaDelta=[],wppaFilmShowGlue=!1,wppaIsMini=[],wppaPortraitOnly=[],wppaSlideShow,wppaPhoto,wppaOf,wppaNextPhoto,wppaPreviousPhoto,wppaNextP,wppaPrevP,wppaAvgRating,wppaMyRating,wppaAvgRat,wppaMyRat,wppaDislikeMsg,wppaMiniTreshold=300,wppaStart="Start",wppaStop="Stop",wppaPleaseName,wppaPleaseEmail,wppaPleaseComment,wppaRatingOnce=!0,wppaBGcolorNumbar="transparent",wppaBcolorNumbar="transparent",wppaBGcolorNumbarActive="transparent",wppaBcolorNumbarActive="transparent",wppaFontFamilyNumbar="",wppaFontSizeNumbar="",wppaFontColorNumbar="",wppaFontWeightNumbar="",wppaFontFamilyNumbarActive="",wppaFontSizeNumbarActive="",wppaFontColorNumbarActive="",wppaFontWeightNumbarActive="",wppaNumbarMax="10",wppaAjaxUrl="",wppaLang="",wppaNextOnCallback=!1,wppaStarOpacity=.2,wppaLightBox=[],wppaEmailRequired="required",wppaSlideBorderWidth=0,wppaSlideInitRunning=[],wppaAnimationType="fadeover",wppaSlidePause=[],wppaSlideBlank=[],wppaRatingMax=5,wppaRatingDisplayType="graphic",wppaRatingPrec=2,wppaFilmPageSize=[],wppaAspectRatio=[],wppaFullSize=[],wppaStretch=!1,wppaThumbSpaceAuto=!1,wppaMinThumbSpace=4,wppaMagnifierCursor="",wppaArtMonkyLink="none",wppaAutoOpenComments=!1,wppaUpdateAddressLine=!1,wppaFilmThumbTitle="",wppaClickToView="",wppaUploadUrl="",wppaVoteForMe="",wppaVotedForMe="",wppaSlideSwipe=!0,wppaLightboxSingle=[],wppaMaxCoverWidth=300,wppaDownLoad="Download",wppaSiteUrl="",wppaWppaUrl="",wppaIncludeUrl="",wppaSlideToFullpopup=!1,wppaComAltSize=75,wppaBumpViewCount=!0,wppaBumpClickCount=!1,wppaFotomoto=!1,wppaArtMonkeyButton=!0,wppaShortQargs=!1,wppaOvlHires=!1,wppaMasonryCols=[],wppaVideoPlaying=[],wppaAudioPlaying=[],wppaSlideVideoStart=!1,wppaSlideAudioStart=!1,wppaAudioHeight=28,wppaHis=0,wppaStartHtml=[],wppaCanAjaxRender=!1,wppaCanPushState=!1,wppaAllowAjax=!0,wppaMaxOccur=0,wppaFirstOccur=0,wppaUsePhotoNamesInUrls=!1,wppaShareHideWhenRunning=!1,wppaCommentRequiredAfterVote=!0,wppaTopMoc=0;if(!wppaColWidth)var wppaColWidth=[];var wppaFotomotoHideWhenRunning=!1,wppaFotomotoMinWidth=400,wppaPhotoView=[],wppaBackgroundColorImage="",wppaPopupLinkType="",wppaPopupOnclick=[],wppaThumbTargetBlank=!1,wppaRel="rel",wppaEditPhotoWidth="960",wppaThemeStyles="",wppaStickyHeaderHeight=0,wppaRenderModal=!1,wppaModalBgColor="#ffffff",wppaBoxRadius=0,wppaModalQuitImg,wppaUploadEdit="none",wppaPageArg="",wppaSlideshowNavigationType="icons",wppaCoverImageResponsive=[],wppaSearchBoxSelItems=[],wppaSlideWrap=[],wppaHideRightClick=!1,wppaProcessing="Processing...",wppaDone="Done!",wppaUploadFailed="Upload failed",wppaServerError="Server error",wppaGeoZoom=10,wppaLazyLoad=!0,wppaAreaMaxFrac=1,wppaNiceScroll=!1,wppaIconSizeNormal="default",wppaIconSizeSlide=48,wppaIconSizeStars=24,wppaResponseSpeed=500,wppaExtendedResizeCount=0,wppaExtendedResizeDelay=200,_wppaId=[],_wppaAvg=[],_wppaDisc=[],_wppaMyr=[],_wppaVRU=[],_wppaLinkUrl=[],_wppaLinkTitle=[],_wppaLinkTarget=[],_wppaCommentHtml=[],_wppaIptcHtml=[],_wppaExifHtml=[],_wppaToTheSame=!1,_wppaSlides=[],_wppaNames=[],_wppaFullNames=[],_wppaDsc=[],_wppaOgDsc=[],_wppaCurIdx=[],_wppaNxtIdx=[],_wppaTimeOut=[],_wppaSSRuns=[],_wppaFg=[],_wppaTP=[],_wppaIsBusy=[],_wppaFirst=[],_wppaVoteInProgress=!1,_wppaTextDelay,_wppaUrl=[],_wppaSkipRated=[],_wppaLbTitle=[],_wppaStateCount=0,_wppaDidGoto=[],_wppaShareUrl=[],_wppaShareHtml=[],_wppaFilmNoMove=[],_wppaHiresUrl=[],_wppaIsVideo=[],_wppaVideoHtml=[],_wppaAudioHtml=[],_wppaVideoNatWidth=[],_wppaVideoNatHeight=[],_wppaWaitTexts=[],_wppaImageAlt=[],__wppaOverruleRun=!1,wppaOvlUrls,wppaOvlTitles,wppaOvlAlts,wppaOvlIdx=0,wppaOvlFirst=!0,wppaOvlKbHandler="",wppaOvlSizeHandler="",wppaOvlPadTop=5,wppaOvlIsSingle,wppaOvlRunning=!1,wppaOvlVideoHtmls,wppaOvlAudioHtmls,wppaOvlPdfHtmls,wppaOvlVideoNaturalWidths,wppaOvlVideoNaturalHeights,wppaOvlModeInitial="normal",wppaOvlVideoPlaying=!1,wppaOvlAudioPlaying=!1,wppaOvlShowLegenda=!0,wppaOvlShowStartStop=!0,wppaOvlRadius=0,wppaOvlBorderWidth=16,wppaOvlOpen=!1,wppaOvlTxtHeight=36,wppaOvlOpacity=.8,wppaOvlOnclickType="none",wppaOvlTheme="black",wppaOvlAnimSpeed=300,wppaOvlSlideSpeed=3e3,wppaVer4WindowWidth=800,wppaVer4WindowHeight=600,wppaOvlFontFamily="Helvetica",wppaOvlFontSize="10",wppaOvlFontColor="",wppaOvlFontWeight="bold",wppaOvlLineHeight="12",wppaOvlShowCounter=!0,wppaOvlIsVideo=!1,wppaShowLegenda="",wppaOvlFsPhotoId=0,wppaPhotoId=0,wppaOvlVideoStart=!1,wppaOvlAudioStart=!1,wppaLastIptc="",wppaLastExif="",wppaIsMobile=!1,wppaSvgFillcolor="gray",wppaSvgBgcolor="transparent",wppaSvgCornerStyle="light";function wppaDoInit(){_wppaTextDelay=wppaAnimationSpeed,wppaFadeInAfterFadeOut&&(_wppaTextDelay*=2),jQuery(".wppa-ajax-spin").stop().fadeOut(),jQuery(".wppa-ovl-spin").hide(),setTimeout(function(){for(var p=1;p<wppaTopMoc;)jQuery("#ubb-"+p+"-l")&&(wppaUbb(p,"l","hide"),wppaUbb(p,"r","hide")),p++},3e3),jQuery(window).on("DOMContentLoaded load resize orientationchange",wppaDoAllAutocols),jQuery(window).on("DOMContentLoaded load resize scroll wheel",wppaSizeArea),jQuery(window).on("DOMContentLoaded load resize scroll wheel",wppaMakeLazyVisible),jQuery(".wppa-divnicewrap").on("resize scroll wheel",wppaMakeLazyVisible),jQuery(window).trigger("resize"),wppaProtect()}function wppaSizeAutoDiv(){jQuery(".wppa-autodiv").each(function(p){var a=jQuery(window).height(),e=jQuery(this).attr("data-max-height");jQuery(this).css({maxHeight:a*e})})}function wppaDoAllAutocols(p){for("number"!=typeof p?p=0:p++,wppaConsoleLog("Doing wppaDoAllAutocols("+p+")","force"),mocc=1;mocc<=wppaTopMoc;mocc++)wppaAutoColumnWidth[mocc]&&_wppaDoAutocol(mocc,p);wppaMakeLazyVisible(),p<wppaExtendedResizeCount&&setTimeout(function(){wppaDoAllAutocols(p)},wppaExtendedResizeDelay)}function wppaProtect(){wppaHideRightClick&&(jQuery("img").bind("contextmenu",function(p){return!1}),jQuery("video").bind("contextmenu",function(p){return!1}))}function wppaUpdateLightboxes(){"function"==typeof wppaInitOverlay&&wppaInitOverlay(),"undefined"!=typeof myLightbox&&"function"==typeof myLightbox.updateImageList&&myLightbox.updateImageList(),jQuery().prettyPhoto&&jQuery("a[rel^='prettyPhoto']").prettyPhoto({deeplinking:!1})}function wppaStopVideo(p){var a,e,t=[];for(t[1]="wppa-overlay-img",t[2]="theimg0-"+p,t[3]="theimg1-"+p,e=0;e<3;)1==++e&&0!=p||(a=document.getElementById(t[e]))&&"function"==typeof a.pause&&(a.pause(),wppaConsoleLog("Video "+t[e]+" paused","force"))}function wppaStopAudio(p){if("number"==typeof p)jQuery("#audio-"+p).pause&&jQuery("#audio-"+p).pause();else{var a=jQuery("audio");if(0<a.length)for(var e=0;e<a.length;)"wppa"==jQuery(a[e]).attr("data-from")&&a[e].pause(),e++}}function wppaMakeFullsizeUrl(p){var a,e;p=(a=(p=p.replace("/thumbs/","/")).split("//"))[1]?(e=a[1].split("/"),a[0]+"//"):(e=a[0].split("/"),"");for(var t=0;t<e.length;){var o=e[t];"w"!=o.split("_")[0]&&(0!=t&&(p+="/"),p+=o),t++}return p}function wppaGetContainerWidth(p){var a=document.getElementById("wppa-container-"+p),e=0;if(!wppaAutoColumnWidth[p])return a.clientWidth;for(;0==e;)a=a.parentNode,e=jQuery(a).width();return parseInt(e*wppaAutoColumnFrac[p])}function _wppaDoAutocol(p,a){if(wppaConsoleLog("Enter auto. mocc = "+p+" retry = "+a,"force"),!wppaAutoColumnWidth[p])return!0;var e;e=wppaGetContainerWidth(p),wppaColWidth[p]=e,0==wppaResponseSpeed?jQuery(".wppa-container-"+p).css({width:e}):jQuery(".wppa-container-"+p).stop().animate({width:e},wppaResponseSpeed),wppaRenderModal&&(jQuery(".ui-dialog").css("width",e),jQuery(".ui-dialog").attr("height","auto")),wppaCoverImageResponsive[p]||(0==wppaResponseSpeed?(jQuery(".wppa-asym-text-frame-"+p).css({width:e-wppaTextFrameDelta}),jQuery(".wppa-cover-box-"+p).css({width:e})):(jQuery(".wppa-asym-text-frame-"+p).stop().animate({width:e-wppaTextFrameDelta},wppaResponseSpeed),jQuery(".wppa-cover-box-"+p).stop().animate({width:e},wppaResponseSpeed)));var t,o=jQuery(".wppa-cover-box-mcr-"+p);if(1<o.length){var r=parseInt((e+8)/(wppaMaxCoverWidth+8))+1,s=r-1;t=parseInt((e+8)/r-8);for(var i=0;i<o.length;){switch(i%r){case 0:jQuery(o[i]).css({marginLeft:"0px",clear:"both",float:"left"});break;case s:jQuery(o[i]).css({marginLeft:"8px",clear:"none",float:"right"});break;default:jQuery(o[i]).css({marginLeft:"8px",clear:"none",float:"left"})}i++}wppaCoverImageResponsive[p]||jQuery(".wppa-asym-text-frame-mcr-"+p).stop().animate({width:t-wppaTextFrameDelta},wppaResponseSpeed),jQuery(".wppa-cover-box-mcr-"+p).stop().animate({width:t},wppaResponseSpeed)}else if(wppaCoverImageResponsive[p]);else{jQuery(".wppa-asym-text-frame-mcr-"+p).stop().animate({width:e-wppaTextFrameDelta},wppaResponseSpeed);jQuery(".wppa-cover-box-mcr-"+p).css({marginLeft:"0px",float:"left"})}if(wppaThumbSpaceAuto){var n=parseInt(jQuery(".thumbnail-frame-"+p).css("width"));if(n){var w=wppaMinThumbSpace,l=e-wppaThumbnailAreaDelta-7,u=Math.max(1,parseInt(l/(n+w))),c=parseInt(.5+(l-u*n)/(u+1));jQuery(".thumbnail-frame-"+p).css({marginLeft:c})}}jQuery(".thumbnail-frame-comalt-"+p).css("width",e-wppaThumbnailAreaDelta),jQuery(".wppa-com-alt-"+p).css("width",e-wppaThumbnailAreaDelta-wppaComAltSize-16);for(var d,y=1,m=jQuery("#wppa-mas-h-"+y+"-"+p).attr("data-height-perc");m;)d=m*(e-wppaThumbnailAreaDelta)/100,jQuery("#wppa-mas-h-"+y+"-"+p).css("height",d),y++,m=jQuery("#wppa-mas-h-"+y+"-"+p).attr("data-height-perc");return wppaSetMasHorFrameWidthsForIeAndChrome(p),wppaFormatSlide(p),jQuery("#audio-slide-"+p).css("width",e-wppaBoxDelta-6),jQuery(".wppa-comment-textarea-"+p).css("width",.7*e),wppaFilmStripLength[p]=e-wppaFilmStripAreaDelta[p],jQuery("#filmwindow-"+p).css("width",wppaFilmStripLength[p]),_wppaAdjustFilmstrip(p),wppaIsMini[p]||void 0===_wppaSlides[p]||(wppaColWidth[p]<wppaMiniTreshold?(jQuery("#wppa-avg-rat-"+p).html(wppaAvgRat),jQuery("#wppa-my-rat-"+p).html(wppaMyRat),jQuery("#counter-"+p).html(_wppaCurIdx[p]+1+" / "+_wppaSlides[p].length)):(jQuery("#wppa-avg-rat-"+p).html(wppaAvgRating),jQuery("#wppa-my-rat-"+p).html(wppaMyRating),jQuery("#counter-"+p).html(wppaPhoto+" "+(_wppaCurIdx[p]+1)+" "+wppaOf+" "+_wppaSlides[p].length))),jQuery(".wppa-sphoto-"+p).css("width",e),jQuery(".wppa-simg-"+p).css("width",e-2*wppaSlideBorderWidth),jQuery(".wppa-simg-"+p).css("height",""),jQuery(".wppa-mphoto-"+p).css("width",e+10),jQuery(".wppa-mimg-"+p).css("width",e),jQuery(".wppa-mimg-"+p).css("height",""),jQuery(".smxpdf-"+p).css("height",.8*wppaWindowHeight()),0<wppaSearchBoxSelItems[p]&&(e/wppaSearchBoxSelItems[p]<125?jQuery(".wppa-searchsel-item-"+p).css("width","100%"):jQuery(".wppa-searchsel-item-"+p).css("width",100/wppaSearchBoxSelItems[p]+"%")),jQuery(".wppa-upload-album-"+p).css("maxWidth",.6*e),!0}function wppaSetMasHorFrameWidthsForIeAndChrome(p){for(var a=jQuery(".wppa-mas-h-"+p),e=wppaMinThumbSpace,t=0;t<a.length;t++){var o=wppaGetChildI(a[t]);if(o){if("IMG"==o.nodeName&&!o.complete)return void setTimeout("wppaSetMasHorFrameWidthsForIeAndChrome( "+p+" )",400);var r=o.naturalWidth/o.naturalHeight*o.height+e;jQuery(a[t]).css({width:r})}}}function wppaGetChildI(p){var a,e=p.childNodes;for(a=0;a<e.length;a++){var t=e[a];if(t.id&&"i-"==t.id.substr(0,2))return t;var o=wppaGetChildI(t);if(o)return o}return!1}jQuery(document).ready(function(){wppaDoInit()}),jQuery(document).ready(function(){jQuery(window).on("DOMContentLoaded load resize scroll",wppaSizeAutoDiv)}),jQuery(document).ready(function(p){if(wppaAllowAjax&&jQuery.ajax&&(wppaCanAjaxRender=!0),void 0!==history.pushState){for(var a=1;a<=wppaMaxOccur;)wppaStartHtml[a]=jQuery("#wppa-container-"+a).html(),a++;wppaCanPushState=!0}});var wppaFotomotoLoaded=!1,wppaFotomotoToolbarIds=[];function fotomoto_loaded(){wppaFotomotoLoaded=!0}function wppaFotomotoToolbar(p,a){if(!(wppaColWidth[p]>=wppaFotomotoMinWidth))return jQuery("#wppa-fotomoto-container-"+p).css("display","none"),void jQuery("#wppa-fotomoto-checkout-"+p).css("display","none");jQuery("#wppa-fotomoto-container-"+p).css("display","inline"),jQuery("#wppa-fotomoto-checkout-"+p).css("display","inline"),wppaFotomoto&&document.getElementById("wppa-fotomoto-container-"+p)&&(wppaFotomotoLoaded?(FOTOMOTO.API.checkinImage(a),wppaFotomotoToolbarIds[p]=FOTOMOTO.API.showToolbar("wppa-fotomoto-container-"+p,a)):(setTimeout("wppaFotomotoToolbar( "+p+',"'+a+'" )',200),wppaConsoleLog("Waiting for Fotomoto")))}function wppaFotomotoHide(p){jQuery("#wppa-fotomoto-container-"+p).css("display","none"),jQuery("#wppa-fotomoto-checkout-"+p).css("display","none")}function wppaStringContainsForbiddenChars(p){for(var a=["?","&","#","/",'"',"'"],e=0;e<a.length;){if(-1!=p.indexOf(a[e]))return!0;e++}return!1}function wppaPushStateSlide(p,a,e){if(!wppaIsMini[p]&&wppaCanPushState&&wppaUpdateAddressLine&&""!=e)try{history.pushState({page:wppaHis,occur:p,type:"slide",slide:a},"---",e),wppaConsoleLog("Slide history stack updated")}catch(p){wppaConsoleLog("Slide history stack update failed")}}function wppaRepairScriptTags(p){if(void 0===p)return"";for(;-1!=p.indexOf("[script");)p=p.replace("[script","<script");for(;-1!=p.indexOf("[/script");)p=p.replace("[/script","</script");return p}function wppaRepairBrTags(p){return void 0===p?"":p.replace("[br /]","<br />").replace("[a","<a").replace("&quot;",'"').replace('"]','">').replace("[/a]","</a>")}function wppaTrimAlt(p){return void 0===p?"":13<p.length?p.substr(0,10)+"...":p}window.onpopstate=function(p){var a=0;if(wppaCanPushState){if(p.state)switch(a=p.state.occur,p.state.type){case"html":jQuery("#wppa-container-"+a).html(p.state.html);break;case"slide":_wppaGoto(a,p.state.slide)}else if(wppaUpdateAddressLine){if(a=wppaFirstOccur,jQuery("#wppa-container-"+a).html(wppaStartHtml[a]),(wppaFirstOccur=0)==a){var e=document.location.href.split("&wppa-occur=");a=parseInt(e[1])}e=document.location.href.split("&wppa-photo=");var t=parseInt(e[1]);if(0<t){for(var o=0;o<_wppaId[a].length&&_wppaId[a][o]!=t;)o++;o<_wppaId[a].length&&_wppaGoto(a,o)}}document.getElementById("theslide0-"+a)&&_wppaStop(a)}"undefined"!=typeof wppaQRUpdate&&wppaQRUpdate(document.location.href)};var wppaFbInitBusy=!1;function wppaFbInit(){wppaFbInitBusy?wppaConsoleLog("Fb Init busy"):"undefined"!=typeof FB?(wppaFbInitBusy=!0,setTimeout("_wppaFbInit()",10)):(wppaConsoleLog("Fb wait"),setTimeout("wppaFbInit()",200))}function _wppaFbInit(){FB.init({status:!0,xfbml:!0}),wppaFbInitBusy=!1}function wppaInsertAtCursor(p,a){if(document.selection)p.focus(),sel=document.selection.createRange(),sel.text=a;else if(p.selectionStart||"0"==p.selectionStart){var e=p.selectionStart,t=p.selectionEnd;p.value=p.value.substring(0,e)+a+p.value.substring(t,p.value.length),p.selectionStart=e+a.length,p.selectionEnd=e+a.length}else p.value+=a}function wppaGeoInit(p,a,e){var t=new google.maps.LatLng(a,e),o={disableDefaultUI:!1,panControl:!1,zoomControl:!0,mapTypeControl:!0,scaleControl:!0,streetViewControl:!0,overviewMapControl:!0,zoom:wppaGeoZoom,center:t},r=new google.maps.Map(document.getElementById("map-canvas-"+p),o),s=new google.maps.Marker({position:t,map:r,title:""});google.maps.event.addListener(r,"center_changed",function(){window.setTimeout(function(){r.panTo(s.getPosition())},1e3)})}function wppaEncode(p){var a;if(void 0!==p){var e=(a=(a=String(p).replace(/#/g,"||HASH||")).replace(/&/g,"||AMP||")).split("+"),t=0;for(a="";t<e.length;)a+=e[t],++t<e.length&&(a+="||PLUS||");return a}}function wppaUrlToId(p){var a=p.split("/wppa/");return 1==a.length&&(a=p.split("/upload/")),1==a.length?0:a=(a=(a=(a=(a=(a=(a=a[1]).split("."))[0].replace("/","")).replace("/","")).replace("/","")).replace("/","")).replace("/","")}function wppaSuperSearchSelect(p,a){jQuery("#wppa-ss-albumopt-"+p).css("display","none"),jQuery("#wppa-ss-albumcat-"+p).css("display","none"),jQuery("#wppa-ss-albumname-"+p).css("display","none"),jQuery("#wppa-ss-albumtext-"+p).css("display","none"),jQuery("#wppa-ss-photoopt-"+p).css("display","none"),jQuery("#wppa-ss-photoname-"+p).css("display","none"),jQuery("#wppa-ss-photoowner-"+p).css("display","none"),jQuery("#wppa-ss-phototag-"+p).css("display","none"),jQuery("#wppa-ss-phototext-"+p).css("display","none"),jQuery("#wppa-ss-photoexif-"+p).css("display","none"),jQuery("#wppa-ss-photoiptc-"+p).css("display","none"),jQuery("#wppa-ss-exifopts-"+p).css("display","none"),jQuery("#wppa-ss-iptcopts-"+p).css("display","none"),jQuery("#wppa-ss-spinner-"+p).css("display","none"),jQuery("#wppa-ss-button-"+p).css("display","none");var e=jQuery("#wppa-ss-pa-"+p).val(),t="",o="",r="";switch(e){case"a":switch(jQuery("#wppa-ss-albumopt-"+p).css("display",""),t=jQuery("#wppa-ss-albumopt-"+p).val()){case"c":jQuery("#wppa-ss-albumcat-"+p).css("display","");var s=jQuery(".wppa-ss-albumcat-"+p);for(r="",i=0;i<s.length;i++)"selected"==jQuery(s[i]).attr("selected")&&(r+="."+jQuery(s[i]).val());""!=(r=r.substr(1))&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"n":jQuery("#wppa-ss-albumname-"+p).css("display",""),null!=(r=jQuery("#wppa-ss-albumname-"+p).val())&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"t":jQuery("#wppa-ss-albumtext-"+p).css("display","");s=jQuery(".wppa-ss-albumtext-"+p);for(r="",i=0;i<s.length;i++)"selected"==jQuery(s[i]).attr("selected")&&(r+="."+jQuery(s[i]).val());""!=(r=r.substr(1))&&jQuery("#wppa-ss-button-"+p).css("display","")}break;case"p":switch(jQuery("#wppa-ss-photoopt-"+p).css("display",""),t=jQuery("#wppa-ss-photoopt-"+p).val()){case"n":jQuery("#wppa-ss-photoname-"+p).css("display",""),null!=(r=jQuery("#wppa-ss-photoname-"+p).val())&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"o":jQuery("#wppa-ss-photoowner-"+p).css("display",""),null!=(r=jQuery("#wppa-ss-photoowner-"+p).val())&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"g":jQuery("#wppa-ss-phototag-"+p).css("display","");s=jQuery(".wppa-ss-phototag-"+p);for(r="",i=0;i<s.length;i++)"selected"==jQuery(s[i]).attr("selected")&&(r+="."+jQuery(s[i]).val());""!=(r=r.substr(1))&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"t":jQuery("#wppa-ss-phototext-"+p).css("display","");var i;s=jQuery(".wppa-ss-phototext-"+p);for(r="",i=0;i<s.length;i++)"selected"==jQuery(s[i]).attr("selected")&&(r+="."+jQuery(s[i]).val());""!=(r=r.substr(1))&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"i":jQuery("#wppa-ss-photoiptc-"+p).css("display",""),(o=jQuery("#wppa-ss-photoiptc-"+p).val())&&(2<o.length&&(o=o.replace("#","H")),""!=o&&(jQuery("#wppa-ss-iptcopts-"+p).css("display",""),wppaLastIptc!=o?(wppaAjaxGetSsIptcList(p,o,"wppa-ss-iptcopts-"+p),wppaLastIptc=o):null!=(r=jQuery("#wppa-ss-iptcopts-"+p).val())&&""!=r&&jQuery("#wppa-ss-button-"+p).css("display","")));break;case"e":jQuery("#wppa-ss-photoexif-"+p).css("display",""),(o=jQuery("#wppa-ss-photoexif-"+p).val())&&(2<o.length&&(o=o.replace("#","H")),""!=o&&(jQuery("#wppa-ss-exifopts-"+p).css("display",""),wppaLastExif!=o?(wppaAjaxGetSsExifList(p,o,"wppa-ss-exifopts-"+p),wppaLastExif=o):null!=(r=jQuery("#wppa-ss-exifopts-"+p).val())&&""!=r&&jQuery("#wppa-ss-button-"+p).css("display","")))}}if(a){var n=jQuery("#wppa-ss-pageurl-"+p).val();-1==n.indexOf("?")?n+="?":n+="&",n+="occur=1&wppa-supersearch="+e+","+t+","+o+","+r,document.location.href=n}}function wppaAjaxGetSsIptcList(t,p,o){jQuery.ajax({url:wppaAjaxUrl,data:"action=wppa&wppa-action=getssiptclist&tag="+p+"&moccur="+t,async:!0,type:"GET",timeout:1e4,beforeSend:function(p){jQuery("#wppa-ss-spinner-"+t).css("display","")},success:function(p,a,e){jQuery("#"+o).html(p),jQuery("#wppa-ss-iptcopts-"+t).css("display",""),wppaSuperSearchSelect(t),setTimeout('wppaSetIptcExifSize( ".wppa-iptclist-'+t+'", "#'+o+'" )',10)},error:function(p,a,e){wppaConsoleLog("wppaAjaxGetSsIptcList failed. Error = "+e+", status = "+a,"force")},complete:function(p,a,e){jQuery("#wppa-ss-spinner-"+t).css("display","none")}})}function wppaAjaxGetSsExifList(t,p,o){jQuery.ajax({url:wppaAjaxUrl,data:"action=wppa&wppa-action=getssexiflist&tag="+p+"&moccur="+t,async:!0,type:"GET",timeout:1e4,beforeSend:function(p){jQuery("#wppa-ss-spinner-"+t).css("display","")},success:function(p,a,e){jQuery("#"+o).html(p),jQuery("#wppa-ss-exifopts-"+t).css("display",""),wppaSuperSearchSelect(t),setTimeout('wppaSetIptcExifSize( ".wppa-exiflist-'+t+'", "#'+o+'" )',10)},error:function(p,a,e){wppaConsoleLog("wppaAjaxGetSsExifList failed. Error = "+e+", status = "+a,"force")},complete:function(p,a,e){jQuery("#wppa-ss-spinner-"+t).css("display","none")}})}function wppaSetIptcExifSize(p,a){var e=jQuery(p).length;6<e&&(e=6),e<2&&(e=2),jQuery(a).attr("size",e)}function wppaUpdateSearchRoot(p,a){for(var e=jQuery(".wppa-search-root"),t=0;t<e.length;)jQuery(e[t]).html(p),t++;for(e=jQuery(".wppa-rootbox"),t=0;t<e.length;)a?(jQuery(e[t]).prop("checked",!1),jQuery(e[t]).prop("disabled",!1)):(jQuery(e[t]).prop("checked",!0),jQuery(e[t]).prop("disabled",!0)),t++;for(e=jQuery(".wppa-search-root-id"),t=0;t<e.length;)jQuery(e[t]).val(a),t++}function wppaSubboxChange(p){jQuery(p).prop("checked")&&jQuery(".wppa-rootbox").each(function(p){jQuery(this).prop("checked",!0)})}function wppaClearSubsearch(){for(var p=jQuery(".wppa-display-searchstring"),a=0;a<p.length;)jQuery(p[a]).html(""),a++;for(p=jQuery(".wppa-search-sub-box"),a=0;a<p.length;)jQuery(p[a]).attr("disabled","disabled"),a++}function wppaEnableSubsearch(){for(var p=jQuery(".wppa-search-sub-box"),a=0;a<p.length;)jQuery(p[a]).removeAttr("disabled"),a++}function wppaDisplaySelectedFiles(p){for(var a=jQuery("#"+p),e=0,t="";e<a[0].files.length;)t+=a[0].files[e].name+" ",e++;jQuery("#"+p+"-display").val(t)}function wppaIsEmpty(p){return null==p||(void 0===p||(""==p||(0==p||(0==p||void 0))))}function wppaGetUploadOptions(yalb,mocc,where,onComplete){var options={beforeSend:function(){jQuery("#progress-"+yalb+"-"+mocc).show(),jQuery("#bar-"+yalb+"-"+mocc).width("0%"),jQuery("#message-"+yalb+"-"+mocc).html(""),jQuery("#percent-"+yalb+"-"+mocc).html("")},uploadProgress:function(p,a,e,t){jQuery("#bar-"+yalb+"-"+mocc).css("backgroundColor","#7F7"),jQuery("#bar-"+yalb+"-"+mocc).width(t+"%"),t<95?jQuery("#percent-"+yalb+"-"+mocc).html(t+"%"):jQuery("#percent-"+yalb+"-"+mocc).html(wppaProcessing)},success:function(){jQuery("#bar-"+yalb+"-"+mocc).width("100%"),jQuery("#percent-"+yalb+"-"+mocc).html(wppaDone),jQuery(".wppa-upload-button").val(wppaUploadButtonText)},complete:function(response){-1!=response.responseText.indexOf(wppaUploadFailed)?(jQuery("#bar-"+yalb+"-"+mocc).css("backgroundColor","#F77"),jQuery("#percent-"+yalb+"-"+mocc).html(wppaUploadFailed),jQuery("#message-"+yalb+"-"+mocc).html('<span style="font-size: 10px;" >'+response.responseText+"</span>")):(jQuery("#message-"+yalb+"-"+mocc).html('<span style="font-size: 10px;" >'+response.responseText+"</span>"),"thumb"!=where&&"cover"!=where||eval(onComplete))},error:function(){jQuery("#message-"+yalb+"-"+mocc).html('<span style="color: red;" >'+wppaServerError+"</span>"),jQuery("#bar-"+yalb+"-"+mocc).css("backgroundColor","#F77"),jQuery("#percent-"+yalb+"-"+mocc).html(wppaUploadFailed)}};return options}wppaConsoleLog("wppa.js version "+wppaJsVersion+" loaded.","force");
1
+ var wppaJsVersion="7.1.06",wppaVersion="0",wppaIsIe=!1,wppaUseSvg=!0,wppaDebug,wppaFullValign=[],wppaFullHalign=[],wppaFullFrameDelta=[],wppaAnimationSpeed,wppaImageDirectory,wppaThumbnailAreaDelta;if(!wppaAutoColumnWidth)var wppaAutoColumnWidth=[];if(!wppaAutoColumnFrac)var wppaAutoColumnFrac=[];var wppaSlideShowTimeOut=2500,wppaFadeInAfterFadeOut=!1,wppaTextFrameDelta=0,wppaBoxDelta=0,wppaPreambule=[],wppaHideWhenEmpty=!1,wppaThumbnailPitch=[],wppaFilmStripLength=[],wppaFilmStripMargin=[],wppaFilmStripAreaDelta=[],wppaFilmShowGlue=!1,wppaIsMini=[],wppaPortraitOnly=[],wppaSlideShow,wppaPhoto,wppaOf,wppaNextPhoto,wppaPreviousPhoto,wppaNextP,wppaPrevP,wppaAvgRating,wppaMyRating,wppaAvgRat,wppaMyRat,wppaDislikeMsg,wppaMiniTreshold=300,wppaStart="Start",wppaStop="Stop",wppaPleaseName,wppaPleaseEmail,wppaPleaseComment,wppaRatingOnce=!0,wppaBGcolorNumbar="transparent",wppaBcolorNumbar="transparent",wppaBGcolorNumbarActive="transparent",wppaBcolorNumbarActive="transparent",wppaFontFamilyNumbar="",wppaFontSizeNumbar="",wppaFontColorNumbar="",wppaFontWeightNumbar="",wppaFontFamilyNumbarActive="",wppaFontSizeNumbarActive="",wppaFontColorNumbarActive="",wppaFontWeightNumbarActive="",wppaNumbarMax="10",wppaAjaxUrl="",wppaLang="",wppaNextOnCallback=!1,wppaStarOpacity=.2,wppaLightBox=[],wppaEmailRequired="required",wppaSlideBorderWidth=0,wppaSlideInitRunning=[],wppaAnimationType="fadeover",wppaSlidePause=[],wppaSlideBlank=[],wppaRatingMax=5,wppaRatingDisplayType="graphic",wppaRatingPrec=2,wppaFilmPageSize=[],wppaAspectRatio=[],wppaFullSize=[],wppaStretch=!1,wppaThumbSpaceAuto=!1,wppaMinThumbSpace=4,wppaMagnifierCursor="",wppaArtMonkyLink="none",wppaAutoOpenComments=!1,wppaUpdateAddressLine=!1,wppaFilmThumbTitle="",wppaClickToView="",wppaUploadUrl="",wppaVoteForMe="",wppaVotedForMe="",wppaSlideSwipe=!0,wppaLightboxSingle=[],wppaMaxCoverWidth=300,wppaDownLoad="Download",wppaSiteUrl="",wppaWppaUrl="",wppaIncludeUrl="",wppaSlideToFullpopup=!1,wppaComAltSize=75,wppaBumpViewCount=!0,wppaBumpClickCount=!1,wppaFotomoto=!1,wppaArtMonkeyButton=!0,wppaShortQargs=!1,wppaOvlHires=!1,wppaMasonryCols=[],wppaVideoPlaying=[],wppaAudioPlaying=[],wppaSlideVideoStart=!1,wppaSlideAudioStart=!1,wppaAudioHeight=28,wppaHis=0,wppaStartHtml=[],wppaCanAjaxRender=!1,wppaCanPushState=!1,wppaAllowAjax=!0,wppaMaxOccur=0,wppaFirstOccur=0,wppaUsePhotoNamesInUrls=!1,wppaShareHideWhenRunning=!1,wppaCommentRequiredAfterVote=!0,wppaTopMoc=0;if(!wppaColWidth)var wppaColWidth=[];if(!wppaMCRWidth)var wppaMCRWidth=[];var wppaFotomotoHideWhenRunning=!1,wppaFotomotoMinWidth=400,wppaPhotoView=[],wppaBackgroundColorImage="",wppaPopupLinkType="",wppaPopupOnclick=[],wppaThumbTargetBlank=!1,wppaRel="rel",wppaEditPhotoWidth="960",wppaThemeStyles="",wppaStickyHeaderHeight=0,wppaRenderModal=!1,wppaModalBgColor="#ffffff",wppaBoxRadius=0,wppaModalQuitImg,wppaUploadEdit="none",wppaPageArg="",wppaSlideshowNavigationType="icons",wppaCoverImageResponsive=[],wppaSearchBoxSelItems=[],wppaSlideWrap=[],wppaHideRightClick=!1,wppaProcessing="Processing...",wppaDone="Done!",wppaUploadFailed="Upload failed",wppaServerError="Server error",wppaGeoZoom=10,wppaLazyLoad=!0,wppaAreaMaxFrac=1,wppaNiceScroll=!1,wppaIconSizeNormal="default",wppaIconSizeSlide=48,wppaIconSizeStars=24,wppaResponseSpeed=500,wppaExtendedResizeCount=0,wppaExtendedResizeDelay=200,_wppaId=[],_wppaAvg=[],_wppaDisc=[],_wppaMyr=[],_wppaVRU=[],_wppaLinkUrl=[],_wppaLinkTitle=[],_wppaLinkTarget=[],_wppaCommentHtml=[],_wppaIptcHtml=[],_wppaExifHtml=[],_wppaToTheSame=!1,_wppaSlides=[],_wppaNames=[],_wppaFullNames=[],_wppaDsc=[],_wppaOgDsc=[],_wppaCurIdx=[],_wppaNxtIdx=[],_wppaTimeOut=[],_wppaSSRuns=[],_wppaFg=[],_wppaTP=[],_wppaIsBusy=[],_wppaFirst=[],_wppaVoteInProgress=!1,_wppaTextDelay,_wppaUrl=[],_wppaSkipRated=[],_wppaLbTitle=[],_wppaStateCount=0,_wppaDidGoto=[],_wppaShareUrl=[],_wppaShareHtml=[],_wppaFilmNoMove=[],_wppaHiresUrl=[],_wppaIsVideo=[],_wppaVideoHtml=[],_wppaAudioHtml=[],_wppaVideoNatWidth=[],_wppaVideoNatHeight=[],_wppaWaitTexts=[],_wppaImageAlt=[],__wppaOverruleRun=!1,wppaOvlUrls,wppaOvlTitles,wppaOvlAlts,wppaOvlIdx=0,wppaOvlFirst=!0,wppaOvlKbHandler="",wppaOvlSizeHandler="",wppaOvlPadTop=5,wppaOvlIsSingle,wppaOvlRunning=!1,wppaOvlVideoHtmls,wppaOvlAudioHtmls,wppaOvlPdfHtmls,wppaOvlVideoNaturalWidths,wppaOvlVideoNaturalHeights,wppaOvlModeInitial="normal",wppaOvlVideoPlaying=!1,wppaOvlAudioPlaying=!1,wppaOvlShowLegenda=!0,wppaOvlShowStartStop=!0,wppaOvlRadius=0,wppaOvlBorderWidth=16,wppaOvlOpen=!1,wppaOvlTxtHeight=36,wppaOvlOpacity=.8,wppaOvlOnclickType="none",wppaOvlTheme="black",wppaOvlAnimSpeed=300,wppaOvlSlideSpeed=3e3,wppaVer4WindowWidth=800,wppaVer4WindowHeight=600,wppaOvlFontFamily="Helvetica",wppaOvlFontSize="10",wppaOvlFontColor="",wppaOvlFontWeight="bold",wppaOvlLineHeight="12",wppaOvlShowCounter=!0,wppaOvlIsVideo=!1,wppaShowLegenda="",wppaOvlFsPhotoId=0,wppaPhotoId=0,wppaOvlVideoStart=!1,wppaOvlAudioStart=!1,wppaLastIptc="",wppaLastExif="",wppaIsMobile=!1,wppaSvgFillcolor="gray",wppaSvgBgcolor="transparent",wppaSvgCornerStyle="light";function wppaDoInit(){_wppaTextDelay=wppaAnimationSpeed,wppaFadeInAfterFadeOut&&(_wppaTextDelay*=2),jQuery(".wppa-ajax-spin").stop().fadeOut(),jQuery(".wppa-ovl-spin").hide(),setTimeout(function(){for(var p=1;p<wppaTopMoc;)jQuery("#ubb-"+p+"-l")&&(wppaUbb(p,"l","hide"),wppaUbb(p,"r","hide")),p++},3e3),jQuery(window).on("DOMContentLoaded load resize orientationchange",wppaDoAllAutocols),jQuery(window).on("DOMContentLoaded load resize scroll wheel",wppaSizeArea),jQuery(window).on("DOMContentLoaded load resize scroll wheel",wppaMakeLazyVisible),jQuery(".wppa-divnicewrap").on("resize scroll wheel",wppaMakeLazyVisible),jQuery(window).trigger("resize"),wppaProtect()}function wppaSizeAutoDiv(){jQuery(".wppa-autodiv").each(function(p){var a=jQuery(window).height(),e=jQuery(this).attr("data-max-height");jQuery(this).css({maxHeight:a*e})})}jQuery(document).ready(function(){wppaDoInit()}),jQuery(document).ready(function(){jQuery(window).on("DOMContentLoaded load resize scroll",wppaSizeAutoDiv)});var wppaDoAllAutocolsLastI=0;function wppaDoAllAutocols(p){if("number"!=typeof p?p=1:p++,!(p<=wppaDoAllAutocolsLastI)){wppaDoAllAutocolsLastI=p,wppaConsoleLog("Doing wppaDoAllAutocols("+p+")");for(var a=1;a<=wppaAutoColumnWidth.length;)wppaAutoColumnWidth[a]&&_wppaDoAutocol(a,p),a++;return wppaMakeLazyVisible(),(p<wppaExtendedResizeCount||-1==wppaExtendedResizeCount)&&setTimeout(function(){wppaDoAllAutocols(p)},wppaExtendedResizeDelay),!0}wppaDoAllAutocolsLastI=0}function wppaProtect(){wppaHideRightClick&&(jQuery("img").bind("contextmenu",function(p){return!1}),jQuery("video").bind("contextmenu",function(p){return!1}))}function wppaUpdateLightboxes(){"function"==typeof wppaInitOverlay&&wppaInitOverlay(),"undefined"!=typeof myLightbox&&"function"==typeof myLightbox.updateImageList&&myLightbox.updateImageList(),jQuery().prettyPhoto&&jQuery("a[rel^='prettyPhoto']").prettyPhoto({deeplinking:!1})}function wppaStopVideo(p){var a,e,t=[];for(t[1]="wppa-overlay-img",t[2]="theimg0-"+p,t[3]="theimg1-"+p,e=0;e<3;)1==++e&&0!=p||(a=document.getElementById(t[e]))&&"function"==typeof a.pause&&(a.pause(),wppaConsoleLog("Video "+t[e]+" paused","force"))}function wppaStopAudio(p){if("number"==typeof p)jQuery("#audio-"+p).pause&&jQuery("#audio-"+p).pause();else{var a=jQuery("audio");if(0<a.length)for(var e=0;e<a.length;)"wppa"==jQuery(a[e]).attr("data-from")&&a[e].pause(),e++}}function wppaMakeFullsizeUrl(p){var a,e;p=(a=(p=p.replace("/thumbs/","/")).split("//"))[1]?(e=a[1].split("/"),a[0]+"//"):(e=a[0].split("/"),"");for(var t=0;t<e.length;){var o=e[t];"w"!=o.split("_")[0]&&(0!=t&&(p+="/"),p+=o),t++}return p}function wppaGetContainerWidth(p){var a=document.getElementById("wppa-container-"+p),e=0;if(!wppaAutoColumnWidth[p])return a.clientWidth;for(;0==e;)a=a.parentNode,e=jQuery(a).width();return parseInt(e*wppaAutoColumnFrac[p])}function _wppaDoAutocol(p,a){if(wppaConsoleLog("Enter auto. mocc = "+p+" retry = "+a),!wppaAutoColumnWidth[p])return!0;var e,t;if(e=jQuery("#wppa-container-"+p).width(),wppaCoverImageResponsive[p]||1<(t=jQuery(".wppa-asym-text-frame-"+p)).length&&(jQuery(t[0]).width(),0==wppaResponseSpeed?(jQuery(".wppa-asym-text-frame-"+p).css({width:e-wppaTextFrameDelta}),jQuery(".wppa-cover-box-"+p).css({width:e})):(jQuery(".wppa-asym-text-frame-"+p).stop().animate({width:e-wppaTextFrameDelta},wppaResponseSpeed),jQuery(".wppa-cover-box-"+p).stop().animate({width:e},wppaResponseSpeed))),1<(t=jQuery(".wppa-cover-box-mcr-"+p)).length){var o=document.getElementById("wppa-albumlist-"+p).clientWidth,r=parseInt((o+8)/(wppaMaxCoverWidth+8))+1,s=r-1,i=parseInt((o+8)/r-8);if(wppaColWidth[p]!=o||wppaMCRWidth[p]!=i){wppaColWidth[p]=o,wppaMCRWidth[p]=i;for(var n=0;n<t.length;){switch(n%r){case 0:jQuery(t[n]).css({marginLeft:"0px",clear:"both",float:"left"});break;case s:jQuery(t[n]).css({marginLeft:"0px",clear:"none",float:"right"});break;default:jQuery(t[n]).css({marginLeft:"8px",clear:"none",float:"left"})}n++}wppaCoverImageResponsive[p]||jQuery(".wppa-asym-text-frame-mcr-"+p).stop().animate({width:i-wppaTextFrameDelta},wppaResponseSpeed),jQuery(t[0]).width(),jQuery(".wppa-cover-box-mcr-"+p).stop().animate({width:i},wppaResponseSpeed)}}else if(1==t.length)if(wppaCoverImageResponsive[p]);else{jQuery(".wppa-asym-text-frame-mcr-"+p).stop().animate({width:e-wppaTextFrameDelta},wppaResponseSpeed);jQuery(".wppa-cover-box-mcr-"+p).css({marginLeft:"0px",float:"left"})}if(wppaThumbSpaceAuto){var w=parseInt(jQuery(".thumbnail-frame-"+p).css("width"));if(w){var l=wppaMinThumbSpace,u=e-wppaThumbnailAreaDelta-7,c=Math.max(1,parseInt(u/(w+l))),d=parseInt(.5+(u-c*w)/(c+1));jQuery(".thumbnail-frame-"+p).css({marginLeft:d})}}jQuery(".thumbnail-frame-comalt-"+p).css("width",e-wppaThumbnailAreaDelta),jQuery(".wppa-com-alt-"+p).css("width",e-wppaThumbnailAreaDelta-wppaComAltSize-16);for(var y,m=1,h=jQuery("#wppa-mas-h-"+m+"-"+p).attr("data-height-perc");h;)y=h*(e-wppaThumbnailAreaDelta)/100,jQuery("#wppa-mas-h-"+m+"-"+p).css("height",y),m++,h=jQuery("#wppa-mas-h-"+m+"-"+p).attr("data-height-perc");return wppaSetMasHorFrameWidthsForIeAndChrome(p),wppaFormatSlide(p),jQuery("#audio-slide-"+p).css("width",e-wppaBoxDelta-6),jQuery(".wppa-comment-textarea-"+p).css("width",.7*e),wppaFilmStripLength[p]=e-wppaFilmStripAreaDelta[p],jQuery("#filmwindow-"+p).css("width",wppaFilmStripLength[p]),_wppaAdjustFilmstrip(p),wppaIsMini[p]||void 0===_wppaSlides[p]||(wppaColWidth[p]<wppaMiniTreshold?(jQuery("#wppa-avg-rat-"+p).html(wppaAvgRat),jQuery("#wppa-my-rat-"+p).html(wppaMyRat),jQuery("#counter-"+p).html(_wppaCurIdx[p]+1+" / "+_wppaSlides[p].length)):(jQuery("#wppa-avg-rat-"+p).html(wppaAvgRating),jQuery("#wppa-my-rat-"+p).html(wppaMyRating),jQuery("#counter-"+p).html(wppaPhoto+" "+(_wppaCurIdx[p]+1)+" "+wppaOf+" "+_wppaSlides[p].length))),jQuery(".wppa-sphoto-"+p).css("width",e),jQuery(".wppa-simg-"+p).css("width",e-2*wppaSlideBorderWidth),jQuery(".wppa-simg-"+p).css("height",""),jQuery(".wppa-mphoto-"+p).css("width",e+10),jQuery(".wppa-mimg-"+p).css("width",e),jQuery(".wppa-mimg-"+p).css("height",""),jQuery(".smxpdf-"+p).css("height",.8*wppaWindowHeight()),0<wppaSearchBoxSelItems[p]&&(e/wppaSearchBoxSelItems[p]<125?jQuery(".wppa-searchsel-item-"+p).css("width","100%"):jQuery(".wppa-searchsel-item-"+p).css("width",100/wppaSearchBoxSelItems[p]+"%")),jQuery(".wppa-upload-album-"+p).css("maxWidth",.6*e),!0}function wppaSetMasHorFrameWidthsForIeAndChrome(p){for(var a=jQuery(".wppa-mas-h-"+p),e=wppaMinThumbSpace,t=0;t<a.length;t++){var o=wppaGetChildI(a[t]);if(o){if("IMG"==o.nodeName&&!o.complete)return void setTimeout("wppaSetMasHorFrameWidthsForIeAndChrome( "+p+" )",400);var r=o.naturalWidth/o.naturalHeight*o.height+e;jQuery(a[t]).css({width:r})}}}function wppaGetChildI(p){var a,e=p.childNodes;for(a=0;a<e.length;a++){var t=e[a];if(t.id&&"i-"==t.id.substr(0,2))return t;var o=wppaGetChildI(t);if(o)return o}return!1}jQuery(document).ready(function(p){if(wppaAllowAjax&&jQuery.ajax&&(wppaCanAjaxRender=!0),void 0!==history.pushState){for(var a=1;a<=wppaMaxOccur;)wppaStartHtml[a]=jQuery("#wppa-container-"+a).html(),a++;wppaCanPushState=!0}});var wppaFotomotoLoaded=!1,wppaFotomotoToolbarIds=[];function fotomoto_loaded(){wppaFotomotoLoaded=!0}function wppaFotomotoToolbar(p,a){if(!(wppaColWidth[p]>=wppaFotomotoMinWidth))return jQuery("#wppa-fotomoto-container-"+p).css("display","none"),void jQuery("#wppa-fotomoto-checkout-"+p).css("display","none");jQuery("#wppa-fotomoto-container-"+p).css("display","inline"),jQuery("#wppa-fotomoto-checkout-"+p).css("display","inline"),wppaFotomoto&&document.getElementById("wppa-fotomoto-container-"+p)&&(wppaFotomotoLoaded?(FOTOMOTO.API.checkinImage(a),wppaFotomotoToolbarIds[p]=FOTOMOTO.API.showToolbar("wppa-fotomoto-container-"+p,a)):(setTimeout("wppaFotomotoToolbar( "+p+',"'+a+'" )',200),wppaConsoleLog("Waiting for Fotomoto")))}function wppaFotomotoHide(p){jQuery("#wppa-fotomoto-container-"+p).css("display","none"),jQuery("#wppa-fotomoto-checkout-"+p).css("display","none")}function wppaStringContainsForbiddenChars(p){for(var a=["?","&","#","/",'"',"'"],e=0;e<a.length;){if(-1!=p.indexOf(a[e]))return!0;e++}return!1}function wppaPushStateSlide(p,a,e){if(!wppaIsMini[p]&&wppaCanPushState&&wppaUpdateAddressLine&&""!=e)try{history.pushState({page:wppaHis,occur:p,type:"slide",slide:a},"---",e),wppaConsoleLog("Slide history stack updated")}catch(p){wppaConsoleLog("Slide history stack update failed")}}function wppaRepairScriptTags(p){if(void 0===p)return"";for(;-1!=p.indexOf("[script");)p=p.replace("[script","<script");for(;-1!=p.indexOf("[/script");)p=p.replace("[/script","</script");return p}function wppaRepairBrTags(p){return void 0===p?"":p.replace("[br /]","<br />").replace("[a","<a").replace("&quot;",'"').replace('"]','">').replace("[/a]","</a>")}function wppaTrimAlt(p){return void 0===p?"":13<p.length?p.substr(0,10)+"...":p}window.onpopstate=function(p){var a=0;if(wppaCanPushState){if(p.state)switch(a=p.state.occur,p.state.type){case"html":jQuery("#wppa-container-"+a).html(p.state.html);break;case"slide":_wppaGoto(a,p.state.slide)}else if(wppaUpdateAddressLine){if(a=wppaFirstOccur,jQuery("#wppa-container-"+a).html(wppaStartHtml[a]),(wppaFirstOccur=0)==a){var e=document.location.href.split("&wppa-occur=");a=parseInt(e[1])}e=document.location.href.split("&wppa-photo=");var t=parseInt(e[1]);if(0<t){for(var o=0;o<_wppaId[a].length&&_wppaId[a][o]!=t;)o++;o<_wppaId[a].length&&_wppaGoto(a,o)}}document.getElementById("theslide0-"+a)&&_wppaStop(a)}"undefined"!=typeof wppaQRUpdate&&wppaQRUpdate(document.location.href)};var wppaFbInitBusy=!1;function wppaFbInit(){wppaFbInitBusy?wppaConsoleLog("Fb Init busy"):"undefined"!=typeof FB?(wppaFbInitBusy=!0,setTimeout("_wppaFbInit()",10)):(wppaConsoleLog("Fb wait"),setTimeout("wppaFbInit()",200))}function _wppaFbInit(){FB.init({status:!0,xfbml:!0}),wppaFbInitBusy=!1}function wppaInsertAtCursor(p,a){if(document.selection)p.focus(),sel=document.selection.createRange(),sel.text=a;else if(p.selectionStart||"0"==p.selectionStart){var e=p.selectionStart,t=p.selectionEnd;p.value=p.value.substring(0,e)+a+p.value.substring(t,p.value.length),p.selectionStart=e+a.length,p.selectionEnd=e+a.length}else p.value+=a}function wppaGeoInit(p,a,e){var t=new google.maps.LatLng(a,e),o={disableDefaultUI:!1,panControl:!1,zoomControl:!0,mapTypeControl:!0,scaleControl:!0,streetViewControl:!0,overviewMapControl:!0,zoom:wppaGeoZoom,center:t},r=new google.maps.Map(document.getElementById("map-canvas-"+p),o),s=new google.maps.Marker({position:t,map:r,title:""});google.maps.event.addListener(r,"center_changed",function(){window.setTimeout(function(){r.panTo(s.getPosition())},1e3)})}function wppaEncode(p){var a;if(void 0!==p){var e=(a=(a=String(p).replace(/#/g,"||HASH||")).replace(/&/g,"||AMP||")).split("+"),t=0;for(a="";t<e.length;)a+=e[t],++t<e.length&&(a+="||PLUS||");return a}}function wppaUrlToId(p){var a=p.split("/wppa/");return 1==a.length&&(a=p.split("/upload/")),1==a.length?0:a=(a=(a=(a=(a=(a=(a=a[1]).split("."))[0].replace("/","")).replace("/","")).replace("/","")).replace("/","")).replace("/","")}function wppaSuperSearchSelect(p,a){jQuery("#wppa-ss-albumopt-"+p).css("display","none"),jQuery("#wppa-ss-albumcat-"+p).css("display","none"),jQuery("#wppa-ss-albumname-"+p).css("display","none"),jQuery("#wppa-ss-albumtext-"+p).css("display","none"),jQuery("#wppa-ss-photoopt-"+p).css("display","none"),jQuery("#wppa-ss-photoname-"+p).css("display","none"),jQuery("#wppa-ss-photoowner-"+p).css("display","none"),jQuery("#wppa-ss-phototag-"+p).css("display","none"),jQuery("#wppa-ss-phototext-"+p).css("display","none"),jQuery("#wppa-ss-photoexif-"+p).css("display","none"),jQuery("#wppa-ss-photoiptc-"+p).css("display","none"),jQuery("#wppa-ss-exifopts-"+p).css("display","none"),jQuery("#wppa-ss-iptcopts-"+p).css("display","none"),jQuery("#wppa-ss-spinner-"+p).css("display","none"),jQuery("#wppa-ss-button-"+p).css("display","none");var e=jQuery("#wppa-ss-pa-"+p).val(),t="",o="",r="";switch(e){case"a":switch(jQuery("#wppa-ss-albumopt-"+p).css("display",""),t=jQuery("#wppa-ss-albumopt-"+p).val()){case"c":jQuery("#wppa-ss-albumcat-"+p).css("display","");var s=jQuery(".wppa-ss-albumcat-"+p);for(r="",i=0;i<s.length;i++)"selected"==jQuery(s[i]).attr("selected")&&(r+="."+jQuery(s[i]).val());""!=(r=r.substr(1))&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"n":jQuery("#wppa-ss-albumname-"+p).css("display",""),null!=(r=jQuery("#wppa-ss-albumname-"+p).val())&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"t":jQuery("#wppa-ss-albumtext-"+p).css("display","");s=jQuery(".wppa-ss-albumtext-"+p);for(r="",i=0;i<s.length;i++)"selected"==jQuery(s[i]).attr("selected")&&(r+="."+jQuery(s[i]).val());""!=(r=r.substr(1))&&jQuery("#wppa-ss-button-"+p).css("display","")}break;case"p":switch(jQuery("#wppa-ss-photoopt-"+p).css("display",""),t=jQuery("#wppa-ss-photoopt-"+p).val()){case"n":jQuery("#wppa-ss-photoname-"+p).css("display",""),null!=(r=jQuery("#wppa-ss-photoname-"+p).val())&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"o":jQuery("#wppa-ss-photoowner-"+p).css("display",""),null!=(r=jQuery("#wppa-ss-photoowner-"+p).val())&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"g":jQuery("#wppa-ss-phototag-"+p).css("display","");s=jQuery(".wppa-ss-phototag-"+p);for(r="",i=0;i<s.length;i++)"selected"==jQuery(s[i]).attr("selected")&&(r+="."+jQuery(s[i]).val());""!=(r=r.substr(1))&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"t":jQuery("#wppa-ss-phototext-"+p).css("display","");var i;s=jQuery(".wppa-ss-phototext-"+p);for(r="",i=0;i<s.length;i++)"selected"==jQuery(s[i]).attr("selected")&&(r+="."+jQuery(s[i]).val());""!=(r=r.substr(1))&&jQuery("#wppa-ss-button-"+p).css("display","");break;case"i":jQuery("#wppa-ss-photoiptc-"+p).css("display",""),(o=jQuery("#wppa-ss-photoiptc-"+p).val())&&(2<o.length&&(o=o.replace("#","H")),""!=o&&(jQuery("#wppa-ss-iptcopts-"+p).css("display",""),wppaLastIptc!=o?(wppaAjaxGetSsIptcList(p,o,"wppa-ss-iptcopts-"+p),wppaLastIptc=o):null!=(r=jQuery("#wppa-ss-iptcopts-"+p).val())&&""!=r&&jQuery("#wppa-ss-button-"+p).css("display","")));break;case"e":jQuery("#wppa-ss-photoexif-"+p).css("display",""),(o=jQuery("#wppa-ss-photoexif-"+p).val())&&(2<o.length&&(o=o.replace("#","H")),""!=o&&(jQuery("#wppa-ss-exifopts-"+p).css("display",""),wppaLastExif!=o?(wppaAjaxGetSsExifList(p,o,"wppa-ss-exifopts-"+p),wppaLastExif=o):null!=(r=jQuery("#wppa-ss-exifopts-"+p).val())&&""!=r&&jQuery("#wppa-ss-button-"+p).css("display","")))}}if(a){var n=jQuery("#wppa-ss-pageurl-"+p).val();-1==n.indexOf("?")?n+="?":n+="&",n+="occur=1&wppa-supersearch="+e+","+t+","+o+","+r,document.location.href=n}}function wppaAjaxGetSsIptcList(t,p,o){jQuery.ajax({url:wppaAjaxUrl,data:"action=wppa&wppa-action=getssiptclist&tag="+p+"&moccur="+t,async:!0,type:"GET",timeout:1e4,beforeSend:function(p){jQuery("#wppa-ss-spinner-"+t).css("display","")},success:function(p,a,e){jQuery("#"+o).html(p),jQuery("#wppa-ss-iptcopts-"+t).css("display",""),wppaSuperSearchSelect(t),setTimeout('wppaSetIptcExifSize( ".wppa-iptclist-'+t+'", "#'+o+'" )',10)},error:function(p,a,e){wppaConsoleLog("wppaAjaxGetSsIptcList failed. Error = "+e+", status = "+a,"force")},complete:function(p,a,e){jQuery("#wppa-ss-spinner-"+t).css("display","none")}})}function wppaAjaxGetSsExifList(t,p,o){jQuery.ajax({url:wppaAjaxUrl,data:"action=wppa&wppa-action=getssexiflist&tag="+p+"&moccur="+t,async:!0,type:"GET",timeout:1e4,beforeSend:function(p){jQuery("#wppa-ss-spinner-"+t).css("display","")},success:function(p,a,e){jQuery("#"+o).html(p),jQuery("#wppa-ss-exifopts-"+t).css("display",""),wppaSuperSearchSelect(t),setTimeout('wppaSetIptcExifSize( ".wppa-exiflist-'+t+'", "#'+o+'" )',10)},error:function(p,a,e){wppaConsoleLog("wppaAjaxGetSsExifList failed. Error = "+e+", status = "+a,"force")},complete:function(p,a,e){jQuery("#wppa-ss-spinner-"+t).css("display","none")}})}function wppaSetIptcExifSize(p,a){var e=jQuery(p).length;6<e&&(e=6),e<2&&(e=2),jQuery(a).attr("size",e)}function wppaUpdateSearchRoot(p,a){for(var e=jQuery(".wppa-search-root"),t=0;t<e.length;)jQuery(e[t]).html(p),t++;for(e=jQuery(".wppa-rootbox"),t=0;t<e.length;)a?(jQuery(e[t]).prop("checked",!1),jQuery(e[t]).prop("disabled",!1)):(jQuery(e[t]).prop("checked",!0),jQuery(e[t]).prop("disabled",!0)),t++;for(e=jQuery(".wppa-search-root-id"),t=0;t<e.length;)jQuery(e[t]).val(a),t++}function wppaSubboxChange(p){jQuery(p).prop("checked")&&jQuery(".wppa-rootbox").each(function(p){jQuery(this).prop("checked",!0)})}function wppaClearSubsearch(){for(var p=jQuery(".wppa-display-searchstring"),a=0;a<p.length;)jQuery(p[a]).html(""),a++;for(p=jQuery(".wppa-search-sub-box"),a=0;a<p.length;)jQuery(p[a]).attr("disabled","disabled"),a++}function wppaEnableSubsearch(){for(var p=jQuery(".wppa-search-sub-box"),a=0;a<p.length;)jQuery(p[a]).removeAttr("disabled"),a++}function wppaDisplaySelectedFiles(p){for(var a=jQuery("#"+p),e=0,t="";e<a[0].files.length;)t+=a[0].files[e].name+" ",e++;jQuery("#"+p+"-display").val(t)}function wppaIsEmpty(p){return null==p||(void 0===p||(""==p||(0==p||(0==p||void 0))))}function wppaGetUploadOptions(yalb,mocc,where,onComplete){var options={beforeSend:function(){jQuery("#progress-"+yalb+"-"+mocc).show(),jQuery("#bar-"+yalb+"-"+mocc).width("0%"),jQuery("#message-"+yalb+"-"+mocc).html(""),jQuery("#percent-"+yalb+"-"+mocc).html("")},uploadProgress:function(p,a,e,t){jQuery("#bar-"+yalb+"-"+mocc).css("backgroundColor","#7F7"),jQuery("#bar-"+yalb+"-"+mocc).width(t+"%"),t<95?jQuery("#percent-"+yalb+"-"+mocc).html(t+"%"):jQuery("#percent-"+yalb+"-"+mocc).html(wppaProcessing)},success:function(){jQuery("#bar-"+yalb+"-"+mocc).width("100%"),jQuery("#percent-"+yalb+"-"+mocc).html(wppaDone),jQuery(".wppa-upload-button").val(wppaUploadButtonText)},complete:function(response){-1!=response.responseText.indexOf(wppaUploadFailed)?(jQuery("#bar-"+yalb+"-"+mocc).css("backgroundColor","#F77"),jQuery("#percent-"+yalb+"-"+mocc).html(wppaUploadFailed),jQuery("#message-"+yalb+"-"+mocc).html('<span style="font-size: 10px;" >'+response.responseText+"</span>")):(jQuery("#message-"+yalb+"-"+mocc).html('<span style="font-size: 10px;" >'+response.responseText+"</span>"),"thumb"!=where&&"cover"!=where||eval(onComplete))},error:function(){jQuery("#message-"+yalb+"-"+mocc).html('<span style="color: red;" >'+wppaServerError+"</span>"),jQuery("#bar-"+yalb+"-"+mocc).css("backgroundColor","#F77"),jQuery("#percent-"+yalb+"-"+mocc).html(wppaUploadFailed)}};return options}wppaConsoleLog("wppa.js version "+wppaJsVersion+" loaded.","force");
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
Contributors: opajaap
3
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=OpaJaap@OpaJaap.nl&item_name=WP-Photo-Album-Plus&item_number=Support-Open-Source&currency_code=USD&lc=US
4
Tags: photo, album, slideshow, video, audio, lightbox, iptc, exif, cloudinary, fotomoto, imagemagick, pdf
5
- Version: 7.1.05
6
- Stable tag: 7.1.04.002
7
Author: J.N. Breetvelt
8
Author URI: http://www.opajaap.nl/
9
Requires at least: 3.9
@@ -137,6 +137,10 @@ See for the full changelog: <a href="http://www.wppa.nl/changelog/" >The documen
137
138
== Upgrade Notice ==
139
140
= 7.1.05 =
141
142
* This version addresses various security issues.
2
Contributors: opajaap
3
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=OpaJaap@OpaJaap.nl&item_name=WP-Photo-Album-Plus&item_number=Support-Open-Source&currency_code=USD&lc=US
4
Tags: photo, album, slideshow, video, audio, lightbox, iptc, exif, cloudinary, fotomoto, imagemagick, pdf
5
+ Version: 7.1.06
6
+ Stable tag: 7.1.05.006
7
Author: J.N. Breetvelt
8
Author URI: http://www.opajaap.nl/
9
Requires at least: 3.9
137
138
== Upgrade Notice ==
139
140
+ = 7.1.06 =
141
+
142
+ * This version addresses various bug fixes and feature requests.
143
+
144
= 7.1.05 =
145
146
* This version addresses various security issues.
theme/wppa-theme.php CHANGED
@@ -3,11 +3,11 @@
3
* Package: wp-photo-album-plus
4
*
5
* display the albums/photos/slideshow in a page or post
6
- * Version 6.8.00
7
*/
8
function wppa_theme() {
9
10
- global $wppa_version; $wppa_version = '6-8-00-002'; // The version number of this file
11
global $wppa;
12
global $wppa_show_statistics; // Can be set to true by a custom page template
13
@@ -16,340 +16,385 @@ global $wppa_show_statistics; // Can be set to true by a custom page templa
16
$n_album_pages = '0'; // "
17
$n_thumb_pages = '0'; // "
18
19
- // Open container
20
- wppa_container( 'open' );
21
22
- // Show statistics if set so by the page template
23
- if ( $wppa_show_statistics ) wppa_statistics();
24
25
- // Display breadcrumb navigation only if it is set in the settings page
26
- wppa_breadcrumb( 'optional' );
27
28
29
- if ( wppa_page( 'albums' ) ) { // Page 'Albums' requested
30
31
- // Init for possible alt thumbsize on masonry
32
- $counter_thumbs = '0';
33
- $is_alt_thumbsize = false;
34
- $alb_id = wppa( 'start_album' );
35
- if ( wppa_is_int( $alb_id ) && $alb_id > '0' ) {
36
- $is_alt_thumbsize = wppa_get_album_item( $alb_id, 'alt_thumbsize' ) == 'yes';
37
- }
38
39
- // Get the albums and the thumbs and the number of pages for each set
40
- $albums = wppa_get_albums(); // Get the albums
41
- $n_album_pages = wppa_get_npages( 'albums', $albums ); // Get the number of album pages
42
43
- if ( wppa_opt( 'thumbtype' ) != 'none' ) {
44
- $thumbs = wppa_get_thumbs(); // Get the Thumbs
45
- } else $thumbs = false;
46
47
- $wanted_empty = wppa_is_wanted_empty( $thumbs ); // See if we need to display an empty thumbnail area
48
49
- $n_thumb_pages = wppa_get_npages( 'thumbs', $thumbs ); // Get the number of thumb pages
50
- if ( $n_thumb_pages == '0' && ! $wanted_empty ) $thumbs = false; // No pages: no thumbs. Maybe want covers only
51
- if ( $wanted_empty ) $n_thumb_pages = '1';
52
53
- // Get total number of pages
54
- if ( ! wppa_is_pagination() ) $totpag = '1'; // If both pagination is off, there is only one page
55
- else $totpag = $n_album_pages + $n_thumb_pages;
56
57
- // Make pagelinkbar if requested on top
58
- if ( wppa_opt( 'pagelink_pos' ) == 'top' || wppa_opt( 'pagelink_pos' ) == 'both' ) {
59
- wppa_page_links( $totpag, $curpage );
60
- }
61
62
- // Process the albums
63
- if ( ! wppa_switch( 'thumbs_first' ) ) {
64
- if ( $albums ) {
65
- $counter_albums = '0';
66
- wppa_album_list( 'open' ); // Open Albums sub-container
67
- foreach ( $albums as $album ) { // Loop the albums
68
- $counter_albums++;
69
- if ( wppa_onpage( 'albums', $counter_albums, $curpage ) ) {
70
- wppa_album_cover( $album['id'] ); // Show the cover
71
$didsome = true;
72
} // End if on page
73
}
74
- wppa_album_list( 'close' ); // Close Albums sub-container
75
- } // If albums
76
- }
77
-
78
- if ( $didsome && wppa_is_pagination() ) $thumbs = false; // Pag on and didsome: force a pagebreak by faking no thumbs
79
- if ( is_array( $thumbs ) && count( $thumbs ) <= wppa_get_mincount() && ! $wanted_empty ) $thumbs = false; // Less than treshold value
80
- if ( wppa_switch( 'thumbs_first' ) && $curpage > $n_thumb_pages ) $thumbs = false; // If thumbs done, do not display an empty thumbarea
81
-
82
- // Process the thumbs
83
- if ( $thumbs || $wanted_empty )
84
- if ( ! $wanted_empty || ! wppa_switch( 'thumbs_first' ) || wppa_get_curpage() == '1' )
85
- if ( ! $wanted_empty || wppa_switch( 'thumbs_first' ) || wppa_get_curpage() == $totpag ) {
86
-
87
- // As covers
88
- if ( wppa_opt( 'thumbtype' ) == 'ascovers' ||
89
- wppa_opt( 'thumbtype' ) == 'ascovers-mcr' ) { // Do the thumbs As covers
90
- wppa_thumb_list( 'open' ); // Open Thumblist sub-container
91
- $relpage = wppa_switch( 'thumbs_first' ) ? $curpage : $curpage - $n_album_pages;
92
- foreach ( $thumbs as $tt ) : global $thumb; $thumb = $tt; // Loop the Thumbs
93
- $counter_thumbs++;
94
- if ( wppa_onpage( 'thumbs', $counter_thumbs, $relpage ) ) {
95
- $didsome = true;
96
- wppa_thumb_ascover( $thumb['id'] ); // Show Thumb as cover
97
- } // End if on page
98
- endforeach;
99
- wppa_thumb_list( 'close' ); // Close Thumblist sub-container
100
- } // As covers
101
-
102
- // Masonry vertical
103
- elseif ( wppa_opt( 'thumbtype' ) == 'masonry-v' ) { // Masonry
104
-
105
- // The header
106
- wppa_thumb_area( 'open' ); // Open Thumbarea sub-container
107
- wppa_popup(); // Prepare Popup box
108
- wppa_album_name( 'top' ); // Optionally display album name
109
- wppa_album_desc( 'top' ); // Optionally display album description
110
-
111
- // Init
112
- $relpage = wppa_switch( 'thumbs_first' ) ? $curpage : $curpage - $n_album_pages;
113
- $cont_width = wppa_get_container_width();
114
- $count_cols = ceil( $cont_width / ( wppa_opt( $is_alt_thumbsize ? 'thumbsize_alt' : 'thumbsize' ) + wppa_opt( 'tn_margin' ) ) );
115
- $correction = wppa_opt( 'tn_margin' ) * ( $cont_width / $count_cols ) / 100;
116
-
117
- // Init the table
118
- wppa_out( '<table class="wppa-masonry" style="margin-top:3px;" ><tbody class="wppa-masonry" ><tr class="wppa-masonry" >' );
119
-
120
- // Init the columns
121
- $col_headers = array();
122
- $col_contents = array();
123
- $col_heights = array();
124
- $col_widths = array();
125
-
126
- for ( $col = 0; $col < $count_cols; $col++ ) {
127
- $col_headers[$col] = '';
128
- $col_contents[$col] = '';
129
- $col_heights[$col] = 0;
130
- $col_widths[$col] = 100;
131
- }
132
133
- // Process the thumbnails
134
- $col = '0';
135
- if ( $thumbs ) foreach ( $thumbs as $tt ) {
136
- $id = $tt['id'];
137
- $counter_thumbs++;
138
- if ( wppa_onpage( 'thumbs', $counter_thumbs, $relpage ) ) {
139
- $col_contents[$col] .= wppa_get_thumb_masonry( $id );
140
- $col_heights[$col] += ( $correction + wppa_get_thumby( $id ) ) / ( $correction + wppa_get_thumbx( $id ) ) * $col_widths[$col];
141
- $col += '1';
142
- if ( $col == $count_cols ) {
143
- $col = '0';
144
}
145
- $didsome = true;
146
}
147
- }
148
149
- // Find longest column
150
- $long = 0;
151
- for ( $col = 0; $col < $count_cols; $col++ ) {
152
- if ( $col_heights[$col] > $long ) $long = $col_heights[$col];
153
- }
154
-
155
- // Adjust column widths to resize lengths to equal lengths
156
- for ( $col = 0; $col < $count_cols; $col++ ) {
157
- if ( $col_heights[$col] ) {
158
- $col_widths[$col] = $long / $col_heights[$col] * $col_widths[$col];
159
}
160
- }
161
162
- // Adjust column widths to total 100
163
- $wide = 0;
164
- for ( $col = 0; $col < $count_cols; $col++ ) {
165
- $wide += $col_widths[$col];
166
- }
167
- for ( $col = 0; $col < $count_cols; $col++ ) {
168
- $col_widths[$col] = $col_widths[$col] * 100 / $wide;
169
- }
170
171
- // Make column headers
172
- for ( $col = 0; $col < $count_cols; $col++ ) {
173
- $col_headers[$col] = '<td style="width: '.$col_widths[$col].'%; vertical-align:top;" class="wppa-masonry" >';
174
- }
175
176
- // Add the columns to the output stream
177
- for ( $col = 0; $col < $count_cols; $col++ ) {
178
- wppa_out( $col_headers[$col] );
179
- wppa_out( $col_contents[$col] );
180
- wppa_out( '</td>' );
181
- }
182
183
- // Close the table
184
- wppa_out( '</tr></tbody></table>' );
185
-
186
- // The footer
187
- wppa_album_name( 'bottom' ); // Optionally display album name
188
- wppa_album_desc( 'bottom' ); // Optionally display album description
189
- wppa_thumb_area( 'close' ); // Close Thumbarea sub-container
190
- } // Masonry-v
191
-
192
- // Masonry horizontal
193
- elseif ( wppa_opt( 'thumbtype' ) == 'masonry-h' ) { // Masonry
194
-
195
- // The header
196
- wppa_thumb_area( 'open' ); // Open Thumbarea sub-container
197
- wppa_popup(); // Prepare Popup box
198
- wppa_album_name( 'top' ); // Optionally display album name
199
- wppa_album_desc( 'top' ); // Optionally display album description
200
-
201
- // Init
202
- $relpage = wppa_switch( 'thumbs_first' ) ? $curpage : $curpage - $n_album_pages;
203
- $cont_width = wppa_get_container_width( 'netto' );
204
- $correction = wppa_opt( 'tn_margin' );
205
-
206
- // Init the table
207
- wppa_out( '<table class="wppa-masonry wppa-masonry-h" style="margin-top:3px;" ><tbody class="wppa-masonry" >' );
208
-
209
- // Process the thumbnails
210
- $row_content = '';
211
- $row_width = 0;
212
- $target_row_height = wppa_opt( $is_alt_thumbsize ? 'thumbsize_alt' : 'thumbsize' ) * 0.75 + $correction;
213
- $rw_count = 0;
214
- $tr_count = '1';
215
- $done_count = 0;
216
- $last = false;
217
- $max_row_height = $target_row_height * 0.8; // Init keep track for last
218
- if ( $thumbs ) foreach ( $thumbs as $tt ) {
219
- $id = $tt['id'];
220
- $counter_thumbs++;
221
- if ( wppa_onpage( 'thumbs', $counter_thumbs, $relpage ) ) {
222
- $row_content .= wppa_get_thumb_masonry( $tt['id'] );
223
- $rw_count += 1;
224
- $row_width += wppa_get_thumbratioxy( $id ) * ( $target_row_height - $correction );
225
- $didsome = true;
226
}
227
- $done_count += 1;
228
- $last = $done_count == count( $thumbs );
229
- if ( $row_width > $cont_width || $last ) {
230
- $tot_marg = $rw_count * $correction;
231
- $row_height = $row_width ? ( ( $target_row_height - $correction ) * ( $cont_width - $tot_marg ) / ( $row_width ) + $correction ) : '0';
232
- if ( ! $last ) {
233
- $max_row_height = max( $max_row_height, $row_height );
234
}
235
- if ( $last && $row_height > wppa_get_thumby( $id ) ) {
236
- $row_height = $max_row_height;
237
}
238
- $row_height_p = $row_height / $cont_width * 100;
239
- wppa_out( '<tr class="wppa-masonry" >' .
240
- '<td style="border:none;padding:0;margin:0" >' .
241
- '<div' .
242
- ' id="wppa-mas-h-'.$tr_count.'-'.wppa( 'mocc' ).'"' .
243
- ' style="height:'.$row_height.'px;"' .
244
- ' class="wppa-masonry"' .
245
- ' data-height-perc="'.$row_height_p.'"' .
246
- ' >');
247
- wppa_out( $row_content );
248
- wppa_out( '</div></td></tr>' );
249
- $row_content = '';
250
- $row_width = 0;
251
- $row_height = wppa_opt( 'thumbsize' );
252
- $rw_count = 0;
253
- $tr_count += '1';
254
}
255
- }
256
- wppa_out( '</tbody></table>' );
257
-
258
- // The footer
259
- wppa_album_name( 'bottom' ); // Optionally display album name
260
- wppa_album_desc( 'bottom' ); // Optionally display album description
261
- wppa_out( '<script type="text/javascript" >' . // Fix bug in IE and Chrome
262
- 'wppaSetMasHorFrameWidthsForIeAndChrome(' . wppa( 'mocc' ) . ');' .
263
- '</script>' );
264
- wppa_thumb_area( 'close' ); // Close Thumbarea sub-container
265
-
266
- } // Masonry-h
267
-
268
- // Default
269
- elseif ( wppa_opt( 'thumbtype' ) == 'default' ) { // Do the thumbs As default
270
-
271
- // The header
272
- wppa_thumb_area( 'open' ); // Open Thumbarea sub-container
273
- wppa_popup(); // Prepare Popup box
274
- wppa_album_name( 'top' ); // Optionally display album name
275
- wppa_album_desc( 'top' ); // Optionally display album description
276
-
277
- // Init
278
- $relpage = wppa_switch( 'thumbs_first' ) ? $curpage : $curpage - $n_album_pages;
279
-
280
- // Process the thumbnails
281
- if ( $thumbs ) foreach ( $thumbs as $tt ) {
282
- $counter_thumbs++;
283
- if ( wppa_onpage( 'thumbs', $counter_thumbs, $relpage ) ) {
284
- $didsome = true;
285
- wppa_thumb_default( $tt['id'] ); // Show Thumb as default
286
- } // End if on page
287
- }
288
289
- // The footer
290
- wppa_album_name( 'bottom' ); // Optionally display album name
291
- wppa_album_desc( 'bottom' ); // Optionally display album description
292
- wppa_thumb_area( 'close' ); // Close Thumbarea sub-container
293
- } // As default
294
295
- // Unimplemented thumbnail type
296
- else {
297
- wppa_out( 'Unimplemented thumbnail type' );
298
}
299
- } // If thumbs
300
-
301
- if ( $didsome && wppa_is_pagination() ) $albums = false; // Pag on and didsome: force a pagebreak by faking no albums
302
- if ( ! wppa_is_pagination() ) $n_thumb_pages = '0'; // Still on page one
303
-
304
- // Process the albums
305
- if ( wppa_switch( 'thumbs_first' ) ) {
306
- if ( $albums ) {
307
- $counter_albums = '0';
308
- wppa_album_list( 'open' ); // Open Albums sub-container
309
- foreach ( $albums as $album ) { // Loop the albums
310
- $counter_albums++;
311
- if ( wppa_onpage( 'albums', $counter_albums, $curpage - $n_thumb_pages ) ) {
312
- wppa_album_cover( $album['id'] ); // Show the cover
313
- $didsome = true;
314
- } // End if on page
315
- }
316
- wppa_album_list( 'close' ); // Close Albums sub-container
317
- } // If albums
318
- }
319
320
- // Make pagelinkbar if requested on bottom
321
- if ( wppa_opt( 'pagelink_pos' ) == 'bottom' || wppa_opt( 'pagelink_pos' ) == 'both' ) {
322
- wppa_page_links( $totpag, $curpage );
323
- }
324
325
- // Empty results?
326
- if ( ! $didsome && ! $wanted_empty ) {
327
- if ( wppa( 'photos_only' ) ) {
328
- wppa_out( wppa_errorbox( __( 'No photos found matching your search criteria.', 'wp-photo-album-plus' ) ) );
329
}
330
- elseif ( wppa( 'albums_only' ) ) {
331
- wppa_out( wppa_errorbox( __( 'No albums found matching your search criteria.', 'wp-photo-album-plus' ) ) );
332
}
333
else {
334
- wppa_out( wppa_errorbox( __( 'No albums or photos found matching your search criteria.', 'wp-photo-album-plus' ) ) );
335
}
336
- }
337
- } // wppa_page( 'albums' )
338
-
339
- elseif ( wppa_page( 'slide' ) || wppa_page( 'single' ) ) { // Page 'Slideshow' or 'Single' in browsemode requested
340
- $thumbs = wppa_get_thumbs();
341
- wppa_dbg_msg( 'From theme: #thumbs='.( $thumbs ? count( $thumbs ) : '0' ) );
342
- if ( $thumbs ) {
343
- wppa_the_slideshow(); // Producs all the html required for the slideshow
344
- wppa_run_slidecontainer( 'slideshow' ); // Fill in the photo array and display it.
345
- }
346
- else {
347
- wppa_out( wppa_errorbox( __( 'No photos found matching your search criteria.', 'wppa_theme' , 'wp-photo-album-plus') ) );
348
- }
349
- } // wppa_page( 'slide' )
350
351
- // Close container
352
- wppa_container( 'close' );
353
}
354
355
function wppa_is_wanted_empty( $thumbs ) {
@@ -366,3 +411,100 @@ function wppa_is_wanted_empty( $thumbs ) {
366
367
return true;
368
}
3
* Package: wp-photo-album-plus
4
*
5
* display the albums/photos/slideshow in a page or post
6
+ * Version 7.1.06
7
*/
8
function wppa_theme() {
9
10
+ global $wppa_version; $wppa_version = '7.1.06.001'; // The version number of this file
11
global $wppa;
12
global $wppa_show_statistics; // Can be set to true by a custom page template
13
16
$n_album_pages = '0'; // "
17
$n_thumb_pages = '0'; // "
18
19
+ // Delayed displsy?
20
+ if ( wppa( 'delay' ) && wppa_switch( 'allow_ajax' ) && ! wppa_switch( 'defer_javascript' ) ) {
21
22
+ // Open container
23
+ wppa_container( 'open' );
24
25
+ // Get basic urls
26
+ $link_url = wppa_get_permalink();
27
+ $ajax_url = wppa_get_ajaxlink();
28
+ $extra_url = wppa_get_extra_url();
29
30
+ // Almost ready
31
+ $link_url .= $extra_url;
32
+ $ajax_url .= $extra_url;
33
34
+ // Compress
35
+ $link_url = wppa_trim_wppa_( $link_url );
36
+ $ajax_url = wppa_trim_wppa_( $ajax_url );
37
38
+ // Encrypt
39
+ $link_url = wppa_encrypt_url( $link_url );
40
+ $ajax_url = wppa_encrypt_url( $ajax_url );
41
42
+ // Pretty
43
+ $link_url = wppa_convert_to_pretty( $link_url );
44
45
+ $link_url = str_replace( '&amp;', '&', $link_url );
46
+ $ajax_url = str_replace( '&amp;', '&', $ajax_url );
47
48
+ // Create script tag
49
+ $html = "\n" . '<script>jQuery(document).ready(function(){wppaDoAjaxRender(' . wppa( 'mocc' ) . ', \'' . $ajax_url . '\', \'' . $link_url . '\');});</script>';
50
51
+ // Output the results
52
+ wppa_out( $html );
53
54
+ // Close container
55
+ wppa_container( 'close' );
56
57
+ } // Delaed
58
+
59
+ // Not delayed
60
+ else {
61
+
62
+ // Open container
63
+ wppa_container( 'open' );
64
+
65
+ // Show statistics if set so by the page template
66
+ if ( $wppa_show_statistics ) wppa_statistics();
67
+
68
+ // Display breadcrumb navigation only if it is set in the settings page
69
+ wppa_breadcrumb( 'optional' );
70
+
71
+
72
+ if ( wppa_page( 'albums' ) ) { // Page 'Albums' requested
73
+
74
+ // Init for possible alt thumbsize on masonry
75
+ $counter_thumbs = '0';
76
+ $is_alt_thumbsize = false;
77
+ $alb_id = wppa( 'start_album' );
78
+ if ( wppa_is_int( $alb_id ) && $alb_id > '0' ) {
79
+ $is_alt_thumbsize = wppa_get_album_item( $alb_id, 'alt_thumbsize' ) == 'yes';
80
+ }
81
+
82
+ // Get the albums and the thumbs and the number of pages for each set
83
+ $albums = wppa_get_albums(); // Get the albums
84
+ $n_album_pages = wppa_get_npages( 'albums', $albums ); // Get the number of album pages
85
+
86
+ if ( wppa_opt( 'thumbtype' ) != 'none' ) {
87
+ $thumbs = wppa_get_thumbs(); // Get the Thumbs
88
+ } else $thumbs = false;
89
+
90
+ $wanted_empty = wppa_is_wanted_empty( $thumbs ); // See if we need to display an empty thumbnail area
91
+
92
+ $n_thumb_pages = wppa_get_npages( 'thumbs', $thumbs ); // Get the number of thumb pages
93
+ if ( $n_thumb_pages == '0' && ! $wanted_empty ) $thumbs = false; // No pages: no thumbs. Maybe want covers only
94
+ if ( $wanted_empty ) $n_thumb_pages = '1';
95
+
96
+ // Get total number of pages
97
+ if ( ! wppa_is_pagination() ) $totpag = '1'; // If both pagination is off, there is only one page
98
+ else $totpag = $n_album_pages + $n_thumb_pages;
99
+
100
+ // Make pagelinkbar if requested on top
101
+ if ( wppa_opt( 'pagelink_pos' ) == 'top' || wppa_opt( 'pagelink_pos' ) == 'both' ) {
102
+ wppa_page_links( $totpag, $curpage );
103
+ }
104
+
105
+ // Process the albums
106
+ if ( ! wppa_switch( 'thumbs_first' ) ) {
107
+ if ( $albums ) {
108
+ $counter_albums = '0';
109
+ wppa_album_list( 'open' ); // Open Albums sub-container
110
+ foreach ( $albums as $album ) { // Loop the albums
111
+ $counter_albums++;
112
+ if ( wppa_onpage( 'albums', $counter_albums, $curpage ) ) {
113
+ wppa_album_cover( $album['id'] ); // Show the cover
114
+ $didsome = true;
115
+ } // End if on page
116
+ }
117
+ wppa_album_list( 'close' ); // Close Albums sub-container
118
+ } // If albums
119
+ }
120
121
+ if ( $didsome && wppa_is_pagination() ) $thumbs = false; // Pag on and didsome: force a pagebreak by faking no thumbs
122
+ if ( is_array( $thumbs ) && count( $thumbs ) <= wppa_get_mincount() && ! $wanted_empty ) $thumbs = false; // Less than treshold value
123
+ if ( wppa_switch( 'thumbs_first' ) && $curpage > $n_thumb_pages ) $thumbs = false; // If thumbs done, do not display an empty thumbarea
124
+
125
+ // Process the thumbs
126
+ if ( $thumbs || $wanted_empty )
127
+ if ( ! $wanted_empty || ! wppa_switch( 'thumbs_first' ) || wppa_get_curpage() == '1' )
128
+ if ( ! $wanted_empty || wppa_switch( 'thumbs_first' ) || wppa_get_curpage() == $totpag ) {
129
+
130
+ // As covers
131
+ if ( wppa_opt( 'thumbtype' ) == 'ascovers' ||
132
+ wppa_opt( 'thumbtype' ) == 'ascovers-mcr' ) { // Do the thumbs As covers
133
+ wppa_thumb_list( 'open' ); // Open Thumblist sub-container
134
+ $relpage = wppa_switch( 'thumbs_first' ) ? $curpage : $curpage - $n_album_pages;
135
+ foreach ( $thumbs as $tt ) : global $thumb; $thumb = $tt; // Loop the Thumbs
136
+ $counter_thumbs++;
137
+ if ( wppa_onpage( 'thumbs', $counter_thumbs, $relpage ) ) {
138
$didsome = true;
139
+ wppa_thumb_ascover( $thumb['id'] ); // Show Thumb as cover
140
} // End if on page
141
+ endforeach;
142
+ wppa_thumb_list( 'close' ); // Close Thumblist sub-container
143
+ } // As covers
144
+
145
+ // Masonry vertical
146
+ elseif ( wppa_opt( 'thumbtype' ) == 'masonry-v' ) { // Masonry
147
+
148
+ // The header
149
+ wppa_thumb_area( 'open' ); // Open Thumbarea sub-container
150
+ wppa_popup(); // Prepare Popup box
151
+ wppa_album_name( 'top' ); // Optionally display album name
152
+ wppa_album_desc( 'top' ); // Optionally display album description
153
+
154
+ // Init
155
+ $relpage = wppa_switch( 'thumbs_first' ) ? $curpage : $curpage - $n_album_pages;
156
+ $cont_width = wppa_get_container_width();
157
+ $count_cols = ceil( $cont_width / ( wppa_opt( $is_alt_thumbsize ? 'thumbsize_alt' : 'thumbsize' ) + wppa_opt( 'tn_margin' ) ) );
158
+ $correction = wppa_opt( 'tn_margin' ) * ( $cont_width / $count_cols ) / 100;
159
+
160
+ // Init the table
161
+ wppa_out( '<table class="wppa-masonry" style="margin-top:3px;" ><tbody class="wppa-masonry" ><tr class="wppa-masonry" >' );
162
+
163
+ // Init the columns
164
+ $col_headers = array();
165
+ $col_contents = array();
166
+ $col_heights = array();
167
+ $col_widths = array();
168
+
169
+ for ( $col = 0; $col < $count_cols; $col++ ) {
170
+ $col_headers[$col] = '';
171
+ $col_contents[$col] = '';
172
+ $col_heights[$col] = 0;
173
+ $col_widths[$col] = 100;
174
}
175
176
+ // Process the thumbnails
177
+ $col = '0';
178
+ if ( $thumbs ) foreach ( $thumbs as $tt ) {
179
+ $id = $tt['id'];
180
+ $counter_thumbs++;
181
+ if ( wppa_onpage( 'thumbs', $counter_thumbs, $relpage ) ) {
182
+ $col_contents[$col] .= wppa_get_thumb_masonry( $id );
183
+ $col_heights[$col] += ( $correction + wppa_get_thumby( $id ) ) / ( $correction + wppa_get_thumbx( $id ) ) * $col_widths[$col];
184
+ $col += '1';
185
+ if ( $col == $count_cols ) {
186
+ $col = '0';
187
+ }
188
+ $didsome = true;
189
}
190
}
191
192
+ // Find longest column
193
+ $long = 0;
194
+ for ( $col = 0; $col < $count_cols; $col++ ) {
195
+ if ( $col_heights[$col] > $long ) $long = $col_heights[$col];
196
}
197
198
+ // Adjust column widths to resize lengths to equal lengths
199
+ for ( $col = 0; $col < $count_cols; $col++ ) {
200
+ if ( $col_heights[$col] ) {
201
+ $col_widths[$col] = $long / $col_heights[$col] * $col_widths[$col];
202
+ }
203
+ }
204
205
+ // Adjust column widths to total 100
206
+ $wide = 0;
207
+ for ( $col = 0; $col < $count_cols; $col++ ) {
208
+ $wide += $col_widths[$col];
209
+ }
210
+ for ( $col = 0; $col < $count_cols; $col++ ) {
211
+ $col_widths[$col] = $col_widths[$col] * 100 / $wide;
212
+ }
213
214
+ // Make column headers
215
+ for ( $col = 0; $col < $count_cols; $col++ ) {
216
+ $col_headers[$col] = '<td style="width: '.$col_widths[$col].'%; vertical-align:top;" class="wppa-masonry" >';
217
+ }
218
219
+ // Add the columns to the output stream
220
+ for ( $col = 0; $col < $count_cols; $col++ ) {
221
+ wppa_out( $col_headers[$col] );
222
+ wppa_out( $col_contents[$col] );
223
+ wppa_out( '</td>' );
224
}
225
+
226
+ // Close the table
227
+ wppa_out( '</tr></tbody></table>' );
228
+
229
+ // The footer
230
+ wppa_album_name( 'bottom' ); // Optionally display album name
231
+ wppa_album_desc( 'bottom' ); // Optionally display album description
232
+ wppa_thumb_area( 'close' ); // Close Thumbarea sub-container
233
+ } // Masonry-v
234
+
235
+ // Masonry horizontal
236
+ elseif ( wppa_opt( 'thumbtype' ) == 'masonry-h' ) { // Masonry
237
+
238
+ // The header
239
+ wppa_thumb_area( 'open' ); // Open Thumbarea sub-container
240
+ wppa_popup(); // Prepare Popup box
241
+ wppa_album_name( 'top' ); // Optionally display album name
242
+ wppa_album_desc( 'top' ); // Optionally display album description
243
+
244
+ // Init
245
+ $relpage = wppa_switch( 'thumbs_first' ) ? $curpage : $curpage - $n_album_pages;
246
+ $cont_width = wppa_get_container_width( 'netto' );
247
+ $correction = wppa_opt( 'tn_margin' );
248
+
249
+ // Init the table
250
+ wppa_out( '<table class="wppa-masonry wppa-masonry-h" style="margin-top:3px;" ><tbody class="wppa-masonry" >' );
251
+
252
+ // Process the thumbnails
253
+ $row_content = '';
254
+ $row_width = 0;
255
+ $target_row_height = wppa_opt( $is_alt_thumbsize ? 'thumbsize_alt' : 'thumbsize' ) * 0.75 + $correction;
256
+ $rw_count = 0;
257
+ $tr_count = '1';
258
+ $done_count = 0;
259
+ $last = false;
260
+ $max_row_height = $target_row_height * 0.8; // Init keep track for last
261
+ if ( $thumbs ) foreach ( $thumbs as $tt ) {
262
+ $id = $tt['id'];
263
+ $counter_thumbs++;
264
+ if ( wppa_onpage( 'thumbs', $counter_thumbs, $relpage ) ) {
265
+ $row_content .= wppa_get_thumb_masonry( $tt['id'] );
266
+ $rw_count += 1;
267
+ $row_width += wppa_get_thumbratioxy( $id ) * ( $target_row_height - $correction );
268
+ $didsome = true;
269
}
270
+ $done_count += 1;
271
+ $last = $done_count == count( $thumbs );
272
+ if ( $row_width > $cont_width || $last ) {
273
+ $tot_marg = $rw_count * $correction;
274
+ $row_height = $row_width ? ( ( $target_row_height - $correction ) * ( $cont_width - $tot_marg ) / ( $row_width ) + $correction ) : '0';
275
+ if ( ! $last ) {
276
+ $max_row_height = max( $max_row_height, $row_height );
277
+ }
278
+ if ( $last && $row_height > wppa_get_thumby( $id ) ) {
279
+ $row_height = $max_row_height;
280
+ }
281
+ $row_height_p = $row_height / $cont_width * 100;
282
+ wppa_out( '<tr class="wppa-masonry" >' .
283
+ '<td style="border:none;padding:0;margin:0" >' .
284
+ '<div' .
285
+ ' id="wppa-mas-h-'.$tr_count.'-'.wppa( 'mocc' ).'"' .
286
+ ' style="height:'.$row_height.'px;"' .
287
+ ' class="wppa-masonry"' .
288
+ ' data-height-perc="'.$row_height_p.'"' .
289
+ ' >');
290
+ wppa_out( $row_content );
291
+ wppa_out( '</div></td></tr>' );
292
+ $row_content = '';
293
+ $row_width = 0;
294
+ $row_height = wppa_opt( 'thumbsize' );
295
+ $rw_count = 0;
296
+ $tr_count += '1';
297
}
298
}
299
+ wppa_out( '</tbody></table>' );
300
+
301
+ // The footer
302
+ wppa_album_name( 'bottom' ); // Optionally display album name
303
+ wppa_album_desc( 'bottom' ); // Optionally display album description
304
+ wppa_out( '<script type="text/javascript" >' . // Fix bug in IE and Chrome
305
+ 'wppaSetMasHorFrameWidthsForIeAndChrome(' . wppa( 'mocc' ) . ');' .
306
+ '</script>' );
307
+ wppa_thumb_area( 'close' ); // Close Thumbarea sub-container
308
+
309
+ } // Masonry-h
310
+
311
+ // Default
312
+ elseif ( wppa_opt( 'thumbtype' ) == 'default' ) { // Do the thumbs As default
313
+
314
+ // The header
315
+ wppa_thumb_area( 'open' ); // Open Thumbarea sub-container
316
+ wppa_popup(); // Prepare Popup box
317
+ wppa_album_name( 'top' ); // Optionally display album name
318
+ wppa_album_desc( 'top' ); // Optionally display album description
319
+
320
+ // Init
321
+ $relpage = wppa_switch( 'thumbs_first' ) ? $curpage : $curpage - $n_album_pages;
322
+
323
+ // Process the thumbnails
324
+ if ( $thumbs ) foreach ( $thumbs as $tt ) {
325
+ $counter_thumbs++;
326
+ if ( wppa_onpage( 'thumbs', $counter_thumbs, $relpage ) ) {
327
+ $didsome = true;
328
+ wppa_thumb_default( $tt['id'] ); // Show Thumb as default
329
+ } // End if on page
330
+ }
331
332
+ // The footer
333
+ wppa_album_name( 'bottom' ); // Optionally display album name
334
+ wppa_album_desc( 'bottom' ); // Optionally display album description
335
+ wppa_thumb_area( 'close' ); // Close Thumbarea sub-container
336
+ } // As default
337
338
+ // Unimplemented thumbnail type
339
+ else {
340
+ wppa_out( 'Unimplemented thumbnail type' );
341
+ }
342
+ } // If thumbs
343
+
344
+ if ( $didsome && wppa_is_pagination() ) $albums = false; // Pag on and didsome: force a pagebreak by faking no albums
345
+ if ( ! wppa_is_pagination() ) $n_thumb_pages = '0'; // Still on page one
346
+
347
+ // Process the albums
348
+ if ( wppa_switch( 'thumbs_first' ) ) {
349
+ if ( $albums ) {
350
+ $counter_albums = '0';
351
+ wppa_album_list( 'open' ); // Open Albums sub-container
352
+ foreach ( $albums as $album ) { // Loop the albums
353
+ $counter_albums++;
354
+ if ( wppa_onpage( 'albums', $counter_albums, $curpage - $n_thumb_pages ) ) {
355
+ wppa_album_cover( $album['id'] ); // Show the cover
356
+ $didsome = true;
357
+ } // End if on page
358
+ }
359
+ wppa_album_list( 'close' ); // Close Albums sub-container
360
+ } // If albums
361
}
362
363
+ // Make pagelinkbar if requested on bottom
364
+ if ( wppa_opt( 'pagelink_pos' ) == 'bottom' || wppa_opt( 'pagelink_pos' ) == 'both' ) {
365
+ wppa_page_links( $totpag, $curpage );
366
+ }
367
368
+ // Empty results?
369
+ if ( ! $didsome && ! $wanted_empty ) {
370
+ if ( wppa( 'photos_only' ) ) {
371
+ wppa_out( wppa_errorbox( __( 'No photos found matching your search criteria.', 'wp-photo-album-plus' ) ) );
372
+ }
373
+ elseif ( wppa( 'albums_only' ) ) {
374
+ wppa_out( wppa_errorbox( __( 'No albums found matching your search criteria.', 'wp-photo-album-plus' ) ) );
375
+ }
376
+ else {
377
+ wppa_out( wppa_errorbox( __( 'No albums or photos found matching your search criteria.', 'wp-photo-album-plus' ) ) );
378
+ }
379
}
380
+ } // wppa_page( 'albums' )
381
+
382
+ elseif ( wppa_page( 'slide' ) || wppa_page( 'single' ) ) { // Page 'Slideshow' or 'Single' in browsemode requested
383
+ $thumbs = wppa_get_thumbs();
384
+ wppa_dbg_msg( 'From theme: #thumbs='.( $thumbs ? count( $thumbs ) : '0' ) );
385
+ if ( $thumbs ) {
386
+ wppa_the_slideshow(); // Producs all the html required for the slideshow
387
+ wppa_run_slidecontainer( 'slideshow' ); // Fill in the photo array and display it.
388
}
389
else {
390
+ wppa_out( wppa_errorbox( __( 'No photos found matching your search criteria.', 'wppa_theme' , 'wp-photo-album-plus') ) );
391
}
392
+ } // wppa_page( 'slide' )
393
+
394
+ // Close container
395
+ wppa_container( 'close' );
396
397
+ } // Not delaed
398
}
399
400
function wppa_is_wanted_empty( $thumbs ) {
411
412
return true;
413
}
414
+
415
+ function wppa_get_extra_url() {
416
+
417
+ $extra_url = '';
418
+
419
+ // cover
420
+ if ( wppa_get_get( 'cover' ) ) $ic = wppa_get_get( 'cover' );
421
+ else {
422
+ if ( wppa( 'is_cover' ) == '1' ) $ic = '1'; else $ic = '0';
423
+ }
424
+ $extra_url .= 'wppa-cover='.$ic;
425
+
426
+ // occur
427
+ $occur = wppa_in_widget() ? wppa_get_get('woccur') : wppa_get_get('occur');
428
+ $ref_occur = wppa_in_widget() ? wppa( 'widget_occur' ) : wppa( 'occur' );
429
+
430
+ // album
431
+ if ( ( $occur == $ref_occur || wppa( 'ajax' ) ) && wppa_get_get('album') ) {
432
+ $alb = wppa_get_get( 'album' );
433
+ }
434
+ elseif ( wppa( 'start_album' ) ) {
435
+ $alb = wppa( 'start_album' );
436
+ }
437
+ else {
438
+ $alb = '0';
439
+ }
440
+ $extra_url .= '&amp;wppa-album='.$alb;
441
+
442
+ // slide or photo
443
+ if ( wppa( 'is_slide' ) ) {
444
+ $extra_url .= '&amp;wppa-slide=1';
445
+ }
446
+ elseif ( wppa_get_get( 'photo' ) ) {
447
+ $extra_url .= '&amp;wppa-photo=' . wppa_get_get( 'photo' );
448
+ }
449
+
450
+ // occur
451
+ if ( ! wppa( 'ajax' ) ) {
452
+ $occur = wppa_in_widget() ? wppa( 'widget_occur' ) : wppa( 'occur' );
453
+ $w = wppa_in_widget() ? 'w' : '';
454
+ $extra_url .= '&amp;wppa-' . $w . 'occur=' . $occur;
455
+ }
456
+ else {
457
+ if ( wppa_get_get( 'occur' ) ) {
458
+ $occur = wppa_get_get( 'occur' );
459
+ $extra_url .= '&amp;wppa-occur=' . strval( intval( $occur ) );
460
+ }
461
+ elseif ( wppa_get_get( 'woccur' ) ) {
462
+ $occur = wppa_get_get( 'woccur' );
463
+ $extra_url .= '&amp;wppa-woccur=' . strval( intval( $occur ) );
464
+ }
465
+ else {
466
+ $extra_url .= '&amp;wppa-occur=' . wppa( 'occur' ); // Should never get here?
467
+ }
468
+ }
469
+
470
+ // Topten?
471
+ if ( wppa( 'is_topten' ) ) $extra_url .= '&amp;wppa-topten='.wppa( 'topten_count' );
472
+
473
+ // Lasten?
474
+ if ( wppa( 'is_lasten' ) ) $extra_url .= '&amp;wppa-lasten='.wppa( 'lasten_count' );
475
+
476
+ // Comten?
477
+ if ( wppa( 'is_comten' ) ) $extra_url .= '&amp;wppa-comten='.wppa( 'comten_count' );
478
+
479
+ // Featen?
480
+ if ( wppa( 'is_featen' ) ) $extra_url .= '&amp;wppa-featen='.wppa( 'featen_count' );
481
+
482
+ // Tag?
483
+ if ( wppa( 'is_tag' ) && ! wppa( 'is_related' ) ) $extra_url .= '&amp;wppa-tag='.wppa( 'is_tag' );
484
+
485
+ // Search?
486
+ if ( wppa( 'src' ) && ! wppa( 'is_related' ) ) $extra_url .= '&amp;wppa-searchstring='.urlencode( wppa( 'searchstring' ) );
487
+
488
+ // Supersearch?
489
+ if ( wppa( 'supersearch' ) ) $extra_url .= '&amp;wppa-supersearch=' . str_replace( '/', '%2F', urlencode( wppa( 'supersearch' ) ) );
490
+
491
+ // Related
492
+ if ( wppa( 'is_related' ) ) $extra_url .= '&amp;wppa-rel='.wppa( 'is_related' ).'&amp;wppa-relcount='.wppa( 'related_count' );
493
+
494
+ // Uploader?
495
+ if ( wppa( 'is_upldr' ) ) $extra_url .= '&amp;wppa-upldr='.wppa( 'is_upldr' );
496
+
497
+ // Calendar ?
498
+ if ( wppa( 'calendar' ) ) $extra_url .= '&amp;wppa-calendar='.wppa( 'calendar' ).'&amp;wppa-caldate='.wppa( 'caldate' );
499
+
500
+ // Photos only?
501
+ if ( wppa( 'photos_only' ) ) $extra_url .= '&amp;wppa-photos-only=1';
502
+
503
+ // Albums only?
504
+ if ( wppa( 'albums_only' ) ) $extra_url .= '&amp;wppa-albums-only=1';
505
+
506
+ // Inverse?
507
+ if ( wppa( 'is_inverse' ) ) $extra_url .= '&amp;wppa-inv=1';
508
+
509
+ return $extra_url;
510
+ }
wppa-admin-functions.php CHANGED
@@ -478,6 +478,7 @@ global $wpdb;
478
return false;
479
}
480
481
function wppa_sanitize_files() {
482
483
// Get this users depot directory
@@ -498,17 +499,10 @@ function _wppa_sanitze_files( $root ) {
498
$count = '0';
499
if ( $files ) foreach ( $files as $file ) {
500
501
- // Make sure file ext is downcase, and name is sanitized
502
- $dfile = wppa_down_ext( $file );
503
- $dfile = dirname( $dfile ) . '/' . sanitize_file_name( basename( $dfile ) );
504
- if ( $dfile != $file ) {
505
- wppa_rename( $file, $dfile );
506
- $file = $dfile;
507
- }
508
-
509
if ( is_file( $file ) ) {
510
511
- $ext = wppa_get_ext( $file );
512
if ( ! in_array( $ext, $allowed_types ) ) {
513
if ( basename( $file ) != 'index.php' ) {
514
unlink( $file );
@@ -516,20 +510,6 @@ function _wppa_sanitze_files( $root ) {
516
}
517
$count++;
518
}
519
-
520
- // Sanitize filename
521
- $dirname = dirname( $file );
522
- $filename = basename( $file );
523
-
524
- // Can not use sanitize_file_name() because it removes spaces that are not illegal in most servers.
525
- $filename = strip_tags( stripslashes( $filename ) ); //sanitize_text_field( $filename );
526
- if ( ! seems_utf8( $filename ) ) {
527
- $filename = utf8_encode( $filename );
528
- }
529
- $newname = $dirname . '/' . $filename;
530
- if ( $newname != $file ) {
531
- rename( $file, $newname );
532
- }
533
}
534
elseif ( wppa_is_dir( $file ) ) {
535
$entry = basename( $file );
478
return false;
479
}
480
481
+ // Remove illegal files in WPPA_DEPOT_PATH
482
function wppa_sanitize_files() {
483
484
// Get this users depot directory
499
$count = '0';
500
if ( $files ) foreach ( $files as $file ) {
501
502
if ( is_file( $file ) ) {
503
504
+ // Check extension
505
+ $ext = strtolower( wppa_get_ext( $file ) );
506
if ( ! in_array( $ext, $allowed_types ) ) {
507
if ( basename( $file ) != 'index.php' ) {
508
unlink( $file );
510
}
511
$count++;
512
}
513
}
514
elseif ( wppa_is_dir( $file ) ) {
515
$entry = basename( $file );
wppa-boxes-html.php CHANGED
@@ -3,7 +3,7 @@
3
* Package: wp-photo-album-plus
4
*
5
* Various wppa boxes
6
- * Version 7.1.02
7
*
8
*/
9
@@ -13,11 +13,16 @@ if ( ! defined( 'ABSPATH' ) ) die( "Can't load this file directly" );
13
function wppa_thumb_area( $action ) {
14
15
// Init
16
- $result = '';
17
- $mocc = wppa( 'mocc' );
18
- $alt = wppa( 'alt' );
19
- $maxh = wppa_opt( 'area_size' );
20
- $nice = wppa_switch( 'nicescroll' );
21
22
// Open thumbnail area box
23
if ( $action == 'open' ) {
@@ -41,7 +46,7 @@ function wppa_thumb_area( $action ) {
41
wppa_wcs( 'wppa-box' ) .
42
wppa_wcs( 'wppa-' . $alt ) .
43
( $maxh > '1' ? 'max-height:' . $maxh . 'px;' : '' ) .
44
- ( $nice ? 'overflow:hidden;' : 'overflow:auto;' ) .
45
'"' .
46
' onscroll="wppaMakeLazyVisible();" ' .
47
' >';
3
* Package: wp-photo-album-plus
4
*
5
* Various wppa boxes
6
+ * Version 7.1.06
7
*
8
*/
9
13
function wppa_thumb_area( $action ) {
14
15
// Init
16
+ $result = '';
17
+ $mocc = wppa( 'mocc' );
18
+ $alt = wppa( 'alt' );
19
+ $maxh = wppa_opt( 'area_size' );
20
+ $nice = wppa_switch( 'nicescroll' );
21
+ $overflow = 'visible';
22
+ if ( $maxh ) {
23
+ if ( $nice ) $overflow = 'hidden';
24
+ else $overflow = 'auto';
25
+ }
26
27
// Open thumbnail area box
28
if ( $action == 'open' ) {
46
wppa_wcs( 'wppa-box' ) .
47
wppa_wcs( 'wppa-' . $alt ) .
48
( $maxh > '1' ? 'max-height:' . $maxh . 'px;' : '' ) .
49
+ 'overflow:' . $overflow . ';' .
50
'"' .
51
' onscroll="wppaMakeLazyVisible();" ' .
52
' >';
wppa-common-functions.php CHANGED
@@ -2,7 +2,7 @@
2
/* wppa-common-functions.php
3
*
4
* Functions used in admin and in themes
5
- * Version 7.1.05
6
*
7
*/
8
@@ -224,14 +224,15 @@ global $thumbs;
224
'unsanitized_filename' => '',
225
'fromp' => '',
226
'is_combinedsearch' => false,
227
228
);
229
}
230
231
function wppa_get_randseed( $type = '' ) {
232
global $wppa_session;
233
- static $volatile_randseed;
234
- static $randseed_modified;
235
236
switch ( $type ) {
237
@@ -243,11 +244,16 @@ static $randseed_modified;
243
// This randseed is for one pageload only
244
case 'page':
245
246
// Not Been here before?
247
- if ( ! $volatile_randseed ) {
248
- $volatile_randseed = time() % 7487;
249
}
250
- $result = $volatile_randseed;
251
break;
252
253
// This randseed is new for each pagelad and all subsequent ajax calls.
@@ -273,34 +279,58 @@ static $randseed_modified;
273
$renew = true;
274
275
// The following conditions make we do not need to renew
276
- if ( $randseed_modified ) $renew = false; // Already renewed this pageload
277
if ( wppa( 'ajax' ) ) $renew = false; // Not during ajax call
278
if ( strpos( $_SERVER['REQUEST_URI'], 'wp-content' ) !== false ) $renew = false; // Url to a content item needs no renew
279
if ( isset( $_REQUEST['wppa-page'] ) ) $renew = false; // A subsequent wppa page needs the same sequence
280
- if ( isset( $wppa_session['randseedtime'] ) && $wppa_session['randseedtime'] > ( time() - 30 ) ) $renew = false; // Not within 30 seconds
281
282
// Make new
283
if ( $renew ) {
284
-
285
- $result = time() % 4721;
286
- $wppa_session['randseed'] = $result;
287
- $wppa_session['randseedtime'] = time();
288
-
289
- // Indicaate we found a new randseed during this pageload
290
- $randseed_modified = true;
291
-
292
- // Make sure we save it
293
- wppa_save_session();
294
}
295
}
296
297
// Log
298
- wppa_log( 'dbg', 'wppa_get_randseed returned {b}' . $result . '{/b}, type= {b}' . ( $type ? $type : 'default' ) . '{/b}, uri= ' . $_SERVER['REQUEST_URI'], true );
299
300
// Return the randseed
301
return $result;
302
}
303
304
// get the url to the plugins image directory
305
function wppa_get_imgdir( $file = '', $rel = false ) {
306
@@ -1969,28 +1999,16 @@ global $wpdb;
1969
// Add script to the page specific temp js file, stripped from <script> tags.
1970
// If admin or no file (i.e. no defer js) return untouched
1971
function wppa_js( $txt ) {
1972
- global $wppa_js_page_data_file;
1973
global $wppa;
1974
1975
- if ( is_admin() && ! $wppa['ajax'] ) {
1976
- return $txt;
1977
- }
1978
-
1979
- if ( $wppa_js_page_data_file && ! $wppa['ajax'] ) {
1980
- $handle = wppa_fopen( $wppa_js_page_data_file, 'ab' );
1981
- }
1982
- else {
1983
- $handle = false;
1984
- }
1985
-
1986
- if ( $handle ) {
1987
$txt = str_replace( '<script type="text/javascript" >', '', $txt );
1988
$txt = str_replace( '<script>', '', $txt );
1989
$txt = str_replace( '</script>', '', $txt );
1990
$txt = str_replace( "\t", '', $txt );
1991
$txt = trim( $txt );
1992
- if ( $txt ) fwrite( $handle, "\n".$txt );
1993
- fclose( $handle );
1994
return '';
1995
}
1996
else {
2
/* wppa-common-functions.php
3
*
4
* Functions used in admin and in themes
5
+ * Version 7.1.06
6
*
7
*/
8
224
'unsanitized_filename' => '',
225
'fromp' => '',
226
'is_combinedsearch' => false,
227
+ 'delay' => false,
228
229
);
230
}
231
232
function wppa_get_randseed( $type = '' ) {
233
global $wppa_session;
234
+ global $wppa_volitile_randseed;
235
+ global $wppa_randseed_modified;
236
237
switch ( $type ) {
238
244
// This randseed is for one pageload only
245
case 'page':
246
247
+ // Reset the default randseed
248
+ wppa_renew_randseed();
249
+
250
// Not Been here before?
251
+ if ( ! $wppa_volitile_randseed ) {
252
+
253
+ // Make new pageload specific rsandseed
254
+ $wppa_volitile_randseed = time() % 7487;
255
}
256
+ $result = $wppa_volitile_randseed;
257
break;
258
259
// This randseed is new for each pagelad and all subsequent ajax calls.
279
$renew = true;
280
281
// The following conditions make we do not need to renew
282
+ if ( $wppa_randseed_modified ) $renew = false; // Already renewed this pageload
283
if ( wppa( 'ajax' ) ) $renew = false; // Not during ajax call
284
if ( strpos( $_SERVER['REQUEST_URI'], 'wp-content' ) !== false ) $renew = false; // Url to a content item needs no renew
285
if ( isset( $_REQUEST['wppa-page'] ) ) $renew = false; // A subsequent wppa page needs the same sequence
286
+ if ( isset( $wppa_session['randseedtime'] ) && $wppa_session['randseedtime'] > ( time() - 10 ) ) $renew = false; // Not within 10 seconds
287
+
288
+ // Still renew if the current wp page differs from the last
289
+ $wp_page = isset( $_REQUEST['wppa-fromp'] ) ? $_REQUEST['wppa-fromp'] : get_the_ID();
290
+ if ( isset( $wppa_session['randpage'] ) && $wp_page && $wp_page != $wppa_session['randpage'] ) {
291
+ $renew = true;
292
+ }
293
294
// Make new
295
if ( $renew ) {
296
+ $result = wppa_renew_randseed();
297
}
298
}
299
300
// Log
301
+ if($type=='')
302
+ wppa_log( 'obs', 'wppa_get_randseed returned {b}' . $result . '{/b}, ' .
303
+ 'type= {b}' . ( $type ? $type : 'default' ) . '{/b}, ' .
304
+ 'wp-page= {b}' . ( isset( $wppa_session['randpage'] ) ? $wppa_session['randpage'] : 'unknown' ) . '{/b}, ' .
305
+ 'uri= ' . $_SERVER['REQUEST_URI'] );
306
307
// Return the randseed
308
return $result;
309
}
310
311
+ function wppa_renew_randseed() {
312
+ global $wppa_session;
313
+ global $wppa_volitile_randseed;
314
+ global $wppa_randseed_modified;
315
+
316
+ // Make new saved randseed
317
+ $result = time() % 4721;
318
+ $wppa_session['randseed'] = $result;
319
+ $wppa_session['randseedtime'] = time();
320
+ $p = isset( $_REQUEST['wppa-fromp'] ) ? $_REQUEST['wppa-fromp'] : get_the_ID();
321
+ if ( $p ) {
322
+ $wppa_session['randpage'] = $p;
323
+ }
324
+
325
+ // Indicaate we found a new randseed during this pageload
326
+ $wppa_randseed_modified = true;
327
+
328
+ // Make sure we save it
329
+ wppa_save_session();
330
+
331
+ return $result;
332
+ }
333
+
334
// get the url to the plugins image directory
335
function wppa_get_imgdir( $file = '', $rel = false ) {
336
1999
// Add script to the page specific temp js file, stripped from <script> tags.
2000
// If admin or no file (i.e. no defer js) return untouched
2001
function wppa_js( $txt ) {
2002
+ global $wppa_js_page_data;
2003
global $wppa;
2004
2005
+ if ( wppa_js_in_footer() ) {
2006
$txt = str_replace( '<script type="text/javascript" >', '', $txt );
2007
$txt = str_replace( '<script>', '', $txt );
2008
$txt = str_replace( '</script>', '', $txt );
2009
$txt = str_replace( "\t", '', $txt );
2010
$txt = trim( $txt );
2011
+ $wppa_js_page_data .= $txt;
2012
return '';
2013
}
2014
else {
wppa-dashboard-widgets.php CHANGED
@@ -4,7 +4,7 @@
4
*
5
* Contains dashboard widgets code
6
*
7
- * Version 7.0.09
8
*
9
*/
10
@@ -274,17 +274,39 @@ global $wpdb;
274
echo
275
'<table>';
276
foreach( $photos as $photo ) {
277
if ( wppa_user_is( 'administrator' ) ) {
278
$href = get_admin_url() . 'admin.php?page=wppa_moderate_photos&photo=' . $photo['id'] . '&just-edit';
279
}
280
else {
281
- $href = wppa_get_photo_url( $photo['id'] );
282
}
283
echo
284
'<tr>' .
285
'<td>' .
286
- '<a href="' . esc_url( $href ) . '" target="_blank" >' .
287
- '<img src="' . esc_url( wppa_get_thumb_url( $photo['id'] ) ) . '" style="max-width:50px;max-height:50px;" /> ' .
288
'</a>' .
289
'</td>' .
290
'<td>';
4
*
5
* Contains dashboard widgets code
6
*
7
+ * Version 7.1.06
8
*
9
*/
10
274
echo
275
'<table>';
276
foreach( $photos as $photo ) {
277
+ $id = $photo['id'];
278
if ( wppa_user_is( 'administrator' ) ) {
279
$href = get_admin_url() . 'admin.php?page=wppa_moderate_photos&photo=' . $photo['id'] . '&just-edit';
280
}
281
else {
282
+ $href = wppa_get_photo_url( $id );
283
}
284
echo
285
'<tr>' .
286
'<td>' .
287
+ '<a href="' . esc_url( $href ) . '" target="_blank" >';
288
+
289
+ if ( wppa_is_video( $id ) ) {
290
+ echo
291
+ '<div style="position:relative;" >';
292
+ echo wppa_get_video_html( array( 'id' => $id,
293
+ 'width' => '50',
294
+ 'controls' => false,
295
+ 'preload' => 'metadata',
296
+ 'use_thumb' => true,
297
+ 'autoplay' => false
298
+ ) );
299
+ $url = WPPA_UPLOAD_URL . '/icons/' . wppa_opt( 'video_icon' );
300
+ echo
301
+ '<img src="' . esc_url( $url ) . '" style="width:16px;height:16px;position:absolute;right:0;bottom:0;z-index:100;" />' .
302
+ '</div>';
303
+ }
304
+ else {
305
+ echo
306
+ '<img src="' . esc_url( wppa_get_thumb_url( $id ) ) . '" style="max-width:50px;max-height:50px;" /> ';
307
+ }
308
+
309
+ echo
310
'</a>' .
311
'</td>' .
312
'<td>';
wppa-filter.php CHANGED
@@ -3,7 +3,7 @@
3
* Package: wp-photo-album-plus
4
*
5
* get the albums via shortcode handler
6
- * Version 7.1.05
7
*
8
*/
9
@@ -125,6 +125,7 @@ global $wppa_revno;
125
'alt' => '',
126
'timeout' => '',
127
'button' => '',
128
), $xatts );
129
130
// Sanitize input
@@ -393,6 +394,9 @@ global $wppa_revno;
393
// Find align
394
$wppa['align'] = $atts['align'];
395
396
// Ready to render ???
397
$do_it = false;
398
if ( wppa( 'rendering_enabled' ) ) $do_it = true; // NOT in a head section (in a meta tag or so)
3
* Package: wp-photo-album-plus
4
*
5
* get the albums via shortcode handler
6
+ * Version 7.1.06
7
*
8
*/
9
125
'alt' => '',
126
'timeout' => '',
127
'button' => '',
128
+ 'delay' => '',
129
), $xatts );
130
131
// Sanitize input
394
// Find align
395
$wppa['align'] = $atts['align'];
396
397
+ // Delay
398
+ $wppa['delay'] = $atts['delay'] == 'yes';
399
+
400
// Ready to render ???
401
$do_it = false;
402
if ( wppa( 'rendering_enabled' ) ) $do_it = true; // NOT in a head section (in a meta tag or so)
wppa-functions.php CHANGED
@@ -3,7 +3,7 @@
3
* Package: wp-photo-album-plus
4
*
5
* Various functions
6
- * Version 7.1.05
7
*
8
*/
9
@@ -696,7 +696,11 @@ global $wppa_session;
696
}
697
698
// Subsearch or rootsearch?
699
- if ( wppa( 'occur' ) == wppa_opt( 'search_oc' ) && ! wppa( 'in_widget' ) && ( $wppa_session['has_searchbox'] || isset( $_REQUEST['wppa-forceroot'] ) ) ) {
700
701
// Is it a search now?
702
if ( wppa( 'src' ) ) {
@@ -827,7 +831,7 @@ global $wppa_session;
827
}
828
else wppa_out( '<span style="color:red">ERROR: Missing function wppa_theme(), check the installation of WPPA+. Remove customized wppa_theme.php</span>' );
829
global $wppa_version;
830
- $expected_version = '6-8-00-002';
831
if ( $wppa_version != $expected_version ) {
832
wppa_dbg_msg( 'WARNING: customized wppa-theme.php is out of rev. Expected version: ' . $expected_version . ' found: ' . $wppa_version, 'red' );
833
}
@@ -3236,6 +3240,7 @@ global $blog_id;
3236
wppa_out( wppa_js( "\n" . 'wppaAutoColumnFrac['.wppa( 'mocc' ).'] = 1.0;' ) );
3237
}
3238
wppa_out( wppa_js( "\n" . 'wppaColWidth['.wppa( 'mocc' ).'] = 0;' ) );
3239
}
3240
else {
3241
wppa_out( wppa_js( "\n" . 'wppaAutoColumnWidth['.wppa( 'mocc' ).'] = false;' ) );
@@ -3410,8 +3415,13 @@ function wppa_album_list( $action ) {
3410
global $cover_count;
3411
global $cover_count_key;
3412
3413
- $nice = wppa_switch( 'nicescroll' );
3414
- $maxh = wppa_opt( 'area_size' );
3415
3416
if ( $action == 'open' ) {
3417
@@ -3420,9 +3430,9 @@ global $cover_count_key;
3420
wppa_out( '
3421
<div
3422
id="wppa-albumlist-' . wppa( 'mocc' ) . '"
3423
- style=' .
3424
( $maxh > '1' ? 'max-height:' . $maxh . 'px;' : '' ) .
3425
- ( $nice ? 'overflow:hidden;' : 'overflow:auto;' ) .
3426
'"' . '
3427
class="albumlist"
3428
onscroll="wppaMakeLazyVisible();"
3
* Package: wp-photo-album-plus
4
*
5
* Various functions
6
+ * Version 7.1.06
7
*
8
*/
9
696
}
697
698
// Subsearch or rootsearch?
699
+ if ( wppa( 'occur' ) == wppa_opt( 'search_oc' ) &&
700
+ ! wppa( 'in_widget' ) &&
701
+ ( ( isset( $wppa_session['has_searchbox'] ) && $wppa_session['has_searchbox'] ) ||
702
+ isset( $_REQUEST['wppa-forceroot'] )
703
+ ) ) {
704
705
// Is it a search now?
706
if ( wppa( 'src' ) ) {
831
}
832
else wppa_out( '<span style="color:red">ERROR: Missing function wppa_theme(), check the installation of WPPA+. Remove customized wppa_theme.php</span>' );
833
global $wppa_version;
834
+ $expected_version = '7.1.06.001';
835
if ( $wppa_version != $expected_version ) {
836
wppa_dbg_msg( 'WARNING: customized wppa-theme.php is out of rev. Expected version: ' . $expected_version . ' found: ' . $wppa_version, 'red' );
837
}
3240
wppa_out( wppa_js( "\n" . 'wppaAutoColumnFrac['.wppa( 'mocc' ).'] = 1.0;' ) );
3241
}
3242
wppa_out( wppa_js( "\n" . 'wppaColWidth['.wppa( 'mocc' ).'] = 0;' ) );
3243
+ wppa_out( wppa_js( "\n" . 'wppaMCRWidth['.wppa( 'mocc' ).'] = 0;' ) );
3244
}
3245
else {
3246
wppa_out( wppa_js( "\n" . 'wppaAutoColumnWidth['.wppa( 'mocc' ).'] = false;' ) );
3415
global $cover_count;
3416
global $cover_count_key;
3417
3418
+ $nice = wppa_switch( 'nicescroll' );
3419
+ $maxh = wppa_opt( 'area_size' );
3420
+ $overflow = 'visible';
3421
+ if ( $maxh ) {
3422
+ if ( $nice ) $overflow = 'hidden';
3423
+ else $overflow = 'auto';
3424
+ }
3425
3426
if ( $action == 'open' ) {
3427
3430
wppa_out( '
3431
<div
3432
id="wppa-albumlist-' . wppa( 'mocc' ) . '"
3433
+ style="' .
3434
( $maxh > '1' ? 'max-height:' . $maxh . 'px;' : '' ) .
3435
+ 'overflow:' . $overflow . ';' .
3436
'"' . '
3437
class="albumlist"
3438
onscroll="wppaMakeLazyVisible();"
wppa-maintenance.php CHANGED
@@ -205,7 +205,7 @@ global $wppa_endtime;
205
break;
206
case 'wppa_cleanup':
207
$orphan_album = get_option( 'wppa_orphan_album', '0' );
208
- $album_exists = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM$wpdb->wppa_albums WHERE id = %s", $orphan_album ) );
209
if ( ! $album_exists ) $orphan_album = false;
210
if ( ! $orphan_album ) {
211
$orphan_album = wppa_create_album_entry( array( 'name' => __('Orphan photos', 'wp-photo-album-plus'), 'a_parent' => '-1', 'description' => __('This album contains refound lost photos', 'wp-photo-album-plus') ) );
205
break;
206
case 'wppa_cleanup':
207
$orphan_album = get_option( 'wppa_orphan_album', '0' );
208
+ $album_exists = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->wppa_albums WHERE id = %s", $orphan_album ) );
209
if ( ! $album_exists ) $orphan_album = false;
210
if ( ! $orphan_album ) {
211
$orphan_album = wppa_create_album_entry( array( 'name' => __('Orphan photos', 'wp-photo-album-plus'), 'a_parent' => '-1', 'description' => __('This album contains refound lost photos', 'wp-photo-album-plus') ) );
wppa-non-admin.php CHANGED
@@ -3,7 +3,7 @@
3
* Package: wp-photo-album-plus
4
*
5
* Contains all the non admin stuff
6
- * Version 7.1.02
7
*
8
*/
9
@@ -273,54 +273,35 @@ echo '
273
}
274
275
/* LOAD JAVASCRIPT */
276
- add_action( 'init', 'wppa_add_javascript', 12 );
277
function wppa_add_javascript() {
278
- global $wppa_js_page_data_file;
279
280
- $in_footer = wppa_switch( 'defer_javascript' ) && ! wppa( 'ajax' ) && ! is_admin();
281
- if ( wppa( 'ajax' ) || wppa( 'cron' ) ) {
282
- $in_footer = false;
283
- }
284
-
285
- if ( $in_footer ) {
286
-
287
- // If the user wants the js in the footer, try to open a tempfile to collect the js data during processing the page
288
- // If opening a tempfile fails, revert to js in the header.
289
- $wppa_js_page_data_file = WPPA_UPLOAD_PATH . '/temp/wppa.' . wppa_get_unique_crypt() . '.js';
290
-
291
- $tempdir = WPPA_UPLOAD_PATH.'/temp';
292
- if ( ! wppa_is_dir( $tempdir ) ) @ wppa_mktree( $tempdir );
293
-
294
- $handle = wppa_fopen( $wppa_js_page_data_file, 'wb' );
295
296
- if ( $handle ) {
297
- fwrite( $handle, '/* WPPA+ Generated Page dependant javascript */'."\n" );
298
- fclose( $handle );
299
- }
300
- else {
301
- $wppa_js_page_data_file = '';
302
- $in_footer = false;
303
- }
304
- }
305
-
306
- // If still in footer...
307
if ( $in_footer ) {
308
add_action( 'wp_footer', 'wppa_add_javascripts' );
309
}
310
else {
311
add_action( 'wp_enqueue_scripts', 'wppa_add_javascripts' );
312
- $wppa_js_page_data_file = '';
313
}
314
}
315
316
// This function does the actual js enqueueing
317
function wppa_add_javascripts() {
318
global $wppa_api_version;
319
global $wppa_lang;
320
- global $wppa_js_page_data_file;
321
global $wppa_opt;
322
323
- $footer = $wppa_js_page_data_file !== '' && ! is_admin();
324
325
// If in footer and no wppa on the page found? Quit
326
if ( $footer && ! wppa( 'mocc' ) && ! wppa_switch( 'load_nicescroller' ) ) {
@@ -346,7 +327,6 @@ global $wppa_opt;
346
'wppa-popup',
347
'wppa-touch',
348
'wppa-utils',
349
- // 'jquery.nicescroll',
350
);
351
352
$js_dept1 = array( 'jquery', 'jquery-form', 'wppa-utils' );
@@ -361,7 +341,6 @@ global $wppa_opt;
361
array( 'jquery' ),
362
array( 'jquery' ),
363
array( 'jquery' ),
364
- // array( 'jquery' ),
365
);
366
367
$js_doits = array ( true,
@@ -371,7 +350,6 @@ global $wppa_opt;
371
true,
372
wppa_switch( 'slide_swipe' ) || $any_lightbox,
373
true,
374
- // wppa_switch( 'nicescroll' ) || wppa_switch( 'nicescroll_window' ),
375
);
376
377
$js_footer = array ( $footer,
@@ -381,7 +359,6 @@ global $wppa_opt;
381
$footer,
382
$footer,
383
$footer,
384
- // $footer,
385
);
386
387
foreach ( array_keys( $js_files ) as $idx ) {
@@ -458,9 +435,21 @@ global $wppa_opt;
458
wp_enqueue_script( 'wppa-init', WPPA_URL.'/dynamic/wppa-init.'.$wppa_lang.'.js', array( 'wppa' ), get_option( 'wppa_ini_js_version_'.$wppa_lang, $footer ) );
459
}
460
461
- // wppa.pagedata
462
if ( $footer ) {
463
- wp_enqueue_script( 'wppa-pagedata', str_replace( WPPA_UPLOAD_PATH, WPPA_UPLOAD_URL, $wppa_js_page_data_file ), array( 'wppa-init' ), rand( 0,4711 ), $footer );
464
}
465
}
466
@@ -487,7 +476,6 @@ add_action('wp_footer', 'wppa_load_footer');
487
function wppa_load_footer() {
488
global $wpdb;
489
global $wppa_session;
490
- global $wppa_js_page_data_file;
491
492
// If no wppa on the page, quit
493
if ( ! wppa( 'mocc' ) && ! wppa_switch( 'lightbox_global' ) ) {
@@ -783,7 +771,7 @@ function wppa_redirect() {
783
add_action( 'wp_head', 'wppa_add_page_specific_urls', '99' );
784
785
function wppa_add_page_specific_urls() {
786
- global $wppa_js_page_data_file;
787
788
$result = '
789
wppaImageDirectory = "' . wppa_get_imgdir() . '";
@@ -795,25 +783,23 @@ wppaIsIe = ' . ( wppa_is_ie() ? 'true' : 'false' ) . ';
795
wppaIsSafari = ' . ( wppa_is_safari() ? 'true' : 'false' ) . ';
796
wppaUseSvg = ' . ( wppa_use_svg() ? 'true' : 'false' ) . ';
797
wppaSlideshowNavigationType = "' . wppa_get_navigation_type() . '";
798
- wppaAudioHeight = '.wppa_get_audio_control_height().';';
799
800
// Relative urls?
801
$result = wppa_make_relative( $result );
802
803
- if ( $wppa_js_page_data_file ) {
804
- $handle = wppa_fopen( $wppa_js_page_data_file, 'ab' );
805
- if ( $handle ) {
806
- fwrite( $handle, "\n/* START Page specific urls and browser dependant data */" . $result . "\n/* END Page specific urls and browser dependant data */\n" );
807
- fclose( $handle );
808
- }
809
}
810
else {
811
echo '
812
- <!-- WPPA+ START Page specific urls and browser dependant data -->
813
- <script type="text/javascript" >
814
- ' . $result . '
815
- </script>
816
- <!-- WPPA+ END Page specific urls -->';
817
}
818
}
819
3
* Package: wp-photo-album-plus
4
*
5
* Contains all the non admin stuff
6
+ * Version 7.1.06
7
*
8
*/
9
273
}
274
275
/* LOAD JAVASCRIPT */
276
+ add_action( 'init', 'wppa_add_javascript' );
277
function wppa_add_javascript() {
278
279
+ $in_footer = wppa_js_in_footer();
280
281
+ // If in footer...
282
if ( $in_footer ) {
283
add_action( 'wp_footer', 'wppa_add_javascripts' );
284
}
285
else {
286
add_action( 'wp_enqueue_scripts', 'wppa_add_javascripts' );
287
}
288
}
289
290
+ // Decide if we want js in the footer
291
+ function wppa_js_in_footer() {
292
+
293
+ $result = wppa_switch( 'defer_javascript' ) && ! wppa( 'ajax' ) && ! is_admin() && ! wppa( 'cron' );
294
+
295
+ return $result;
296
+ }
297
+
298
// This function does the actual js enqueueing
299
function wppa_add_javascripts() {
300
global $wppa_api_version;
301
global $wppa_lang;
302
global $wppa_opt;
303
304
+ $footer = wppa_js_in_footer();
305
306
// If in footer and no wppa on the page found? Quit
307
if ( $footer && ! wppa( 'mocc' ) && ! wppa_switch( 'load_nicescroller' ) ) {
327
'wppa-popup',
328
'wppa-touch',
329
'wppa-utils',
330
);
331
332
$js_dept1 = array( 'jquery', 'jquery-form', 'wppa-utils' );
341
array( 'jquery' ),
342
array( 'jquery' ),
343
array( 'jquery' ),
344
);
345
346
$js_doits = array ( true,
350
true,
351
wppa_switch( 'slide_swipe' ) || $any_lightbox,
352
true,
353
);
354
355
$js_footer = array ( $footer,
359
$footer,
360
$footer,
361
$footer,
362
);
363
364
foreach ( array_keys( $js_files ) as $idx ) {
435
wp_enqueue_script( 'wppa-init', WPPA_URL.'/dynamic/wppa-init.'.$wppa_lang.'.js', array( 'wppa' ), get_option( 'wppa_ini_js_version_'.$wppa_lang, $footer ) );
436
}
437
438
+ // wppa-pagedata
439
if ( $footer ) {
440
+ add_action( 'wp_footer', 'wppa_print_psjs', 99 );
441
+ }
442
+ }
443
+
444
+ function wppa_print_psjs() {
445
+ global $wppa_js_page_data;
446
+
447
+ if ( $wppa_js_page_data ) {
448
+ echo
449
+ "\n<!-- wppa page data -->" .
450
+ "\n<script>\n" .
451
+ $wppa_js_page_data .
452
+ "\n</script>\n";
453
}
454
}
455
476
function wppa_load_footer() {
477
global $wpdb;
478
global $wppa_session;
479
480
// If no wppa on the page, quit
481
if ( ! wppa( 'mocc' ) && ! wppa_switch( 'lightbox_global' ) ) {
771
add_action( 'wp_head', 'wppa_add_page_specific_urls', '99' );
772
773
function wppa_add_page_specific_urls() {
774
+ global $wppa_js_page_data;
775
776
$result = '
777
wppaImageDirectory = "' . wppa_get_imgdir() . '";
783
wppaIsSafari = ' . ( wppa_is_safari() ? 'true' : 'false' ) . ';
784
wppaUseSvg = ' . ( wppa_use_svg() ? 'true' : 'false' ) . ';
785
wppaSlideshowNavigationType = "' . wppa_get_navigation_type() . '";
786
+ wppaAudioHeight = '.wppa_get_audio_control_height().';
787
+ ';
788
789
// Relative urls?
790
$result = wppa_make_relative( $result );
791
792
+ if ( wppa_js_in_footer() ) {
793
+ $wppa_js_page_data .=
794
+ "\n/* START Page specific urls and browser dependant data */" .
795
+ $result .
796
+ "\n/* END Page specific urls and browser dependant data */\n";
797
}
798
else {
799
echo '
800
+ <!-- WPPA+ START Page specific urls and browser dependant data -->
801
+ <script type="text/javascript" >' . $result . '</script>
802
+ <!-- WPPA+ END Page specific urls -->';
803
}
804
}
805
wppa-session.php CHANGED
@@ -3,7 +3,7 @@
3
* Package: wp-photo-album-plus
4
*
5
* Contains all session routines
6
- * Version 7.0.12
7
*
8
* Firefox modifies data in the superglobal $_SESSION.
9
* See https://bugzilla.mozilla.org/show_bug.cgi?id=991019
@@ -166,6 +166,9 @@ global $wppa_session;
166
}
167
}
168
169
wppa_save_session();
170
171
return true;
3
* Package: wp-photo-album-plus
4
*
5
* Contains all session routines
6
+ * Version 7.1.06
7
*
8
* Firefox modifies data in the superglobal $_SESSION.
9
* See https://bugzilla.mozilla.org/show_bug.cgi?id=991019
166
}
167
}
168
169
+ // Reset default randseed conditionally (if wp page id changed)
170
+ wppa_get_randseed();
171
+
172
wppa_save_session();
173
174
return true;
wppa-settings-autosave.php CHANGED
@@ -3,7 +3,7 @@
3
* Package: wp-photo-album-plus
4
*
5
* manage all options
6
- * Version 7.1.05
7
*
8
*/
9
@@ -172,7 +172,7 @@ global $wppa_supported_camara_brands;
172
break;
173
174
case 'wppa_audiostub_upload':
175
- if ( isset( $_FILES['file_3'] ) ) {
176
$file = $_FILES['file_3'];
177
if ( $file['error'] ) {
178
wppa_error_message(sprintf(__('Upload error %s', 'wp-photo-album-plus'), $file['error']));
@@ -206,7 +206,7 @@ global $wppa_supported_camara_brands;
206
break;
207
208
case 'wppa_documentstub_upload':
209
- if ( isset( $_FILES['file_4'] ) ) {
210
$file = $_FILES['file_4'];
211
if ( $file['error'] ) {
212
wppa_error_message(sprintf(__('Upload error %s', 'wp-photo-album-plus'), $file['error']));
@@ -240,7 +240,7 @@ global $wppa_supported_camara_brands;
240
break;
241
242
case 'wppa_multimedia_icon_upload':
243
- if ( isset( $_FILES['file_5'] ) ) {
244
$file = $_FILES['file_5'];
245
if ( $file['error'] ) {
246
wppa_error_message(sprintf(__('Upload error %s', 'wp-photo-album-plus'), $file['error']));
@@ -299,6 +299,9 @@ global $wppa_supported_camara_brands;
299
}
300
break;
301
302
default: wppa_error_message( 'Unimplemnted action key: ' . htmlentities( $key ) );
303
}
304
@@ -501,6 +504,9 @@ global $wppa_supported_camara_brands;
501
<form enctype="multipart/form-data" action="<?php echo(wppa_dbg_url(get_admin_url().'admin.php?page=wppa_options')) ?>" method="post">
502
503
<?php wp_nonce_field('wppa-nonce', 'wppa-nonce'); ?>
504
<input type="hidden" name="wppa-key" id="wppa-key" value="" />
505
<input type="hidden" name="wppa-sub" id="wppa-sub" value="" />
506
<?php if ( get_option('wppa_i_done') == 'done' ) { ?>
@@ -8609,8 +8615,8 @@ global $wppa_supported_camara_brands;
8609
$desc = __('Number of extra resize handler actions', 'wp-photo-album-plus');
8610
$help = '';
8611
$slug = 'wppa_extended_resize_count';
8612
- $opts = array('0','1','2','3','4','5','6','10','15','20');
8613
- $vals = $opts;
8614
$html = wppa_select($slug, $opts, $vals).' '.__('times', 'wp-photo-album-plus');
8615
$clas = '';
8616
$tags = 'system';
3
* Package: wp-photo-album-plus
4
*
5
* manage all options
6
+ * Version 7.1.06
7
*
8
*/
9
172
break;
173
174
case 'wppa_audiostub_upload':
175
+ if ( isset( $_FILES['file_3'] ) && $_FILES['file_3']['error'] != 4 ) {
176
$file = $_FILES['file_3'];
177
if ( $file['error'] ) {
178
wppa_error_message(sprintf(__('Upload error %s', 'wp-photo-album-plus'), $file['error']));
206
break;
207
208
case 'wppa_documentstub_upload':
209
+ if ( isset( $_FILES['file_4'] ) && $_FILES['file_4']['error'] != 4 ) {
210
$file = $_FILES['file_4'];
211
if ( $file['error'] ) {
212
wppa_error_message(sprintf(__('Upload error %s', 'wp-photo-album-plus'), $file['error']));
240
break;
241
242
case 'wppa_multimedia_icon_upload':
243
+ if ( isset( $_FILES['file_5'] ) && $_FILES['file_5']['error'] != 4 ) {
244
$file = $_FILES['file_5'];
245
if ( $file['error'] ) {
246
wppa_error_message(sprintf(__('Upload error %s', 'wp-photo-album-plus'), $file['error']));
299
}
300
break;
301
302
+ case 'dummy':
303
+ break;
304
+
305
default: wppa_error_message( 'Unimplemnted action key: ' . htmlentities( $key ) );
306
}
307
504
<form enctype="multipart/form-data" action="<?php echo(wppa_dbg_url(get_admin_url().'admin.php?page=wppa_options')) ?>" method="post">
505
506
<?php wp_nonce_field('wppa-nonce', 'wppa-nonce'); ?>
507
+ <div style="display:none;" >
508
+ <?php echo wppa_doit_button( 'dummy', 'dummy' ); ?>
509
+ </div>
510
<input type="hidden" name="wppa-key" id="wppa-key" value="" />
511
<input type="hidden" name="wppa-sub" id="wppa-sub" value="" />
512
<?php if ( get_option('wppa_i_done') == 'done' ) { ?>
8615
$desc = __('Number of extra resize handler actions', 'wp-photo-album-plus');
8616
$help = '';
8617
$slug = 'wppa_extended_resize_count';
8618
+ $opts = array('0','1','2','3','4','5','6','10','15','20',__( 'infinite', 'wp-photo-album-plus' ) );
8619
+ $vals = array('0','1','2','3','4','5','6','10','15','20','-1');
8620
$html = wppa_select($slug, $opts, $vals).' '.__('times', 'wp-photo-album-plus');
8621
$clas = '';
8622
$tags = 'system';
wppa-tinymce-photo-front.php CHANGED
@@ -2,7 +2,7 @@
2
/* wppa-tinymce-photo-front.php
3
* Pachkage: wp-photo-album-plus
4
*
5
- * Version 6.9.21
6
*
7
*/
8
@@ -46,7 +46,7 @@ function wppa_inject_3_js() {
46
global $wppa_api_version;
47
static $done;
48
global $wpdb;
49
- global $wppa_js_page_data_file;
50
51
52
if ( wppa_switch( 'photo_shortcode_enabled' ) && ! $done ) {
@@ -58,7 +58,8 @@ global $wppa_js_page_data_file;
58
wppa( 'in_widget', true );
59
60
// Things that wppa-tinymce.js AND OTHER MODULES!!! need to know
61
- $body = '
62
wppaImageDirectory = "' . wppa_get_imgdir() . '";
63
wppaPhotoDirectory = "' . WPPA_UPLOAD_URL . '/";
64
wppaNoPreview = "' . __( 'No Preview available', 'wp-photo-album-plus' ) . '";
@@ -68,19 +69,15 @@ wppaTxtErrUnable = "' . __( 'ERROR: unable to upload files.', 'wp-photo-album-pl
68
wppaOutputType = "' . wppa_opt( 'photo_shortcode_fe_type' ) . '";
69
wppaShortcodeTemplate = "' . esc_js( wppa_get_picture_html( array( 'id' => $id, 'type' => 'sphoto' ) ) ) . '";
70
wppaShortcodeTemplateId = "' . $id . '.' . wppa_get_photo_item( $id, 'ext' ) . '";
71
- ';
72
-
73
- if ( $wppa_js_page_data_file ) {
74
- $handle = wppa_fopen( $wppa_js_page_data_file, 'ab' );
75
- if ( $handle ) {
76
- fwrite( $handle, "\n/* START PHOTO sc and TynyMce fe vars */" . $body . "/* END PHOTO and TynMce */\n" );
77
- fclose( $handle );
78
- }
79
}
80
else {
81
- echo '
82
- <script type="text/javascript" >' .
83
- $body . '
84
</script>';
85
}
86
@@ -88,6 +85,5 @@ $body . '
88
wppa( 'in_widget', false );
89
90
$done = true;
91
-
92
}
93
}
2
/* wppa-tinymce-photo-front.php
3
* Pachkage: wp-photo-album-plus
4
*
5
+ * Version 7.1.06
6
*
7
*/
8
46
global $wppa_api_version;
47
static $done;
48
global $wpdb;
49
+ global $wppa_js_page_data;
50
51
52
if ( wppa_switch( 'photo_shortcode_enabled' ) && ! $done ) {
58
wppa( 'in_widget', true );
59
60
// Things that wppa-tinymce.js AND OTHER MODULES!!! need to know
61
+ $result =
62
+ '/* START PHOTO sc and TynyMce fe vars */
63
wppaImageDirectory = "' . wppa_get_imgdir() . '";
64
wppaPhotoDirectory = "' . WPPA_UPLOAD_URL . '/";
65
wppaNoPreview = "' . __( 'No Preview available', 'wp-photo-album-plus' ) . '";
69
wppaOutputType = "' . wppa_opt( 'photo_shortcode_fe_type' ) . '";
70
wppaShortcodeTemplate = "' . esc_js( wppa_get_picture_html( array( 'id' => $id, 'type' => 'sphoto' ) ) ) . '";
71
wppaShortcodeTemplateId = "' . $id . '.' . wppa_get_photo_item( $id, 'ext' ) . '";
72
+ /* END PHOTO and TynMce */';
73
+
74
+ if ( wppa_js_in_footer() ) {
75
+ $wppa_js_page_data .= $result;
76
}
77
else {
78
+ echo
79
+ '<script>
80
+ ' . $result . '
81
</script>';
82
}
83
85
wppa( 'in_widget', false );
86
87
$done = true;
88
}
89
}
wppa-utils.php CHANGED
@@ -4732,27 +4732,44 @@ function wppa_rename_files_sanitized( $root ) {
4732
4733
foreach( $my_import_files as $path ) {
4734
4735
// Process files
4736
- if ( is_file( $path ) ) {
4737
- $file = basename( $path );
4738
- $new_name = sanitize_file_name( $file );
4739
- if ( $new_name != $file ) {
4740
- rename( $path, $root . '/' . $new_name );
4741
- wppa_log( 'fso', 'Sanitized import filename ' . $path . ' to ' . $root . '/' . $new_name );
4742
}
4743
}
4744
4745
// Process directories
4746
- else {
4747
$file = basename( $path );
4748
4749
// Only process real subfolders
4750
if ( $file != '.' && $file != '..' ) {
4751
4752
// Recursively one level deeper
4753
wppa_rename_files_sanitized( $path );
4754
}
4755
}
4756
}
4757
}
4758
}
4732
4733
foreach( $my_import_files as $path ) {
4734
4735
+ // Sanitize path
4736
+ $new_path = dirname( $path ) . '/' . wppa_down_ext( sanitize_file_name( basename( $path ) ) );
4737
+
4738
// Process files
4739
+ if ( wppa_is_file( $path ) ) {
4740
+
4741
+ if ( $new_path != $path ) {
4742
+ wppa_rename( $path, $new_path );
4743
+ wppa_log( 'fso', 'Sanitized import filename ' . $path . ' to ' . $new_path );
4744
}
4745
}
4746
4747
// Process directories
4748
+ elseif ( wppa_is_dir( $path ) ) {
4749
+
4750
$file = basename( $path )