Initial commit: Backup der Webseiten
- zoesch.de - blitzkiste.net - gruene-hassberge (norbert.zoesch.de) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="pswp__bg"></div>
|
||||
<div class="pswp__scroll-wrap">
|
||||
<div class="pswp__container">
|
||||
<div class="pswp__item"></div>
|
||||
<div class="pswp__item"></div>
|
||||
<div class="pswp__item"></div>
|
||||
</div>
|
||||
<div class="pswp__ui pswp__ui--hidden">
|
||||
<div class="pswp__top-bar">
|
||||
<div class="pswp__counter"></div>
|
||||
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
|
||||
{if $theme_config->social_enabled}
|
||||
<button class="pswp__button pswp__button--share" title="Share"></button>
|
||||
{/if}
|
||||
<button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
|
||||
<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
|
||||
<button class="pswp__button pswp__button--details" title="Picture details"></button>
|
||||
<button class="pswp__button pswp__button--autoplay" title="AutoPlay"></button>
|
||||
<div class="pswp__preloader">
|
||||
<div class="pswp__preloader__icn">
|
||||
<div class="pswp__preloader__cut">
|
||||
<div class="pswp__preloader__donut"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
|
||||
<div class="pswp__share-tooltip"></div>
|
||||
</div>
|
||||
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button>
|
||||
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button>
|
||||
<div class="pswp__caption">
|
||||
<div class="pswp__caption__center"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,378 @@
|
||||
{combine_css path="themes/bootstrap_darkroom/components/photoswipe/dist/photoswipe.css" order=-11}
|
||||
{combine_css path="themes/bootstrap_darkroom/components/photoswipe/dist/default-skin/default-skin.css" order=-12}
|
||||
{combine_script id="photoswipe" require="jquery" path="themes/bootstrap_darkroom/components/photoswipe/dist/photoswipe.min.js" load="footer"}
|
||||
{combine_script id="photoswipe.ui" require="photoswipe" path="themes/bootstrap_darkroom/components/photoswipe/dist/photoswipe-ui-default.min.js" load="footer"}
|
||||
{footer_script require='jquery' require="photoswipe.ui"}{strip}
|
||||
var selector = '{$selector}';
|
||||
|
||||
function startPhotoSwipe(idx) {
|
||||
$(selector).each(function() {
|
||||
$('#thumbnail-active').addClass('active');
|
||||
var $pic = $(this),
|
||||
getItems = function() {
|
||||
var items = [];
|
||||
$pic.find('a').each(function() {
|
||||
if ($(this).attr('data-video')) {
|
||||
var $src = $(this).data('src-original'),
|
||||
$size = $(this).data('size-original').split('x'),
|
||||
$width = $size[0],
|
||||
$height = $size[1],
|
||||
$src_preview = $(this).data('src-medium'),
|
||||
$size_preview = $(this).data('size-medium').split(' x '),
|
||||
$width_preview = $size_preview[0],
|
||||
$height_preview = $size_preview[1],
|
||||
$href = $(this).attr('href'),
|
||||
$title = '<a href="' + $href + '">' + $(this).data('name') + '</a><ul><li>' + $(this).data('description') + '</li></ul>';
|
||||
var item = {
|
||||
is_video : true,
|
||||
href : $href,
|
||||
src : $src_preview,
|
||||
w : $width_preview,
|
||||
h : $height_preview,
|
||||
title : $title,
|
||||
videoProperties: {
|
||||
src : $src,
|
||||
w : $width,
|
||||
h : $height,
|
||||
}
|
||||
};
|
||||
} else {
|
||||
var $src_xlarge = $(this).data('src-xlarge'),
|
||||
$size_xlarge = $(this).data('size-xlarge').split(' x '),
|
||||
$width_xlarge = $size_xlarge[0],
|
||||
$height_xlarge = $size_xlarge[1],
|
||||
$src_large = $(this).data('src-large'),
|
||||
$size_large = $(this).data('size-large').split(' x '),
|
||||
$width_large = $size_large[0],
|
||||
$height_large = $size_large[1],
|
||||
$src_medium = $(this).data('src-medium'),
|
||||
$size_medium = $(this).data('size-medium').split(' x '),
|
||||
$width_medium = $size_medium[0],
|
||||
$height_medium = $size_medium[1],
|
||||
$href = $(this).attr('href'),
|
||||
$title = '<a href="' + $href + '"><div><div>' + $(this).data('name');
|
||||
{if $theme_config_extra->photoswipe_metadata}
|
||||
$title += '<ul id="pswp--caption--date_created" class="pull-right"><li><em>' + $(this).data('date-created') + '</em></li></ul>';
|
||||
{/if}
|
||||
$title += '</div>';
|
||||
{literal}
|
||||
if ($(this).data('description').length > 0) {$title += '<ul id="pswp--caption--description"><li>' + $(this).data('description') + '</li></ul>'; }
|
||||
{/literal}
|
||||
{if $theme_config_extra->photoswipe_metadata}
|
||||
$title += '<ul id="pswp--caption--metadata" class="pull-right">';
|
||||
{literal}
|
||||
if ($(this).data('exif-make').length > 0) {$title += '<li><em>' + $(this).data('exif-make') + '</em></li>';}
|
||||
if ($(this).data('exif-model').length > 0) {$title += '<li><em> ' + $(this).data('exif-model') + '</em></li>';}
|
||||
if ($(this).data('exif-lens').length > 0) {$title += '<li><em>, ' + $(this).data('exif-lens') + '</em></li>';}
|
||||
if ($(this).data('exif-focal-length').length > 0) {$title += '<li><em>, ' + $(this).data('exif-focal-length') + '</em></li>';}
|
||||
if ($(this).data('exif-apperture') > 0) {$title += '<li><em>, f/' + $(this).data('exif-apperture') + '</em></li>';}
|
||||
if ($(this).data('exif-shutter-speed').length > 0) {$title += '<li><em>, ' + $(this).data('exif-shutter-speed') + '</em></li>';}
|
||||
if ($(this).data('exif-iso') > 0) {$title += '<li><em>, ISO' + $(this).data('exif-iso') + '</em></li>';}
|
||||
{/literal}
|
||||
$title += '</ul>';
|
||||
{/if}
|
||||
$title += '</div></a>';
|
||||
var item = {
|
||||
is_video: false,
|
||||
href: $href,
|
||||
mediumImage: {
|
||||
src : $src_medium,
|
||||
w : $width_medium,
|
||||
h : $height_medium,
|
||||
title : $title
|
||||
},
|
||||
largeImage: {
|
||||
src : $src_large,
|
||||
w : $width_large,
|
||||
h : $height_large,
|
||||
title : $title
|
||||
},
|
||||
xlargeImage: {
|
||||
src : $src_xlarge,
|
||||
w : $width_xlarge,
|
||||
h : $height_xlarge,
|
||||
title : $title
|
||||
}
|
||||
};
|
||||
}
|
||||
items.push(item);
|
||||
});
|
||||
return items;
|
||||
};
|
||||
var items = getItems();
|
||||
|
||||
var $pswp = $('.pswp')[0];
|
||||
if (typeof(idx) === "number") {
|
||||
var $index = idx;
|
||||
} else {
|
||||
var $index = $(selector + ' a.active').data('index');
|
||||
}
|
||||
if (navigator.userAgent.match(/IEMobile\/11\.0/)) {
|
||||
var $history = false;
|
||||
} else {
|
||||
var $history = true;
|
||||
}
|
||||
var options = {
|
||||
index: $index,
|
||||
showHideOpacity: true,
|
||||
closeOnScroll: false,
|
||||
closeOnVerticalDrag: false,
|
||||
focus: false,
|
||||
history: $history,
|
||||
preload: [1,2],
|
||||
{if $theme_config->social_enabled}
|
||||
shareButtons: [
|
||||
{if $theme_config->social_facebook}{literal}
|
||||
{id:'facebook', label:'<i class="fa fa-facebook fa-2x"></i> Share on Facebook', url:'https://www.facebook.com/sharer/sharer.php?u={{url}}'},
|
||||
{/literal}{/if}
|
||||
{if $theme_config->social_twitter}{literal}
|
||||
{id:'twitter', label:'<i class="fa fa-twitter fa-2x"></i> Tweet', url:'https://twitter.com/intent/tweet?url={{url}}'},
|
||||
{/literal}{/if}
|
||||
{if $theme_config->social_google_plus}{literal}
|
||||
{id:'google', label:'<i class="fa fa-google-plus fa-2x"></i> Share on Google+', url:'https://plus.google.com/share?url={{url}}'},
|
||||
{/literal}{/if}
|
||||
{if get_device() == 'mobile'}{literal}
|
||||
{id:'whatsapp', label:'<i class="fa fa-whatsapp fa-2x"></i> Share via WhatsApp', url:'whatsapp://send?text={{url}}', download:true},
|
||||
{/literal}{/if}
|
||||
{literal}
|
||||
{id:'pinterest', label:'<i class="fa fa-pinterest fa-2x"></i> Pin it', url:'http://www.pinterest.com/pin/create/button/?url={{url}}&media=' + window.location + '/../{{raw_image_url}}'},
|
||||
{id:'download', label:'<i class="fa fa-cloud-download fa-2x"></i> Download image', url:'{{raw_image_url}}', download:true}
|
||||
{/literal}
|
||||
],
|
||||
{/if}
|
||||
};
|
||||
var photoSwipe = new PhotoSwipe($pswp, PhotoSwipeUI_Default, items, options);
|
||||
var realViewportWidth,
|
||||
useLargeImages = false,
|
||||
firstResize = true,
|
||||
imageSrcWillChange;
|
||||
|
||||
photoSwipe.listen('beforeResize', function() {
|
||||
realViewportWidth = photoSwipe.viewportSize.x * window.devicePixelRatio;
|
||||
if(useLargeImages && realViewportWidth < 1335) {
|
||||
useLargeImages = false;
|
||||
imageSrcWillChange = true;
|
||||
} else if(!useLargeImages && realViewportWidth >= 1335) {
|
||||
useLargeImages = true;
|
||||
imageSrcWillChange = true;
|
||||
}
|
||||
|
||||
if(imageSrcWillChange && !firstResize) {
|
||||
photoSwipe.invalidateCurrItems();
|
||||
}
|
||||
|
||||
if(firstResize) {
|
||||
firstResize = false;
|
||||
}
|
||||
|
||||
imageSrcWillChange = false;
|
||||
});
|
||||
|
||||
photoSwipe.listen('gettingData', function(index, item) {
|
||||
if(!item.is_video) {
|
||||
if( useLargeImages ) {
|
||||
item.src = item.xlargeImage.src;
|
||||
item.w = item.xlargeImage.w;
|
||||
item.h = item.xlargeImage.h;
|
||||
item.title = item.xlargeImage.title;
|
||||
} else {
|
||||
item.src = item.largeImage.src;
|
||||
item.w = item.largeImage.w;
|
||||
item.h = item.largeImage.h;
|
||||
item.title = item.largeImage.title;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var autoplayId = null;
|
||||
$('.pswp__button--autoplay').on('click touchstart', function(event) {
|
||||
event.preventDefault();
|
||||
if (autoplayId) {
|
||||
clearInterval(autoplayId);
|
||||
autoplayId = null;
|
||||
$('.pswp__button--autoplay').removeClass('stop');
|
||||
} else {
|
||||
autoplayId = setInterval(function() { photoSwipe.next(); $index = photoSwipe.getCurrentIndex(); }, {$theme_config_extra->photoswipe_interval});
|
||||
$('.pswp__button--autoplay').addClass('stop');
|
||||
}
|
||||
});
|
||||
|
||||
photoSwipe.listen('destroy', function() {
|
||||
if (autoplayId) {
|
||||
clearInterval(autoplayId);
|
||||
autoplayId = null;
|
||||
$('.pswp__button--autoplay').removeClass('stop');
|
||||
}
|
||||
$('.pswp__button--autoplay').off('click touchstart');
|
||||
$(selector).find('a.active').removeClass('active');
|
||||
});
|
||||
|
||||
photoSwipe.init();
|
||||
|
||||
detectVideo(photoSwipe);
|
||||
|
||||
photoSwipe.listen('initialZoomInEnd', function() {
|
||||
curr_idx = photoSwipe.getCurrentIndex();
|
||||
if (curr_idx !== $index && autoplayId == null) {
|
||||
photoSwipe.goTo($index);
|
||||
}
|
||||
$('.pswp__button--details').on('click touchstart', function() {
|
||||
location.href = photoSwipe.currItem.href
|
||||
});
|
||||
});
|
||||
|
||||
photoSwipe.listen('afterChange', function() {
|
||||
detectVideo(photoSwipe);
|
||||
$('.pswp__button--details').off().on('click touchstart', function() {
|
||||
location.href = photoSwipe.currItem.href
|
||||
});
|
||||
});
|
||||
|
||||
photoSwipe.listen('beforeChange', function() {
|
||||
removeVideo();
|
||||
});
|
||||
|
||||
photoSwipe.listen('resize', function() {
|
||||
if ($('.pswp-video-modal').length > 0) {
|
||||
var vsize = setVideoSize(photoSwipe.currItem, photoSwipe.viewportSize);
|
||||
console.log('PhotoSwipe resize in action. Setting video size to ' + vsize.w + 'x' + vsize.h);
|
||||
$('.pswp-video-modal').css({literal}{'width':vsize.w, 'height':vsize.h}{/literal});
|
||||
updateVideoPosition(photoSwipe);
|
||||
}
|
||||
});
|
||||
|
||||
photoSwipe.listen('close', function() {
|
||||
removeVideo();
|
||||
});
|
||||
});
|
||||
|
||||
function removeVideo() {
|
||||
if ($('.pswp-video-modal').length > 0) {
|
||||
if ($('#pswp-video').length > 0) {
|
||||
$('#pswp-video')[0].pause();
|
||||
$('#pswp-video')[0].src = "";
|
||||
$('.pswp-video-modal').remove();
|
||||
$('.pswp__img').css('visibility','visible');
|
||||
$(document).off('webkitfullscreenchange mozfullscreenchange fullscreenchange');
|
||||
if (navigator.userAgent.match(/(iPhone|iPad|Android)/)) {
|
||||
$('.pswp-video-modal').css('background', '');
|
||||
}
|
||||
} else {
|
||||
$('.pswp-video-modal').remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function detectVideo(photoSwipe) {
|
||||
var is_video = photoSwipe.currItem.is_video;
|
||||
if (is_video) {
|
||||
addVideo(photoSwipe.currItem, photoSwipe.viewportSize);
|
||||
updateVideoPosition(photoSwipe);
|
||||
}
|
||||
}
|
||||
|
||||
function addVideo(item, vp) {
|
||||
var vfile = item.videoProperties.src;
|
||||
var vsize = setVideoSize(item, vp);
|
||||
var v = $('<div />', {
|
||||
class:'pswp-video-modal',
|
||||
css : ({literal}{'position': 'absolute','width':vsize.w, 'height':vsize.h}{/literal})
|
||||
|
||||
});
|
||||
v.one('{if get_device() == 'desktop'}click{else}tap{/if}', (function(event) {
|
||||
event.preventDefault();
|
||||
var playerCode = '<video id="pswp-video" width="100%" height="auto" autoplay controls>' +
|
||||
'<source src="'+vfile+'" type="video/mp4"></source>' +
|
||||
'</video>';
|
||||
$(this).html(playerCode);
|
||||
$('.pswp__img').css('visibility','hidden');
|
||||
$('.pswp-video-modal video').css('visibility', 'visible');
|
||||
if (navigator.userAgent.match(/(iPhone|iPad|Android)/)) {
|
||||
$('.pswp-video-modal').css('background', 'none');
|
||||
}
|
||||
if ($('.pswp__button--autoplay.stop').length > 0) $('.pswp__button--autoplay.stop')[0].click();
|
||||
}));
|
||||
if (navigator.appVersion.indexOf("Windows") !== -1 && navigator.userAgent.match(/(Edge|rv:11)/)) {
|
||||
v.insertAfter('.pswp__scroll-wrap');
|
||||
} else {
|
||||
v.appendTo('.pswp__scroll-wrap');
|
||||
}
|
||||
|
||||
{* this is soooo nasty, but i have no better idea to fix the fullscreen video issue on OS X, Chrome/Windows *}
|
||||
if ((navigator.appVersion.indexOf("Windows") !== -1 && navigator.userAgent.match(/(Chrome|Firefox)/)) || navigator.userAgent.match(/(X11|Macintosh)/)) {
|
||||
$(document).on('webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange', function(e) {
|
||||
var state = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen,
|
||||
event = state ? 'FullscreenOn' : 'FullscreenOff',
|
||||
holder_height = item.h;
|
||||
if (event === 'FullscreenOn') {
|
||||
$('#the_page').hide();
|
||||
$('body').css('height', window.screen.height);
|
||||
$('.pswp-video-modal').css('height', window.screen.height);
|
||||
} else {
|
||||
$('#the_page').show();
|
||||
$('body').css('height', '');
|
||||
$('.pswp-video-modal').css('height', holder_height);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function updateVideoPosition(o, w, h) {
|
||||
var item = o.currItem;
|
||||
var vp = o.viewportSize;
|
||||
var vsize = setVideoSize(item, vp);
|
||||
var top = (vp.y - vsize.h)/2;
|
||||
var left = (vp.x - vsize.w)/2;
|
||||
$('.pswp-video-modal').css({literal}{position:'absolute',top:top, left:left}{/literal});
|
||||
}
|
||||
|
||||
function setVideoSize(item, vp) {
|
||||
var w = item.videoProperties.w,
|
||||
h = item.videoProperties.h,
|
||||
vw = vp.x,
|
||||
vh = vp.y,
|
||||
r;
|
||||
if (vw < w) {
|
||||
r = w/h;
|
||||
vh = vw/r;
|
||||
if (vp.y < h) {
|
||||
vh = vp.y*0.85;
|
||||
vw = vh*r;
|
||||
}
|
||||
w = vw;
|
||||
h = vh;
|
||||
} else if (vp.y < h) {
|
||||
r = w/h;
|
||||
vh = vp.y*0.85;
|
||||
vw = vh*r;
|
||||
w = vw;
|
||||
h = vh;
|
||||
}
|
||||
|
||||
return {
|
||||
w: w,
|
||||
h: h
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
$('#startPhotoSwipe').on('click', function(event) {
|
||||
event.preventDefault;
|
||||
startPhotoSwipe();
|
||||
});
|
||||
{if get_device() != 'desktop'}
|
||||
$('#theImage').on('doubletap', startPhotoSwipe);
|
||||
{/if}
|
||||
{if isset($U_SLIDESHOW_START)}
|
||||
$('#startSlideshow').on('click touchstart', function() {
|
||||
startPhotoSwipe(0);
|
||||
$('.pswp__button--autoplay')[0].click();
|
||||
});
|
||||
{/if}
|
||||
if (window.location.hash === "#start-slideshow") {
|
||||
startPhotoSwipe();
|
||||
$('.pswp__button--autoplay')[0].click();
|
||||
}
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
@@ -0,0 +1,152 @@
|
||||
{if isset($loaded_plugins['rv_gmaps']) && $BODY_ID == "thePicturePage"}
|
||||
{footer_script require='jquery'}{strip}
|
||||
$(document).ready(function() {
|
||||
$('.pwg-icon-map').removeClass('pwg-icon').closest('a').html('<i class="fa fa-globe" aria-hidden="true"></i>').removeClass('pwg-state-default pwg-button').wrap('<li></li>');
|
||||
$('#map').wrap('<div id="mapContainer" class="container"></div>');
|
||||
$('#mapPicture').prependTo('#mapContainer');
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
{if isset($loaded_plugins['rv_gmaps']) && $BODY_ID == "theCategoryPage"}
|
||||
{footer_script require='jquery'}{strip}
|
||||
$(document).ready(function() {
|
||||
$('.pwg-icon-map').removeClass('pwg-icon').closest('a').html('<i class="fa fa-globe" aria-hidden="true"></i>').removeClass('pwg-state-default pwg-button');
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
|
||||
{if isset($loaded_plugins['piwigo-openstreetmap']) && $BODY_ID == "thePicturePage"}
|
||||
{footer_script require='jquery'}{strip}
|
||||
$(document).ready(function() {
|
||||
var n = $('#map-info').closest('tr');
|
||||
$('#map-info').changeElementType('tr');
|
||||
$('#map-info>dt').changeElementType('th');
|
||||
$('#map-info>th').attr("scope", "row");
|
||||
$('#map-info>dd').changeElementType('td');
|
||||
$('#map-info').insertBefore(n);
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
|
||||
{if isset($loaded_plugins['oAuth'])}
|
||||
{footer_script require='jquery'}{strip}
|
||||
$(document).ready(function() {
|
||||
$('#navbar-menubar>.nav>dd>#quickconnect').attr('id', 'oAuthQuickconnect');
|
||||
$('#oAuthQuickconnect legend').addClass('dropdown-header').appendTo('#identificationDropdown>.dropdown-menu').changeElementType('li');
|
||||
$('#oAuthQuickconnect').closest('dd').appendTo('#identificationDropdown>.dropdown-menu');
|
||||
$('#oAuthQuickconnect').closest('dd').changeElementType('li');
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
|
||||
{if isset($loaded_plugins['ProtectedAlbums']) && $BODY_ID == 'theCategoryPage'}
|
||||
{footer_script require='jquery'}{strip}
|
||||
var form = $('#content>form');
|
||||
$(form).addClass('form-inline').wrap('<div class="col-sm-12"></div>');
|
||||
$(form).find('legend').changeElementType('h4');
|
||||
$(form).find('fieldset').changeElementType('div');
|
||||
$(form).find('div').addClass('form-group');
|
||||
$(form).find('div>input[type="password"]').addClass('form-control');
|
||||
$(form).find('div>input[type="submit"]').changeElementType('button');
|
||||
$(form).find('button').addClass('btn btn-primary').text('Login');
|
||||
$(form).find('label').remove();
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
|
||||
{if isset($loaded_plugins['user_custom_fields']) && ($BODY_ID == 'theProfilePage' || $BODY_ID == 'theRegisterPage')}
|
||||
{footer_script require='jquery'}{strip}
|
||||
var ucf_body_id = $('{if $BODY_ID == 'theProfilePage'}#theProfilePage{else}#theRegisterPage{/if}');
|
||||
$(document).ready(function() {
|
||||
$(ucf_body_id).find('fieldset>legend').remove();
|
||||
$(ucf_body_id).find('fieldset>ul>li').changeElementType('div');
|
||||
$(ucf_body_id).find('fieldset>ul>div').addClass('form-group').unwrap();
|
||||
$(ucf_body_id).find('fieldset>div>.property>label').addClass('col-sm-2 control-label').unwrap();
|
||||
$(ucf_body_id).find('fieldset>.form-group>input').wrap('<div class="col-sm-4"></div>').addClass('form-control');
|
||||
$('#theProfilePage .property').addClass('col-sm-2 control-label').changeElementType('label');
|
||||
var u = $('#theProfilePage form#profile .form-group').first().contents().filter(function() { return this.nodeType == 3; }).eq(1);
|
||||
$(u).wrap('<div class="col-sm-4"><p class="form-control-static"></p></div>');
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
|
||||
{if isset($loaded_plugins['BatchDownloader'])}
|
||||
{footer_script require='jquery'}{strip}
|
||||
$(document).ready(function() {
|
||||
if ($('#batchDownloadLink').next('div#batchDownloadBox').length > 0) {
|
||||
$('#batchDownloadLink').closest('li').addClass('dropdown');
|
||||
$('#batchDownloadLink').addClass('dropdown-toggle').removeClass('pwg-state-default pwg-button').attr('data-toggle', 'dropdown').attr('href', '#');
|
||||
$('#batchDownloadLink .pwg-button-text').after('<span class="caret"></span>');
|
||||
$('#batchDownloadBox').changeElementType('ul');
|
||||
$('#batchDownloadBox a').wrap('<li></li>');
|
||||
$('#batchDownloadBox').attr('role', 'menu').attr('style', '');
|
||||
$('#batchDownloadBox .switchBoxTitle').changeElementType('li');
|
||||
$('#batchDownloadBox .switchBoxTitle').addClass('dropdown-header').removeClass('switchBoxTitle');
|
||||
$('#batchDownloadBox br').remove();
|
||||
$('#batchDownloadBox').addClass('dropdown-menu').removeClass('switchBox');
|
||||
}
|
||||
if ($('.navbar-main dt:contains("Downloads")').length > 0) {
|
||||
$('.navbar-main dt:contains("Downloads")').next('dd').appendTo($('.navbar-main dt:contains("Downloads")'));
|
||||
$('.navbar-main dt:contains("Downloads")').wrap('<li></li>');
|
||||
$('.navbar-main dt:contains("Downloads")').closest('li').addClass('dropdown').attr('id', 'bd_downloads');
|
||||
$('.navbar-main dt:contains("Downloads")').changeElementType('a');
|
||||
$('#bd_downloads>a').addClass('dropdown-toggle').attr('data-toggle', 'dropdown').append('<span class="caret"></span>');
|
||||
$('#bd_downloads dd ul').appendTo('#bd_downloads');
|
||||
$('#bd_downloads dd').remove();
|
||||
$('#bd_downloads ul').addClass('dropdown-menu');
|
||||
$('#bd_downloads ul').find('span').each(function() { $(this).appendTo($(this).prev('a')); });
|
||||
}
|
||||
});
|
||||
$(window).load(function() {
|
||||
if ($('#batchDownloadLink').next('ul#batchDownloadBox').length > 0) {
|
||||
$('#batchDownloadLink').off().on('click', function() { $('#downloadSizeLink').dropdown() });
|
||||
}
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
|
||||
|
||||
{if isset($loaded_plugins['download_by_size'])}
|
||||
{footer_script require='jquery'}{strip}
|
||||
$(document).ready(function() {
|
||||
var liDownloadSizeLink = $('#downloadSizeLink').closest('li');
|
||||
$('#downloadSizeBox').appendTo(liDownloadSizeLink);
|
||||
$(liDownloadSizeLink).addClass('dropdown');
|
||||
$('#downloadSizeLink').addClass('dropdown-toggle').removeClass('pwg-state-default pwg-button').attr('data-toggle', 'dropdown');
|
||||
$('#downloadSizeLink .pwg-button-text').after('<span class="caret"></span>');
|
||||
$('#downloadSizeBox').changeElementType('ul');
|
||||
$('#downloadSizeBox a').wrap('<li></li>');
|
||||
$('#downloadSizeBox').attr('role', 'menu').attr('style', '');
|
||||
$('#downloadSizeBox .switchBoxTitle').changeElementType('li');
|
||||
$('#downloadSizeBox .switchBoxTitle').addClass('dropdown-header').removeClass('switchBoxTitle');
|
||||
$('#downloadSizeBox br').remove();
|
||||
$('#downloadSizeBox').addClass('dropdown-menu').removeClass('switchBox');
|
||||
});
|
||||
|
||||
$(window).load(function() {
|
||||
$('#downloadSizeBox').off('mouseleave click');
|
||||
$('#downloadSizeLink').off().on('click', function() { $('#downloadSizeLink').dropdown() });
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
|
||||
{if isset($loaded_plugins['UserCollections']) && ($BODY_ID == 'thePicturePage' || $BODY_ID == 'theCollectionPage')}
|
||||
{footer_script require='jquery'}{strip}
|
||||
$(document).ready(function() {
|
||||
$('#thePicturePage .nav a.addCollection').wrap('<li id="collectionsDropdownBS" class="dropdown"></li>').removeClass('pwg-button pwg-state-default').addClass('dropdown-toggle');
|
||||
$('#thePicturePage #collectionsDropdown').appendTo('#collectionsDropdownBS');
|
||||
$('#thePicturePage #collectionsDropdownBS .user-collections-icon').removeClass('pwg-icon');
|
||||
$('#thePicturePage #collectionsDropdownBS .pwg-button-text').remove();
|
||||
$('#theCollectionPage .navbar .pwg-icon').removeClass('pwg-icon');
|
||||
$('#theCollectionPage input[type="submit"]').addClass('btn btn-primary');
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
|
||||
{if isset($loaded_plugins['PWG_Stuffs'])}
|
||||
{footer_script require='jquery'}{strip}
|
||||
$(document).ready(function() {
|
||||
var stuffAboveContent = $('.navbar-default').next('.pwgstuffs-container');
|
||||
$(stuffAboveContent).insertBefore('#content-spacer');
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
@@ -0,0 +1,62 @@
|
||||
{combine_css path="themes/bootstrap_darkroom/components/slick-carousel/slick/slick.css"}
|
||||
{combine_css path="themes/bootstrap_darkroom/components/slick-carousel/slick/slick-theme.css"}
|
||||
{combine_script id="slick.carousel" require="jquery" path="themes/bootstrap_darkroom/components/slick-carousel/slick/slick.min.js" load="footer"}
|
||||
{footer_script require='jquery' require="slick.carousel"}{strip}
|
||||
$(document).ready(function(){
|
||||
$('#thumbnailCarousel').slick({
|
||||
infinite: {if $theme_config_extra->slick_infinite}true{else}false{/if},
|
||||
lazyLoad: '{if $theme_config_extra->slick_lazyload == "progressive"}progressive{else}ondemand{/if}',
|
||||
{if $theme_config_extra->slick_centered}
|
||||
centerMode: true,
|
||||
swipeToSlide: true,
|
||||
slidesToShow: {if sizeOf($thumbnails) <= 7}{if sizeOf($thumbnails) > 2 && (sizeOf($thumbnails) % 2 == 0)}{sizeOf($thumbnails) -1}{else}{sizeOf($thumbnails)}{/if}{else}7{/if},
|
||||
slidesToScroll: 1,
|
||||
responsive: [
|
||||
{
|
||||
breakpoint: 1200,
|
||||
settings: {
|
||||
slidesToShow: {if sizeOf($thumbnails) <= 5}{if sizeOf($thumbnails) > 2 && (sizeOf($thumbnails) % 2 == 0)}{sizeOf($thumbnails) -1}{else}{sizeOf($thumbnails)}{/if}{else}5{/if},
|
||||
}
|
||||
},
|
||||
{else}
|
||||
centerMode: false,
|
||||
slidesToShow: {if sizeOf($thumbnails) <= 7}{sizeOf($thumbnails)}{else}7{/if},
|
||||
slidesToScroll: {if sizeOf($thumbnails) <= 7}{sizeOf($thumbnails) - 1}{else}6{/if},
|
||||
responsive: [
|
||||
{
|
||||
breakpoint: 1200,
|
||||
settings: {
|
||||
slidesToShow: {if sizeOf($thumbnails) <= 5}{sizeOf($thumbnails)}{else}5{/if},
|
||||
slidesToScroll: {if sizeOf($thumbnails) <= 5}{sizeOf($thumbnails) - 1}{else}4{/if}
|
||||
}
|
||||
},
|
||||
{
|
||||
breakpoint: 1024,
|
||||
settings: {
|
||||
slidesToShow: {if sizeOf($thumbnails) <= 4}{sizeOf($thumbnails)}{else}4{/if},
|
||||
slidesToScroll: {if sizeOf($thumbnails) <= 4}{sizeOf($thumbnails) - 1}{else}3{/if}
|
||||
}
|
||||
},
|
||||
{/if}
|
||||
{
|
||||
breakpoint: 600,
|
||||
settings: {
|
||||
slidesToShow: 3,
|
||||
slidesToScroll: 3
|
||||
}
|
||||
},
|
||||
{
|
||||
breakpoint: 420,
|
||||
settings: {
|
||||
centerMode: false,
|
||||
slidesToShow: 2,
|
||||
slidesToScroll: 2
|
||||
}
|
||||
}]
|
||||
});
|
||||
var currentThumbnailIndex = $('#thumbnailCarousel .thumbnail-active').data('slick-index');
|
||||
$('#thumbnailCarousel').slick('goTo', currentThumbnailIndex, true);
|
||||
|
||||
$('#thumbnailCarousel').show();
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
@@ -0,0 +1,35 @@
|
||||
<nav class="navbar navbar-default" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<div class="navbar-brand"><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}<a href>{'About'|@translate}</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{include file='infos_errors.tpl'}
|
||||
|
||||
<div class="container">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'About'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{$ABOUT_MESSAGE}
|
||||
{if isset($THEME_ABOUT) }
|
||||
<ul>
|
||||
<li>{$THEME_ABOUT}</li>
|
||||
</ul>
|
||||
{/if}
|
||||
{if not empty($about_msgs)}
|
||||
{foreach from=$about_msgs item=elt}
|
||||
{$elt}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,88 @@
|
||||
{if isset($comment_derivative_params)}
|
||||
{strip}{html_style}
|
||||
.commentElement .illustration{
|
||||
width:{$comment_derivative_params->max_width()+5}px
|
||||
}
|
||||
|
||||
.content .commentElement .description{
|
||||
min-height:{$comment_derivative_params->max_height()+5}px
|
||||
}
|
||||
{/html_style}{/strip}
|
||||
{footer_script}var error_icon = "{$ROOT_URL}{$themeconf.icon_dir}/errors_small.png";{/footer_script}
|
||||
<!--<div class="loader"><img src="{$ROOT_URL}{$themeconf.img_dir}/ajax_loader.gif"></div>-->
|
||||
{/if}
|
||||
<div id="commentList">
|
||||
{foreach from=$comments item=comment name=comment_loop}
|
||||
<div class="comment">
|
||||
<div class="image">
|
||||
{if isset($comment.src_image)}
|
||||
{if isset($comment_derivative_params)}
|
||||
{define_derivative name='cropped_derivative_params' width=$comment_derivative_params->sizing->ideal_size[0] height=$comment_derivative_params->sizing->ideal_size[0] crop=true}
|
||||
{else}
|
||||
{define_derivative name='cropped_derivative_params' width=$derivative_params->sizing->ideal_size[0] height=$derivative_params->sizing->ideal_size[0] crop=true}
|
||||
{/if}
|
||||
{assign var=derivative value=$pwg->derivative($cropped_derivative_params, $comment.src_image)}
|
||||
{if !$derivative->is_cached()}
|
||||
{combine_script id='jquery.ajaxmanager' path='themes/default/js/plugins/jquery.ajaxmanager.js' load='footer'}
|
||||
{combine_script id='thumbnails.loader' path='themes/default/js/thumbnails.loader.js' require='jquery.ajaxmanager' load='footer'}
|
||||
{/if}
|
||||
<a href="{$comment.U_PICTURE}">
|
||||
<img {if $derivative->is_cached()}src="{$derivative->get_url()}"{else}src="{$ROOT_URL}{$themeconf.icon_dir}/img_small.png" data-src="{$derivative->get_url()}"{/if} alt="{$comment.ALT}">
|
||||
</a>
|
||||
{else}
|
||||
{include file="http_scheme.tpl"}
|
||||
<img class="gravatar" src="//www.gravatar.com/avatar/{$comment.EMAIL|trim|strtolower|md5}?d={$http_scheme}://{$smarty.server.HTTP_HOST}/{get_gallery_home_url()}themes/bootstrapdefault/img/user.png" />
|
||||
{/if}
|
||||
</div>
|
||||
<div class="description">
|
||||
{if isset($comment.U_DELETE) or isset($comment.U_VALIDATE) or isset($comment.U_EDIT)}
|
||||
<div class="actions">
|
||||
{if isset($comment.U_DELETE)}
|
||||
<a href="{$comment.U_DELETE}" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');">
|
||||
{'Delete'|@translate}
|
||||
</a>{if isset($comment.U_VALIDATE) or isset($comment.U_EDIT) or isset($comment.U_CANCEL)} | {/if}
|
||||
{/if}
|
||||
{if isset($comment.U_CANCEL)}
|
||||
<a href="{$comment.U_CANCEL}">
|
||||
{'Cancel'|@translate}
|
||||
</a>{if isset($comment.U_VALIDATE)} | {/if}
|
||||
{/if}
|
||||
{if isset($comment.U_EDIT) and !isset($comment.IN_EDIT)}
|
||||
<a class="editComment" href="{$comment.U_EDIT}#edit_comment">
|
||||
{'Edit'|@translate}
|
||||
</a>{if isset($comment.U_VALIDATE)} | {/if}
|
||||
{/if}
|
||||
{if isset($comment.U_VALIDATE)}
|
||||
<a href="{$comment.U_VALIDATE}">
|
||||
{'Validate'|@translate}
|
||||
</a>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<span>{if $comment.WEBSITE_URL}<a href="{$comment.WEBSITE_URL}" class="external" target="_blank" rel="nofollow">{$comment.AUTHOR}</a>{else}{$comment.AUTHOR}{/if}</span>
|
||||
{if isset($comment.EMAIL)}- <a href="mailto:{$comment.EMAIL}">{$comment.EMAIL}</a>{/if}
|
||||
- <span class="commentDate">{$comment.DATE}</span>
|
||||
{if isset($comment.IN_EDIT)}
|
||||
<a name="edit_comment"></a>
|
||||
<form method="post" action="{$comment.U_EDIT}">
|
||||
<div class="form-group">
|
||||
<label for="website_url">{'Website'|@translate} :</label>
|
||||
<input class="form-control" type="text" name="website_url" id="website_url" value="{$comment.WEBSITE_URL}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="contenteditid">{'Edit a comment'|@translate} :</label>
|
||||
<textarea class="form-control" name="content" id="contenteditid" rows="5" cols="80">{$comment.CONTENT|@escape}</textarea>
|
||||
</div>
|
||||
<input type="hidden" name="key" value="{$comment.KEY}">
|
||||
<input type="hidden" name="pwg_token" value="{$comment.PWG_TOKEN}">
|
||||
<input type="hidden" name="image_id" value="{$comment.IMAGE_ID|@default:$current.id}">
|
||||
<button type="submit" class="btn btn-default">{'Submit'|@translate}</button>
|
||||
</form>
|
||||
{else}
|
||||
<blockquote><div>{$comment.CONTENT}</div></blockquote>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
@@ -0,0 +1,45 @@
|
||||
<!-- Start of footer.tpl -->
|
||||
<div class="copyright container">
|
||||
<div class="text-center">
|
||||
{if isset($debug.TIME)}
|
||||
{'Page generated in'|@translate} {$debug.TIME} ({$debug.NB_QUERIES} {'SQL queries in'|@translate} {$debug.SQL_TIME}) -
|
||||
{/if}
|
||||
{*
|
||||
Please, do not remove this copyright. If you really want to,
|
||||
contact us on http://piwigo.org to find a solution on how
|
||||
to show the origin of the script...
|
||||
*}
|
||||
{'Powered by'|@translate} <a href="{$PHPWG_URL}" class="Piwigo">Piwigo</a>
|
||||
{$VERSION}
|
||||
{if isset($CONTACT_MAIL)}
|
||||
| <a href="mailto:{$CONTACT_MAIL}?subject={'A comment on your site'|@translate|@escape:url}">{'Contact webmaster'|@translate}</a>
|
||||
{/if}
|
||||
{if isset($TOGGLE_MOBILE_THEME_URL)}
|
||||
| {'View in'|@translate} : <a href="{$TOGGLE_MOBILE_THEME_URL}">{'Mobile'|@translate}</a> | <b>{'Desktop'|@translate}</b>
|
||||
{/if}
|
||||
|
||||
{if isset($footer_elements)}
|
||||
{foreach from=$footer_elements item=v}
|
||||
{$v}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{if isset($debug.QUERIES_LIST)}
|
||||
<div id="debug">
|
||||
{$debug.QUERIES_LIST}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{if $theme_config_extra->photoswipe && ($BODY_ID == "thePicturePage" || !empty($THUMBNAILS))}
|
||||
{include file='_photoswipe_div.tpl'}
|
||||
{/if}
|
||||
|
||||
{if ($theme_config_extra->bootstrap_theme == 'bootswatch' || $theme_config_extra->bootstrap_theme == 'material') && $BODY_ID !== 'thePicturePage' && $BODY_ID !== 'theCategoryPage'}
|
||||
{footer_script require='jquery'}
|
||||
$('.navbar-default .navbar-brand a').css('color', $('.navbar-default .navbar-brand').css('color'));
|
||||
{/footer_script}
|
||||
{/if}
|
||||
{get_combined_scripts load='footer'}
|
||||
</body>
|
||||
</html>
|
||||
173
zoesch.de/galerie/themes/bootstrap_darkroom/template/header.tpl
Normal file
173
zoesch.de/galerie/themes/bootstrap_darkroom/template/header.tpl
Normal file
@@ -0,0 +1,173 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{$lang_info.code}" dir="{$lang_info.direction}">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset={$CONTENT_ENCODING}">
|
||||
<meta name="generator" content="Piwigo (aka PWG), see piwigo.org">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
{if $meta_ref_enabled}
|
||||
{if isset($INFO_AUTHOR)}
|
||||
<meta name="author" content="{$INFO_AUTHOR|@strip_tags:false|@replace:'"':' '}">
|
||||
{/if}
|
||||
{if isset($related_tags)}
|
||||
<meta name="keywords" content="{foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}{$tag.name}{/foreach}">
|
||||
{/if}
|
||||
{if isset($COMMENT_IMG)}
|
||||
<meta name="description" content="{$COMMENT_IMG|@strip_tags:false|@replace:'"':' '}{if isset($INFO_FILE)} - {$INFO_FILE}{/if}">
|
||||
{else}
|
||||
<meta name="description" content="{$PAGE_TITLE}{if isset($INFO_FILE)} - {$INFO_FILE}{/if}">
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
<title>{if $PAGE_TITLE!=l10n('Home') && $PAGE_TITLE!=$GALLERY_TITLE}{$PAGE_TITLE} | {/if}{$GALLERY_TITLE}</title>
|
||||
<link rel="shortcut icon" type="image/x-icon" href="{$ROOT_URL}{$themeconf.icon_dir}/favicon.ico">
|
||||
<link rel="icon" sizes="192x192" href="{$ROOT_URL}themes/bootstrapdefault/img/logo.png">
|
||||
<link rel="apple-touch-icon" sizes="192x192" href="{$ROOT_URL}themes/bootstrapdefault/img/logo.png">
|
||||
<link rel="start" title="{'Home'|@translate}" href="{$U_HOME}" >
|
||||
<link rel="search" title="{'Search'|@translate}" href="{$ROOT_URL}search.php">
|
||||
{if isset($first.U_IMG)}
|
||||
<link rel="first" title="{'First'|@translate}" href="{$first.U_IMG}">
|
||||
{/if}
|
||||
{if isset($previous.U_IMG)}
|
||||
<link rel="prev" title="{'Previous'|@translate}" href="{$previous.U_IMG}">
|
||||
{/if}
|
||||
{if isset($next.U_IMG)}
|
||||
<link rel="next" title="{'Next'|@translate}" href="{$next.U_IMG}">
|
||||
{/if}
|
||||
{if isset($last.U_IMG)}
|
||||
<link rel="last" title="{'Last'|@translate}" href="{$last.U_IMG}">
|
||||
{/if}
|
||||
{if isset($U_UP)}
|
||||
<link rel="up" title="{'Thumbnails'|@translate}" href="{$U_UP}">
|
||||
{/if}
|
||||
{if isset($U_PREFETCH)}
|
||||
<link rel="prefetch" href="{$U_PREFETCH}">
|
||||
{/if}
|
||||
{if isset($U_CANONICAL)}
|
||||
<link rel="canonical" href="{$U_CANONICAL}">
|
||||
{/if}
|
||||
{if not empty($page_refresh)}
|
||||
<meta http-equiv="refresh" content="{$page_refresh.TIME};url={$page_refresh.U_REFRESH}">
|
||||
{/if}
|
||||
|
||||
{strip}
|
||||
{if $theme_config_extra->bootstrap_theme == 'bootswatch'}
|
||||
{combine_css path="themes/bootstrap_darkroom/components/bootswatch/{$theme_config_extra->bootswatch_theme}/bootstrap.min.css" order=-20}
|
||||
{combine_css path="themes/bootstrap_darkroom/css/bootswatch/navmenu-{$theme_config_extra->bootswatch_theme}.css" order=-5}
|
||||
{else}
|
||||
{combine_css path="themes/bootstrapdefault/bootstrap/dist/css/bootstrap.min.css" order=-20}
|
||||
{/if}
|
||||
{if $theme_config_extra->bootstrap_theme == 'default'}
|
||||
{combine_css path="themes/bootstrapdefault/bootstrap/dist/css/bootstrap-theme.min.css" order=-18}
|
||||
{/if}
|
||||
{combine_css path='themes/bootstrap_darkroom/components/jasny-bootstrap/dist/css/jasny-bootstrap.min.css' order=-15}
|
||||
{combine_css path='themes/bootstrap_darkroom/components/font-awesome/css/font-awesome.min.css' order=-14}
|
||||
{foreach from=$themes item=theme}
|
||||
{if $theme.load_css}
|
||||
{combine_css path="themes/`$theme.id`/theme.css" order=-10}
|
||||
{/if}
|
||||
{if !empty($theme.local_head)}{include file=$theme.local_head load_css=$theme.load_css}{/if}
|
||||
{/foreach}
|
||||
{if $theme_config_extra->bootstrap_theme == 'darkroom'}
|
||||
{combine_css path="themes/bootstrap_darkroom/css/darkroom-colors.css" order=-5}
|
||||
{/if}
|
||||
{if $theme_config_extra->bootstrap_theme == 'material'}
|
||||
{combine_css path="themes/bootstrap_darkroom/components/roboto/roboto.css" order=-6}
|
||||
{if $theme_config_extra->material_color == 'teal'}
|
||||
{combine_css path="themes/bootstrap_darkroom/components/bootstrap-material-design/dist/css/bootstrap-material-design.min.css" order=-5}
|
||||
{combine_css path="themes/bootstrap_darkroom/components/bootstrap-material-design/dist/css/ripples.min.css" order=-4}
|
||||
{combine_css path="themes/bootstrap_darkroom/css/material-colors/teal/navmenu.css" order=-3}
|
||||
{else}
|
||||
{combine_css path="themes/bootstrap_darkroom/css/material-colors/{$theme_config_extra->material_color}/bootstrap-material-design.min.css" order=-5}
|
||||
{combine_css path="themes/bootstrap_darkroom/css/material-colors/{$theme_config_extra->material_color}/ripples.min.css" order=-5}
|
||||
{combine_css path="themes/bootstrap_darkroom/css/material-colors/{$theme_config_extra->material_color}/navmenu.css" order=-5}
|
||||
{/if}
|
||||
{/if}
|
||||
{combine_css path="themes/bootstrap_darkroom/css/fixplugins.css" order=9999}
|
||||
{if file_exists("local/bootstrapdefault/custom.css")}
|
||||
{combine_css path="local/bootstrapdefault/custom.css" order=10000}
|
||||
{/if}
|
||||
{get_combined_css}
|
||||
{if $BODY_ID == 'theAdditionalPage' || $BODY_ID == 'theHomePage' || $bootstrap_darkroom_core_js_in_header == true }
|
||||
{assign var=loc value="header"}
|
||||
{else}
|
||||
{assign var=loc value="footer"}
|
||||
{/if}
|
||||
{combine_script id='jquery' path='themes/bootstrap_darkroom/components/jquery/dist/jquery.min.js' load=$loc}
|
||||
{combine_script id='jquery.ajaxmanager' require='jquery' path='themes/default/js/plugins/jquery.ajaxmanager.js' load='footer'}
|
||||
{combine_script id='thumbnails.loader' require='jquery.ajaxmanager' path='themes/default/js/thumbnails.loader.js' load='footer'}
|
||||
{combine_script id='darkroom.common' require='jquery' path='themes/bootstrap_darkroom/js/common.js' load='footer'}
|
||||
{combine_script id='bootstrap' require='jquery' path='themes/bootstrapdefault/bootstrap/dist/js/bootstrap.min.js' load=$loc}
|
||||
{combine_script id='jasny.boostrap' require='bootstrap' path='themes/bootstrap_darkroom/components/jasny-bootstrap/dist/js/jasny-bootstrap.min.js' load='footer'}
|
||||
{combine_script id=$themeconf.name require='bootstrap' path='themes/bootstrapdefault/js/theme.js' load='footer'}
|
||||
{if $theme_config_extra->bootstrap_theme == 'material'}
|
||||
{combine_script id='material.js' require='bootstrap' path='themes/bootstrap_darkroom/components/bootstrap-material-design/dist/js/material.min.js' load='footer'}
|
||||
{combine_script id='ripples.js' require='material.js' path='themes/bootstrap_darkroom/components/bootstrap-material-design/dist/js/ripples.min.js' load='footer'}
|
||||
{footer_script require='material.js' require='ripples.js'}
|
||||
$.material.init()
|
||||
{/footer_script}
|
||||
{/if}
|
||||
{/strip}
|
||||
{get_combined_scripts load='header'}
|
||||
{if not empty($head_elements)}
|
||||
{foreach from=$head_elements item=elt}{$elt}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</head>
|
||||
|
||||
<body id="{$BODY_ID}">
|
||||
<div id="the_page">
|
||||
{if $BODY_ID != 'thePicturePage'}
|
||||
<!-- Bootstrap navbar, moved to the header as variables are missing in menubar.tpl, actual menus remain in menubar.tpl -->
|
||||
<nav class="navbar navbar-default navbar-main" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-menubar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
{if $theme_config_extra->logo_image_enabled && $theme_config_extra->logo_image_path !== ''}
|
||||
<a class="navbar-brand" href="{$U_HOME}"><img class="responsive" src="{$ROOT_URL}{$theme_config_extra->logo_image_path}" alt="{$GALLERY_TITLE}"/></a>
|
||||
{else}
|
||||
<a class="navbar-brand" href="{$U_HOME}">{$GALLERY_TITLE}</a>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="collapse navbar-collapse navbar-right" id="navbar-menubar">
|
||||
{if $theme_config_extra->quicksearch_navbar}
|
||||
<form class="navbar-form" role="search" action="{$ROOT_URL}qsearch.php" method="get" id="quicksearch" onsubmit="return this.q.value!='' && this.q.value!=qsearch_prompt;">
|
||||
<div class="form-group">
|
||||
<input type="text" name="q" id="qsearchInput" class="form-control" placeholder="{'Search'|@translate}" />
|
||||
</div>
|
||||
</form>
|
||||
{/if}
|
||||
{$MENUBAR}
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
{/if}
|
||||
|
||||
{if !isset($slideshow) && $BODY_ID != 'thePicturePage' && $theme_config_extra->show_jumbotron}
|
||||
<div class="jumbotron">
|
||||
<div class="container">
|
||||
<div id="theHeader">{$PAGE_BANNER}</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if not empty($header_msgs)}
|
||||
{foreach from=$header_msgs item=msg}
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
{if not empty($header_notes)}
|
||||
{foreach from=$header_notes item=note}
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
{include file='_plugin_fixes_js.tpl'}
|
||||
<!-- End of header.tpl -->
|
||||
@@ -0,0 +1,74 @@
|
||||
<nav class="navbar navbar-default" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<div class="navbar-brand"><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}<a href>{'Identification'|@translate}</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{include file='infos_errors.tpl'}
|
||||
|
||||
<div class="container">
|
||||
<form action="{$F_LOGIN_ACTION}" method="post" name="login_form" class="form-horizontal">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'Connection settings'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label for="username" class="col-sm-2 control-label">{'Username'|@translate}</label>
|
||||
<div class="col-sm-4">
|
||||
<input tabindex="1" class="form-control" type="text" name="username" id="username" placeholder="{'Username'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password" class="col-sm-2 control-label">{'Password'|@translate}</label>
|
||||
<div class="col-sm-4">
|
||||
<input tabindex="2" class="form-control" type="password" name="password" id="password" placeholder="{'Password'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
{if $authorize_remembering }
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input tabindex="3" type="checkbox" name="remember_me" id="remember_me" value="1"> {'Auto login'|@translate}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<input type="hidden" name="redirect" value="{$U_REDIRECT|@urlencode}">
|
||||
<input tabindex="4" type="submit" name="login" value="{'Submit'|@translate}" class="btn btn-default btn-primary">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
{if isset($U_REGISTER)}
|
||||
<a href="{$U_REGISTER}" title="{'Register'|@translate}" class="pwg-state-default pwg-button">
|
||||
<span class="glyphicon glyphicon-user"></span> {'Register'|@translate}
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
{if isset($U_LOST_PASSWORD)}
|
||||
<a href="{$U_LOST_PASSWORD}" title="{'Forgot your password?'|@translate}" class="pwg-state-default pwg-button">
|
||||
<span class="glyphicon glyphicon-lock"></span> {'Forgot your password?'|@translate}
|
||||
</a>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById('username').focus();
|
||||
//--></script>
|
||||
383
zoesch.de/galerie/themes/bootstrap_darkroom/template/index.tpl
Normal file
383
zoesch.de/galerie/themes/bootstrap_darkroom/template/index.tpl
Normal file
@@ -0,0 +1,383 @@
|
||||
<!-- Start of index.tpl -->
|
||||
{combine_script id='core.switchbox' require='jquery' path='themes/default/js/switchbox.js' load='footer'}
|
||||
{combine_script id='cookie' require='jquery' path='themes/bootstrapdefault/js/jquery.cookie.js' load='footer'}
|
||||
{combine_script id='equalheights' require='jquery' path='themes/bootstrapdefault/js/jquery.equalheights.js' load='footer'}
|
||||
{if get_device() != 'desktop'}
|
||||
{combine_script id='jquery.mobile-events' path='themes/bootstrap_darkroom/components/jquery-touch-events/src/jquery.mobile-events.min.js' require='jquery' load='footer'}
|
||||
{/if}
|
||||
{if !empty($PLUGIN_INDEX_CONTENT_BEFORE)}{$PLUGIN_INDEX_CONTENT_BEFORE}{/if}
|
||||
{footer_script require='jquery'}{strip}
|
||||
if ($('.jumbotron').length > 0) {
|
||||
var $affix_height = $('.navbar-main').height() + $('.jumbotron').outerHeight();
|
||||
$('.navbar-contextual').affix({literal}{ offset: {top: $affix_height } }{/literal});
|
||||
} else {
|
||||
$('.navbar-contextual').affix({literal}{ offset: {top: $('.navbar-main').height()} }{/literal});
|
||||
}
|
||||
$('.navmenu').on('show.bs.offcanvas', function() {
|
||||
if ($('.navbar-contextual ul.navmenu-nav').contents().length === 0) {
|
||||
$($('.navbar-contextual ul.navbar-nav').contents()).appendTo('ul.navmenu-nav');
|
||||
$('ul.navmenu-nav').find('.dropdown-menu').addClass('dropdown-menu-right');
|
||||
$('ul.navmenu-nav').find('.dropdown-toggle').attr('aria-haspopup', 'true');
|
||||
{if $theme_config_extra->bootstrap_theme == 'bootswatch' || $theme_config_extra->bootstrap_theme == 'material'}
|
||||
$('.navmenu').css('background-color', $('.navbar-default').css('background-color'));
|
||||
{/if}
|
||||
}
|
||||
$('#the_page').on('touchmove.bs', function(e) {
|
||||
e.preventDefault();
|
||||
});
|
||||
$('.navbar-main .collapse').collapse('hide');
|
||||
if ($('.navbar-contextual.affix-top').length > 0) {
|
||||
var navmenu_top = $('.navbar-contextual').height();
|
||||
if ($('.jumbotron').length > 0) {
|
||||
navmenu_top = navmenu_top + $('.jumbotron').outerHeight() - $(document).scrollTop();
|
||||
}
|
||||
$('.navmenu').css('top', navmenu_top);
|
||||
}
|
||||
});
|
||||
$('.navmenu').on('hidden.bs.offcanvas', function() {
|
||||
if ($('ul.navmenu-nav').contents().length > 0) {
|
||||
$('ul.navmenu-nav').find('.dropdown-menu-right').removeClass('dropdown-menu-right');
|
||||
$('ul.navmenu-nav').find('.dropdown-toggle').removeAttr('aria-haspopup');
|
||||
$($('ul.navmenu-nav').contents()).appendTo('.navbar-contextual ul.navbar-nav');
|
||||
}
|
||||
$('#the_page').off('touchmove.bs');
|
||||
});
|
||||
$('.navbar-contextual').on('affix.bs.affix', function() {
|
||||
$('.navmenu').css('top', '');
|
||||
});
|
||||
$('.navbar-contextual').on('affix-top.bs.affix', function() {
|
||||
var nav_top_offset = 0;
|
||||
if ($('.navbar-main')) {
|
||||
nav_top_offset = $('.navbar-main').height();
|
||||
}
|
||||
if ($('.jumbotron').length > 0) {
|
||||
nav_top_offset = nav_top_offset + $('.jumbotron').outerHeight();
|
||||
}
|
||||
$('.navmenu').css('top', nav_top_offset);
|
||||
});
|
||||
{if $theme_config_extra->bootstrap_theme == 'material'}
|
||||
$('#content-spacer').addClass('well');
|
||||
{/if}
|
||||
{strip}{/footer_script}
|
||||
<div id="navmenu-contextual" class="navmenu navmenu-default navmenu-fixed-right offcanvas" role="navigation">
|
||||
<ul class="nav navmenu-nav"></ul>
|
||||
</div>
|
||||
<div class="nav-wrapper">
|
||||
<nav class="navbar navbar-default navbar-contextual">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="offcanvas" data-target="#navmenu-contextual">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<div class="navbar-brand">
|
||||
{if isset($chronology.TITLE)}
|
||||
<a href="{$U_HOME}" title="{'Home'|@translate}"><i class="fa fa-home" aria-hidden="true"></i></a>{$LEVEL_SEPARATOR}{$chronology.TITLE}
|
||||
{else}
|
||||
{$TITLE}
|
||||
{if $theme_config_extra->bootstrap_theme == 'bootswatch' || $theme_config_extra->bootstrap_theme == 'material'}
|
||||
{footer_script require='jquery'}{strip}
|
||||
$(document).ready(function() {
|
||||
$('.navbar-default .navbar-brand a').css('color', $('.navbar-default .navbar-brand').css('color'));
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
<div class="navbar-right navbar-collapse collapse" id="secondary-navbar">
|
||||
<ul class="nav navbar-nav">
|
||||
{if !empty($image_orders)}
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" title="{'Sort order'|@translate}">
|
||||
<span class="glyphicon glyphicon-sort"></span><span class="glyphicon-text">{'Sort order'|@translate}</span><span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
{foreach from=$image_orders item=image_order name=loop}
|
||||
<li{if $image_order.SELECTED} class="active"{/if}><a href="{$image_order.URL}" rel="nofollow">{$image_order.DISPLAY}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</li>
|
||||
{/if}
|
||||
{if !empty($image_derivatives)}
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" title="{'Photo sizes'|@translate}">
|
||||
<i class="fa fa-picture-o" aria-hidden="true"></i><span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
{foreach from=$image_derivatives item=image_derivative name=loop}
|
||||
<li{if $image_derivative.SELECTED} class="active"{/if}><a href="{$image_derivative.URL}" rel="nofollow">{$image_derivative.DISPLAY}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($favorite)}
|
||||
<li>
|
||||
<a href="{$favorite.U_FAVORITE}" title="{'Delete all photos from your favorites'|@translate}" rel="nofollow">
|
||||
<i class="fa fa-heartbeat" aria-hidden="true"></i>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_EDIT)}
|
||||
<li>
|
||||
<a href="{$U_EDIT}" title="{'Edit album'|@translate}">
|
||||
<i class="fa fa-pencil" aria-hidden="true"></i>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_CADDIE)}
|
||||
<li>
|
||||
<a href="{$U_CADDIE}" title="{'Add to caddie'|@translate}">
|
||||
<i class="fa fa-shopping-basket" aria-hidden="true"></i>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_SEARCH_RULES)}
|
||||
{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
|
||||
<li>
|
||||
<a href="{$U_SEARCH_RULES}" onclick="bd_popup(this.href); return false;" title="{'Search rules'|@translate}" rel="nofollow">
|
||||
<i class="fa fa-search" aria-hidden="true"></i>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_SLIDESHOW)}
|
||||
<li>
|
||||
<a href="{if $theme_config_extra->photoswipe}javascript:;{else}{$U_SLIDESHOW}{/if}" id="startSlideshow" title="{'slideshow'|@translate}" rel="nofollow">
|
||||
<i class="fa fa-play" aria-hidden="true"></i>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_MODE_FLAT)}
|
||||
<li>
|
||||
{strip}<a href="{$U_MODE_FLAT}" title="{'display all photos in all sub-albums'|@translate}" rel="nofollow">
|
||||
<i class="fa fa-th-large" aria-hidden="true"></i>
|
||||
</a>{/strip}
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_MODE_NORMAL)}
|
||||
<li>
|
||||
{strip}<a href="{$U_MODE_NORMAL}" title="{'return to normal view mode'|@translate}">
|
||||
<i class="fa fa-home" aria-hidden="true"></i>
|
||||
</a>{/strip}
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_MODE_POSTED) || isset($U_MODE_CREATED)}
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" title="{'Calendar'|@translate}">
|
||||
<i class="fa fa-calendar" aria-hidden="true"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
{if isset($U_MODE_POSTED)}
|
||||
<li>
|
||||
<a href="{$U_MODE_POSTED}" title="{'display a calendar by posted date'|@translate}" rel="nofollow">
|
||||
<i class="fa fa-share-alt" aria-hidden="true"></i> {'display a calendar by posted date'|@translate}
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_MODE_CREATED)}
|
||||
<li>
|
||||
<a href="{$U_MODE_CREATED}" title="{'display a calendar by creation date'|@translate}" rel="nofollow">
|
||||
<i class="fa fa-camera-retro" aria-hidden="true"></i> {'display a calendar by creation date'|@translate}
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
</ul>
|
||||
</li>
|
||||
{/if}
|
||||
{if !empty($PLUGIN_INDEX_BUTTONS)}{foreach from=$PLUGIN_INDEX_BUTTONS item=button}<li>{$button}</li>{/foreach}{/if}
|
||||
{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
|
||||
{if ((!empty($CATEGORIES) && !isset($GDThumb)) || (!empty($THUMBNAILS) && !isset($GThumb) && !isset($GDThumb))) && ($theme_config_extra->category_wells == 'never' || ($theme_config_extra->category_wells == 'mobile_only' && get_device() == 'desktop'))}
|
||||
<li id="btn-grid"{if $smarty.cookies.view != 'list'} class="active"{/if}><a href="javascript:;" title="{'Grid view'|@translate}"><i class="fa fa-th"></i></a></li>
|
||||
<li id="btn-list"{if $smarty.cookies.view == 'list'} class="active"{/if}><a href="javascript:;" title="{'List view'|@translate}"><i class="fa fa-th-list"></i></a></li>
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
{include file='infos_errors.tpl'}
|
||||
|
||||
<a name="content"></a>
|
||||
<div id="content-spacer" class="container">
|
||||
{if !empty($PLUGIN_INDEX_CONTENT_BEGIN)}{$PLUGIN_INDEX_CONTENT_BEGIN}{/if}
|
||||
|
||||
{if isset($chronology_views)}
|
||||
<div id="calendar-select" class="btn-group">
|
||||
<button id="calendar-view" type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
{foreach from=$chronology_views item=view}{if $view.SELECTED}{$view.CONTENT}{/if}{/foreach}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="calendar-view">
|
||||
{foreach from=$chronology_views item=view name=loop}
|
||||
<li {if $view.SELECTED} class="active"{/if}><a href="{$view.VALUE}">{$view.CONTENT}</a><li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if isset($FILE_CHRONOLOGY_VIEW)}
|
||||
{include file=$FILE_CHRONOLOGY_VIEW}
|
||||
{/if}
|
||||
|
||||
{if !empty($CONTENT_DESCRIPTION)}
|
||||
<h4>
|
||||
{$CONTENT_DESCRIPTION}
|
||||
</h4>
|
||||
{/if}
|
||||
<div id="content" class="{if $theme_config_extra->category_wells == 'never' || ($theme_config_extra->category_wells == 'mobile_only' && get_device() == 'desktop')}row{if $smarty.cookies.view == 'list'} content-list{else} content-grid{/if}{/if}">
|
||||
{if !empty($CONTENT)}
|
||||
<!-- Start of content -->
|
||||
{$CONTENT}
|
||||
<!-- End of content -->
|
||||
{/if}
|
||||
|
||||
{if !empty($CATEGORIES)}
|
||||
<!-- Start of categories -->
|
||||
{$CATEGORIES}
|
||||
{footer_script}{strip}
|
||||
$(document).ready(function() {
|
||||
$(window).load(function(){
|
||||
$('#content .col-inner').equalHeights()
|
||||
})
|
||||
});
|
||||
var resizeTimer;
|
||||
$(window).on('resize', function() {
|
||||
clearTimeout(resizeTimer);
|
||||
resizeTimer = setTimeout(function() {
|
||||
if ($(window).innerWidth() < 768) {
|
||||
$('.col-inner').removeAttr('style');
|
||||
} else {
|
||||
$('.col-inner').equalHeights();
|
||||
}
|
||||
}, 250);
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
<!-- End of categories -->
|
||||
{/if}
|
||||
|
||||
{if !empty($THUMBNAILS)}
|
||||
<!-- Start of thumbnails -->
|
||||
<div id="thumbnails">{$THUMBNAILS}</div>
|
||||
{footer_script}{literal}$(document).ready(function(){$('#content img').load(function(){$('#content .col-inner').equalHeights()})});{/literal}{/footer_script}
|
||||
{if $theme_config_extra->photoswipe}
|
||||
<div id="photoSwipeData">
|
||||
{assign var=idx value=0}
|
||||
{foreach from=$thumbnails item=thumbnail}
|
||||
{assign var=derivative_medium value=$pwg->derivative($derivative_params_medium, $thumbnail.src_image)}
|
||||
{assign var=derivative_large value=$pwg->derivative($derivative_params_large, $thumbnail.src_image)}
|
||||
{assign var=derivative_xxlarge value=$pwg->derivative($derivative_params_xxlarge, $thumbnail.src_image)}
|
||||
<a href="{$thumbnail.URL}" data-index="{$idx}" data-name="{$thumbnail.NAME}" data-description="{$thumbnail.DESCRIPTION}" data-src-medium="{$derivative_medium->get_url()}" data-size-medium="{$derivative_medium->get_size_hr()}" data-src-large="{$derivative_large->get_url()}" data-size-large="{$derivative_large->get_size_hr()}" data-src-xlarge="{$derivative_xxlarge->get_url()}" data-size-xlarge="{$derivative_xxlarge->get_size_hr()}"{if preg_match("/(mp4|m4v)$/", $thumbnail.PATH)} data-src-original="{$U_HOME}{$thumbnail.PATH}" data-size-original="{$thumbnail.SIZE}" data-video="true"{else}{if $theme_config_extra->photoswipe_metadata} data-exif-make="{$thumbnail.EXIF.make}" data-exif-model="{$thumbnail.EXIF.model}" data-exif-lens="{$thumbnail.EXIF.lens}" data-exif-iso="{$thumbnail.EXIF.iso}" data-exif-apperture="{$thumbnail.EXIF.apperture}" data-exif-shutter-speed="{$thumbnail.EXIF.shutter_speed}" data-exif-focal-length="{$thumbnail.EXIF.focal_length}" data-date-created="{$thumbnail.DATE_CREATED}"{/if}{/if}></a>
|
||||
{assign var=idx value=$idx+1}
|
||||
{/foreach}
|
||||
{include file='_photoswipe_js.tpl' selector='#photoSwipeData'}
|
||||
</div>
|
||||
{footer_script require='jquery' require='photoswipe'}{strip}
|
||||
$('#startSlideshow').on('click touchstart', function() {
|
||||
startPhotoSwipe(0);
|
||||
$('.pswp__button--autoplay')[0].click();
|
||||
});
|
||||
|
||||
function setupPhotoSwipe() {
|
||||
$('#thumbnails').find("a:has(img[class=thumbnail])").each(function(_index) {
|
||||
var $pswpIndex;
|
||||
if ($(this).find('img').length > 0) {
|
||||
var _href = $(this).href;
|
||||
$(this).attr('href', 'javascript:;').attr('data-href', _href);
|
||||
if (!$(this).attr('data-index')) {
|
||||
$(this).attr('data-index', _index);
|
||||
$pswpIndex = _index;
|
||||
} else {
|
||||
$pswpIndex = $(this).data('index');
|
||||
}
|
||||
$(this).off('click tap').on('click tap', function(event) {
|
||||
event.preventDefault();
|
||||
startPhotoSwipe($pswpIndex);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
{if $theme_config_extra->thumbnail_linkto == "photoswipe" || ($theme_config_extra->thumbnail_linkto == "photoswipe_mobile_only" && get_device() != 'desktop')}
|
||||
$(document).ready(function() {
|
||||
setupPhotoSwipe();
|
||||
});
|
||||
|
||||
{if isset($loaded_plugins['rv_tscroller'])}
|
||||
$(document).ajaxComplete(function() {
|
||||
setupPhotoSwipe();
|
||||
});
|
||||
{/if}
|
||||
{/if}
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
{footer_script require="jquery"}{strip}
|
||||
{if !isset($loaded_plugins['piwigo-videojs']) && (isset($GThumb) || isset($GDThumb))}
|
||||
function addVideoIndicator() {
|
||||
$('img.thumbnail[src*="pwg_representative"]').each(function() {
|
||||
$(this).closest('li').append('<i class="fa fa-file-video-o fa-2x video-indicator" aria-hidden="true" style="position: absolute; top: 10px; left: 10px; z-index: 100; color: #fff;"></i>');
|
||||
});
|
||||
}
|
||||
$(document).ready(function() {
|
||||
addVideoIndicator();
|
||||
});
|
||||
$(document).ajaxComplete(function() {
|
||||
addVideoIndicator();
|
||||
});
|
||||
{else}
|
||||
$('.col-thumbnail').find('img[src*="pwg_representative"]').each(function() {
|
||||
$(this).closest('div').append('<i class="fa fa-file-video-o fa-2x video-indicator" aria-hidden="true" style="position: absolute; top: 15px; left: 30px; z-index: 100; color: #fff;"></i>');
|
||||
});
|
||||
{/if}
|
||||
{/strip}{/footer_script}
|
||||
<!-- End of thumbnails -->
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{if !empty($cats_navbar) || !empty($thumb_navbar)}
|
||||
<div class="container">
|
||||
{if !empty($cats_navbar)}
|
||||
{include file='navigation_bar.tpl' fragment="content"|@get_extent:'navbar' navbar=$cats_navbar}
|
||||
{/if}
|
||||
{if !empty($thumb_navbar) && !isset($loaded_plugins['rv_tscroller'])}
|
||||
{include file='navigation_bar.tpl' fragment="content"|@get_extent:'navbar' navbar=$thumb_navbar}
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if !empty($category_search_results)}
|
||||
<div class="container">
|
||||
<h3 class="category_search_results">{'Album results for'|@translate} <em><strong>{$QUERY_SEARCH}</strong></em></h3>
|
||||
<p>
|
||||
<em><strong>
|
||||
{foreach from=$category_search_results item=res name=res_loop}
|
||||
{if !$smarty.foreach.res_loop.first} — {/if}
|
||||
{$res}
|
||||
{/foreach}
|
||||
</strong></em>
|
||||
</p>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if !empty($tag_search_results)}
|
||||
<div class="container">
|
||||
<h3 class="tag_search_results">{'Tag results for'|@translate} <em><strong>{$QUERY_SEARCH}</strong></em></h3>
|
||||
<p>
|
||||
<em><strong>
|
||||
{foreach from=$tag_search_results item=tag name=res_loop}
|
||||
{if !$smarty.foreach.res_loop.first} — {/if}
|
||||
<a href="{$tag.URL}">{$tag.name}</a>
|
||||
{/foreach}
|
||||
</strong></em>
|
||||
</p>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="container">
|
||||
{if !empty($PLUGIN_INDEX_CONTENT_END)}{$PLUGIN_INDEX_CONTENT_END}{/if}
|
||||
</div>
|
||||
|
||||
{if !empty($PLUGIN_INDEX_CONTENT_AFTER)}{$PLUGIN_INDEX_CONTENT_AFTER}{/if}
|
||||
<!-- End of index.tpl -->
|
||||
@@ -0,0 +1,21 @@
|
||||
{if isset($errors) }
|
||||
<div class="container-fluid">
|
||||
{foreach from=$errors item=error}
|
||||
<div class="alert alert-danger alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||
{$error}
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if not empty($infos)}
|
||||
<div class="container-fluid">
|
||||
{foreach from=$infos item=info}
|
||||
<div class="alert alert-info alert-dismissible" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||
{$info}
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
@@ -0,0 +1,29 @@
|
||||
<li id="languageSwitch" class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="pwg-icon langflag-{$lang_switch.Active.code}"> </span><span class="pwg-button-text">{'Language'|@translate}</span>
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-scrollable" role="menu">
|
||||
{foreach from=$lang_switch.flags item=flag name=f}
|
||||
<li{if $lang_switch.Active.code==$flag.code} class="active"{/if}>
|
||||
<a href="{$flag.url}">
|
||||
{if $lang_info.direction=="ltr"}
|
||||
<span class="pwg-icon langflag-{$flag.code}"> </span><span class="langflag-text-ltf">{$flag.title}</span>
|
||||
{else}
|
||||
<span class="langflag-text-rtf">{$flag.title}</span><span class="pwg-icon langflag-{$flag.code}"> </span>
|
||||
{/if}
|
||||
</a>
|
||||
<li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
{* <!-- common style specific for LanguageSwitch --> *}
|
||||
{combine_css path=$LANGUAGE_SWITCH_PATH|@cat:"language_switch.css"}
|
||||
|
||||
{* move to main navbar to avoid scrolling issues in navmenu on mobile devices *}
|
||||
{footer_script require='jquery'}{strip}
|
||||
$(document).ready(function() {
|
||||
$('#languageSwitch').appendTo('#navbar-menubar>ul.nav');
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
@@ -0,0 +1,79 @@
|
||||
{footer_script}
|
||||
var error_icon = "{$ROOT_URL}{$themeconf.icon_dir}/errors_small.png", max_requests = {$maxRequests};
|
||||
{/footer_script}
|
||||
{* this might sound ridiculous, but we want to fit the thumbnails to 90% of col-xs-12 without them being too blurry *}
|
||||
{if get_device() !== 'desktop'}
|
||||
{assign var=width value=520}
|
||||
{assign var=height value=360}
|
||||
{else}
|
||||
{assign var=width value=260}
|
||||
{assign var=height value=180}
|
||||
{/if}
|
||||
{define_derivative name='derivative_params' width=$width height=$height crop=true}
|
||||
{define_derivative name='derivative_params_square' type=IMG_SQUARE}
|
||||
{foreach from=$category_thumbnails item=cat name=cat_loop}
|
||||
{if $theme_config_extra->category_wells == 'never' || ($theme_config_extra->category_wells == 'mobile_only' && get_device() == 'desktop')}
|
||||
{assign var=derivative value=$pwg->derivative($derivative_params, $cat.representative.src_image)}
|
||||
{if !$derivative->is_cached()}
|
||||
{combine_script id='jquery.ajaxmanager' path='themes/default/js/plugins/jquery.ajaxmanager.js' load='footer'}
|
||||
{combine_script id='thumbnails.loader' path='themes/default/js/thumbnails.loader.js' require='jquery.ajaxmanager' load='footer'}
|
||||
{/if}
|
||||
{* this needs a fixed size else it messes up the grid on tablets *}
|
||||
{include file="grid_classes.tpl" width=260 height=180}
|
||||
<div class="col-outer {if $smarty.cookies.view == 'list'}col-lg-12 col-md-12 col-sm-12 col-xs-12{else}{$col_class}{/if}" data-grid-classes="{$col_class}">
|
||||
<div class="col-inner">
|
||||
<a class="col-thumbnail" href="{$cat.URL}">
|
||||
<div class="placeholder" style="background: url({$ROOT_URL}{$themeconf.icon_dir}/img_small.png) no-repeat center">
|
||||
<img class="img-responsive" {if $derivative->is_cached()}src="{$derivative->get_url()}"{else}src="{$ROOT_URL}themes/bootstrapdefault/img/transparent.png" data-src="{$derivative->get_url()}"{/if} alt="{$cat.TN_ALT}" title="{$cat.NAME|@replace:'"':' '|@strip_tags:false} - {'display this album'|@translate}">
|
||||
</div>
|
||||
</a>
|
||||
<div class="caption">
|
||||
<h4 class="title">
|
||||
<a href="{$cat.URL}" class="ellipsis{if !empty($cat.icon_ts)} recent{/if}">{$cat.NAME}</a>
|
||||
{if !empty($cat.icon_ts)}
|
||||
<img title="{$cat.icon_ts.TITLE}" src="{$ROOT_URL}{$themeconf.icon_dir}/recent{if $cat.icon_ts.IS_CHILD_DATE}_by_child{/if}.png" alt="(!)">
|
||||
{/if}
|
||||
</h4>
|
||||
{if isset($cat.INFO_DATES) }
|
||||
<p>{$cat.INFO_DATES}</p>
|
||||
{/if}
|
||||
<p>{$cat.CAPTION_NB_IMAGES}</p>
|
||||
{if not empty($cat.DESCRIPTION)}
|
||||
<div class="description">{$cat.DESCRIPTION}</div>
|
||||
{if $theme_config_extra->cat_descriptions}
|
||||
{html_style}
|
||||
.content-grid .col-inner .caption .description { display: block; }
|
||||
{/html_style}
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{else}
|
||||
{assign var=derivative_square value=$pwg->derivative($derivative_params_square, $cat.representative.src_image)}
|
||||
{if !$derivative_square->is_cached()}
|
||||
{combine_script id='jquery.ajaxmanager' path='themes/default/js/plugins/jquery.ajaxmanager.js' load='footer'}
|
||||
{combine_script id='thumbnails.loader' path='themes/default/js/thumbnails.loader.js' require='jquery.ajaxmanager' load='footer'}
|
||||
{/if}
|
||||
<a href="{$cat.URL}">
|
||||
<div class="well well-sm well-categories">
|
||||
<div class="media">
|
||||
<div class="media-left">
|
||||
<img class="media-object" {if $derivative_square->is_cached()}src="{$derivative_square->get_url()}"{else}src="{$ROOT_URL}themes/bootstrapdefault/img/transparent.png" data-src="{$derivative_square->get_url()}"{/if} alt="{$cat.TN_ALT}">
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h4 class="media-heading">{$cat.NAME}</h4>
|
||||
{if isset($cat.INFO_DATES) }
|
||||
<p>{$cat.INFO_DATES}</p>
|
||||
{/if}
|
||||
<p>{$cat.CAPTION_NB_IMAGES}</p>
|
||||
{if not empty($cat.DESCRIPTION)}
|
||||
<p class="description">{$cat.DESCRIPTION}</p>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
<!-- Start of menubar.tpl -->
|
||||
<ul class="nav navbar-nav">
|
||||
{assign var="discover_menu_exists" value=false}
|
||||
{foreach from=$blocks key=id item=block}
|
||||
{if not empty($block->template)}
|
||||
{if $id != "mbMenu" && $id != "mbSpecials" && $id != "mbIdentification"}
|
||||
{include file=$block->template|@get_extent:$id }
|
||||
{/if}
|
||||
{if $discover_menu_exists == false && ($id == "mbSpecials" or $id == "mbMenu")}
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{'Discover'|@translate} <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
{if not empty($blocks.mbMenu->template)}
|
||||
{include file=$blocks.mbMenu->template}
|
||||
{/if}
|
||||
{if not empty($blocks.mbSpecials->template)}
|
||||
{if not empty($blocks.mbMenu->template)}
|
||||
<li role="separator" class="divider"></li>
|
||||
{/if}
|
||||
{include file=$blocks.mbSpecials->template}
|
||||
{/if}
|
||||
</ul>
|
||||
</li>
|
||||
{assign var="discover_menu_exists" value=true}
|
||||
{/if}
|
||||
{else}
|
||||
{$block->raw_content}
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
{* use foreach again for plugin compatibility, no idea why $blocks.mbIdentification->template breaks SocialConnect, for example *}
|
||||
{foreach from=$blocks key=id item=block}
|
||||
{if not empty($block->template) && $id == "mbIdentification"}
|
||||
{include file=$block->template|@get_extent:$id }
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
<!-- End of menubar.tpl -->
|
||||
@@ -0,0 +1,20 @@
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{'Albums'|@translate} <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu dropdown-menu-scrollable" role="menu">
|
||||
{assign var='ref_level' value=0}
|
||||
{foreach from=$block->data.MENU_CATEGORIES item=cat}
|
||||
<li {if $cat.SELECTED}class="active"{/if}{if $cat.LEVEL > 1} style="padding-left: {($cat.LEVEL -1) * 10}px;"{/if}>
|
||||
<a href="{$cat.URL}">{$cat.NAME}
|
||||
{if $cat.count_images > 0}
|
||||
<span class="badge" title="{$cat.TITLE}">{$cat.count_images}</span>
|
||||
{/if}
|
||||
{if !empty($cat.icon_ts)}
|
||||
<img title="{$cat.icon_ts.TITLE}" src="{$ROOT_URL}{$themeconf.icon_dir}/recent{if $cat.icon_ts.IS_CHILD_DATE}_by_child{/if}.png" class="icon" alt="(!)">
|
||||
{/if}
|
||||
</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">{$block->data.NB_PICTURE|@translate_dec:'%d photo':'%d photos'}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -0,0 +1,43 @@
|
||||
<li class="dropdown" id="identificationDropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{if isset($USERNAME)}<i class="fa fa-user"></i> {$USERNAME}{else}{'Login'|@translate}{/if} <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
{strip}
|
||||
{if isset($USERNAME)}
|
||||
<li class="dropdown-header">{'Hello'|@translate} {$USERNAME}!</li>
|
||||
<li class="divider"></li>
|
||||
{/if}
|
||||
{if isset($U_LOGIN)}
|
||||
<li>
|
||||
<form class="navbar-form" method="post" action="{$U_LOGIN}" id="quickconnect">
|
||||
<div class="form-group">
|
||||
<input class="form-control" type="text" name="username" id="username" value="" placeholder="{'Username'|@translate}">
|
||||
<input class="form-control" type="password" name="password" id="password" placeholder="{'Password'|@translate}">
|
||||
</div>
|
||||
{if $AUTHORIZE_REMEMBERING}
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="remember_me" id="remember_me" value="1">{/strip} {'Auto login'|@translate}{strip}
|
||||
</label>
|
||||
</div>
|
||||
{/if}
|
||||
<input type="hidden" name="redirect" value="{$smarty.server.REQUEST_URI|@urlencode}">
|
||||
<button type="submit" class="btn btn-primary" name="login">{'Login'|@translate}</button>
|
||||
</form>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
{/if}
|
||||
{if isset($U_REGISTER)}
|
||||
<li><a href="{$U_REGISTER}" title="{'Create a new account'|@translate}" rel="nofollow">{'Register'|@translate}</a></li>
|
||||
{/if}
|
||||
{if isset($U_LOGOUT)}
|
||||
<li><a href="{$U_LOGOUT}">{'Logout'|@translate}</a></li>
|
||||
{/if}
|
||||
{if isset($U_PROFILE)}
|
||||
<li><a href="{$U_PROFILE}" title="{'customize the appareance of the gallery'|@translate}">{'Customize'|@translate}</a></li>
|
||||
{/if}
|
||||
{if isset($U_ADMIN)}
|
||||
<li><a href="{$U_ADMIN}" title="{'available for administrators only'|@translate}">{'Administration'|@translate}</a></li>
|
||||
{/if}
|
||||
{/strip}
|
||||
</ul>
|
||||
</li>
|
||||
@@ -0,0 +1,19 @@
|
||||
{if isset($blocks.mbMenu->data.qsearch) and $blocks.mbMenu->data.qsearch==true and !$theme_config_extra->quicksearch_navbar}
|
||||
<li>
|
||||
<form class="navbar-form" role="search" action="{$ROOT_URL}qsearch.php" method="get" id="quicksearch" onsubmit="return this.q.value!='' && this.q.value!=qsearch_prompt;">
|
||||
<div class="form-group">
|
||||
<input type="text" name="q" id="qsearchInput" class="form-control" placeholder="{'Quick search'|@translate}" />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
{/if}
|
||||
{foreach from=$blocks.mbMenu->data item=link}
|
||||
{if is_array($link)}
|
||||
<li>
|
||||
<a href="{$link.URL}" title="{$link.TITLE}"{if isset($link.REL)} {$link.REL}{/if}>{$link.NAME}
|
||||
{if isset($link.COUNTER)}<span class="badge">{$link.COUNTER}</span>{/if}
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{/foreach}
|
||||
@@ -0,0 +1,3 @@
|
||||
{foreach from=$blocks.mbSpecials->data item=link}
|
||||
<li><a href="{$link.URL}" title="{$link.TITLE}"{if isset($link.REL)} {$link.REL}{/if}>{$link.NAME}</a></li>
|
||||
{/foreach}
|
||||
@@ -0,0 +1,16 @@
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{'Related tags'|@translate} <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu dropdown-menu-scrollable" role="menu">
|
||||
{foreach from=$block->data item=tag}
|
||||
<li>
|
||||
{strip}<a class="tagLevel{$tag.level}" href=
|
||||
{if isset($tag.U_ADD)}
|
||||
"{$tag.U_ADD}" title="{$tag.counter|@translate_dec:'%d photo is also linked to current tags':'%d photos are also linked to current tags'}" rel="nofollow">+
|
||||
{else}
|
||||
"{$tag.URL}" title="{'display photos linked to this tag'|@translate}">
|
||||
{/if}
|
||||
{$tag.name}</a>{/strip}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</li>
|
||||
@@ -0,0 +1,106 @@
|
||||
{if !empty($chronology_navigation_bars)}
|
||||
{foreach from=$chronology_navigation_bars item=bar}
|
||||
<div id="calendar-nav" class="well well-sm">
|
||||
{if isset($bar.previous)}
|
||||
<a id="calendar-prev" class="btn btn-primary pull-left" href="{$bar.previous.URL}"><span class="glyphicon glyphicon-menu-left"></span> {$bar.previous.LABEL}</a>
|
||||
{/if}
|
||||
{if isset($bar.next)}
|
||||
<a id="calendar-next" class="btn btn-primary pull-right" href="{$bar.next.URL}">{$bar.next.LABEL} <span class="glyphicon glyphicon-menu-right"></span></a>
|
||||
{/if}
|
||||
{if !empty($bar.items)}
|
||||
<div id="calendar-nav-buttons" class="btn-group" role=group">
|
||||
{assign var=item_type value=reset($bar.items)} {* avoid strict standards warning with nested resets *}
|
||||
{if gettype(reset($item_type)) === 'string' || (!isset($bar.previous) && !isset($bar.next))}
|
||||
{foreach from=$bar.items item=item}
|
||||
{if !isset($item.URL)}
|
||||
<a class="btn btn-primary" disabled="disabled">{$item.LABEL}</a>
|
||||
{else}
|
||||
<a class="btn btn-primary" title="{$item.NB_IMAGES|@translate_dec:'%d photo':'%d photos'}" href="{$item.URL}">{$item.LABEL}</a>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
<table class="table table-condensed">
|
||||
<tbody>
|
||||
{assign var=i value=0}
|
||||
{foreach from=$bar.items item=item}
|
||||
{if $i == 0}
|
||||
<tr>
|
||||
{/if}
|
||||
{if !isset($item.URL)}
|
||||
<td>{$item.LABEL}</td>
|
||||
{else}
|
||||
<td class="btn-primary"><a{if isset($item.NB_IMAGES)} title="{$item.NB_IMAGES|@translate_dec:'%d photo':'%d photos'}"{/if} href="{$item.URL}">{$item.LABEL}</a></td>
|
||||
{/if}
|
||||
{if $i == 6}{assign var=i value=0}
|
||||
</tr>
|
||||
{else}{assign var=i value=$i+1}
|
||||
{/if}
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
{if !empty($chronology_calendar.calendar_bars)}
|
||||
{foreach from=$chronology_calendar.calendar_bars item=bar}
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading"><a href="{$bar.U_HEAD}">{$bar.HEAD_LABEL}</a> <span class="badge">{$bar.NB_IMAGES}</span></div>
|
||||
<div class="panel-body">
|
||||
<ul class="calendar-month-list">
|
||||
{foreach from=$bar.items item=item}
|
||||
<li><a href="{if isset($item.URL)}{$item.URL}{else}#{/if}">{$item.LABEL}{if isset($item.NB_IMAGES)} <span class="badge">{$item.NB_IMAGES}</span>{/if}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
{if isset($chronology_calendar.month_view)}
|
||||
<div id="calendar-table" class="table-responsive">
|
||||
<table id="calMonth" class="table table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
{foreach from=$chronology_calendar.month_view.wday_labels item=wday}
|
||||
<th>{$wday}</th>
|
||||
{/foreach}
|
||||
</tr>
|
||||
</thead>
|
||||
{html_style}
|
||||
#calMonth .calImg{
|
||||
width:{$chronology_calendar.month_view.CELL_WIDTH}px;height:{$chronology_calendar.month_view.CELL_HEIGHT}px
|
||||
}
|
||||
#calMonth td{
|
||||
width:{$chronology_calendar.month_view.CELL_WIDTH}px;height:{$chronology_calendar.month_view.CELL_HEIGHT + 29}px
|
||||
}
|
||||
{/html_style}
|
||||
{foreach from=$chronology_calendar.month_view.weeks item=week}
|
||||
<tr>
|
||||
{foreach from=$week item=day}
|
||||
{if !empty($day)}
|
||||
{if isset($day.IMAGE)}
|
||||
<td class="calDayCellFull">
|
||||
<div class="calDate">{$day.DAY}</div>
|
||||
<div class="calImg">
|
||||
<a href="{$day.U_IMG_LINK}">
|
||||
<img class="img-responsive" src="{$day.IMAGE}" alt="{$day.IMAGE_ALT}" title="{$day.NB_ELEMENTS|@translate_dec:'%d photo':'%d photos'}">
|
||||
</a>
|
||||
</div>
|
||||
{else}
|
||||
<td class="calDayCellEmpty">{$day.DAY}
|
||||
{/if}
|
||||
{else}{*blank cell first or last row only*}
|
||||
<td>
|
||||
{/if}
|
||||
</td>
|
||||
{/foreach}{*day in week*}
|
||||
</tr>
|
||||
{/foreach}{*week in month*}
|
||||
</table>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
<nav class="navbar navbar-default" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<div class="navbar-brand"><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}<a href>{$title}</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{include file='infos_errors.tpl'}
|
||||
|
||||
{if $action ne 'none'}
|
||||
<div class="container">
|
||||
<form id="lostPassword" action="{$form_action}?action={$action}{if isset($key)}&key={$key}{/if}" method="post" class="form-horizontal">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'Forgot your password?'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
{if $action eq 'lost'}
|
||||
<div>
|
||||
{'Please enter your username or email address.'|@translate}
|
||||
{'You will receive a link to create a new password via email.'|@translate}
|
||||
</div>
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label for="username_or_email" class="col-sm-2 control-label">{'Username or email'|@translate}</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" id="username_or_email" name="username_or_email" class="form-control" maxlength="40"{if isset($username_or_email)} value="{$username_or_email}"{/if} placeholder="{'Username or email'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<input type="submit" name="submit" value="{'Change my password'|@translate}" class="btn btn-default btn-primary">
|
||||
</div>
|
||||
</div>
|
||||
{elseif $action eq 'reset'}
|
||||
<div>{'Hello'|@translate} <em>{$username}</em>. {'Enter your new password below.'|@translate}</div>
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label for="use_new_pwd" class="col-sm-2 control-label">{'New password'|@translate}</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="password" name="use_new_pwd" id="use_new_pwd" value="" class="form-control" placeholder="{'New password'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="passwordConf" class="col-sm-2 control-label">{'Confirm Password'|@translate}</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="password" name="passwordConf" id="passwordConf" class="form-control" value="" placeholder="{'Confirm Password'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<input type="submit" name="submit" value="{'Submit'|@translate}" class="btn btn-default btn-primary">
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<script type="text/javascript">
|
||||
{if $action eq 'lost'}
|
||||
{literal}try{document.getElementById('username_or_email').focus();}catch(e){}{/literal}
|
||||
{elseif $action eq 'reset'}
|
||||
{literal}try{document.getElementById('use_new_pwd').focus();}catch(e){}{/literal}
|
||||
{/if}
|
||||
</script>
|
||||
431
zoesch.de/galerie/themes/bootstrap_darkroom/template/picture.tpl
Normal file
431
zoesch.de/galerie/themes/bootstrap_darkroom/template/picture.tpl
Normal file
@@ -0,0 +1,431 @@
|
||||
<!-- Start of picture.tpl -->
|
||||
{if get_device() != 'desktop'}
|
||||
{combine_script id='jquery.mobile-events' path='themes/bootstrap_darkroom/components/jquery-touch-events/src/jquery.mobile-events.min.js' require='jquery' load='footer'}
|
||||
{/if}
|
||||
|
||||
{if !empty($PLUGIN_PICTURE_BEFORE)}{$PLUGIN_PICTURE_BEFORE}{/if}
|
||||
|
||||
{include file='picture_nav.tpl'}
|
||||
|
||||
<div id="content-spacer" class="container">
|
||||
{include file='infos_errors.tpl'}
|
||||
{include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'}
|
||||
{if get_device() != 'desktop' }
|
||||
{footer_script require="jquery"}{strip}
|
||||
$('#theImage img').bind('swipeleft swiperight', function (event) {
|
||||
if (event.type == 'swipeleft') {
|
||||
$('#navigationButtons a#navNextPicture span').click();
|
||||
} else if (event.type == 'swiperight') {
|
||||
$('#navigationButtons a#navPrevPicture span').click();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
{if $theme_config_extra->bootstrap_theme == 'material'}
|
||||
{footer_script require='jquery'}
|
||||
$('#content-spacer').removeClass('container').wrap('<div class="container well"></div>');
|
||||
$('div[id^="theImage"]').removeClass('container').insertAfter('#content-spacer');
|
||||
{/footer_script}
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div id="theImage">
|
||||
{$ELEMENT_CONTENT}
|
||||
</div>
|
||||
|
||||
{if $theme_config_extra->picture_info == 'sidebar' && get_device() == 'desktop'}
|
||||
{include file='picture_info_sidebar.tpl'}
|
||||
{/if}
|
||||
|
||||
<div id="theImageComment" class="container">
|
||||
{if isset($COMMENT_IMG)}
|
||||
<div class="text-center col-lg-10 -col-md-12 col-centered">
|
||||
<section id="important-info">
|
||||
<h4 class="imageComment">{$COMMENT_IMG}</h4>
|
||||
</section>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{include file="http_scheme.tpl"}
|
||||
{if $theme_config->social_enabled}
|
||||
<div id="theImageShareButtons" class="container">
|
||||
<section id="share">
|
||||
{if $theme_config->social_twitter}
|
||||
<a href="http://twitter.com/share?text={$current.TITLE}&url={$http_scheme}://{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}"
|
||||
onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;" title="Share on Twitter">
|
||||
<i class="fa fa-twitter"></i>
|
||||
</a>
|
||||
{/if}
|
||||
{if $theme_config->social_facebook}
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u={$http_scheme}://{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}"
|
||||
onclick="window.open(this.href, 'facebook-share','width=580,height=296');return false;" title="Share on Facebook">
|
||||
<i class="fa fa-facebook"></i>
|
||||
</a>
|
||||
{/if}
|
||||
{if $theme_config->social_google_plus}
|
||||
<a href="https://plus.google.com/share?url={$http_scheme}://{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}"
|
||||
onclick="window.open(this.href, 'google-plus-share', 'width=490,height=530');return false;" title="Share on Google+">
|
||||
<i class="fa fa-google-plus"></i>
|
||||
</a>
|
||||
{/if}
|
||||
</section>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if !empty($thumbnails) && ($theme_config_extra->slick_enabled || $theme_config_extra->photoswipe)}
|
||||
{if $theme_config_extra->slick_enabled && sizeOf($thumbnails) > 1}
|
||||
{include file="_slick_js.tpl"}
|
||||
{/if}
|
||||
{if $theme_config_extra->photoswipe && !$theme_config_extra->slick_infinite}
|
||||
{include file="_photoswipe_js.tpl" selector="#thumbnailCarousel"}
|
||||
{/if}
|
||||
{if $theme_config_extra->photoswipe && $theme_config_extra->slick_infinite}
|
||||
{include file="_photoswipe_js.tpl" selector="#photoSwipeData"}
|
||||
{/if}
|
||||
<div id="theImageCarousel" class="container">
|
||||
<div class="col-lg-10 col-md-12 col-centered">
|
||||
<div id="thumbnailCarousel" class="slick-carousel">
|
||||
{assign var=idx value=0}
|
||||
{foreach from=$thumbnails item=thumbnail}
|
||||
{assign var=derivative value=$pwg->derivative($derivative_params_square, $thumbnail.src_image)}
|
||||
{if !$theme_config_extra->slick_infinite}
|
||||
{assign var=derivative_medium value=$pwg->derivative($derivative_params_medium, $thumbnail.src_image)}
|
||||
{assign var=derivative_large value=$pwg->derivative($derivative_params_large, $thumbnail.src_image)}
|
||||
{assign var=derivative_xxlarge value=$pwg->derivative($derivative_params_xxlarge, $thumbnail.src_image)}
|
||||
{/if}
|
||||
{if !$derivative->is_cached()}
|
||||
{combine_script id='jquery.ajaxmanager' path='themes/default/js/plugins/jquery.ajaxmanager.js' load='footer'}
|
||||
{combine_script id='thumbnails.loader' path='themes/default/js/thumbnails.loader.js' require='jquery.ajaxmanager' load='footer'}
|
||||
{/if}
|
||||
{if !$theme_config_extra->slick_infinite}
|
||||
{if $thumbnail.id eq $current.id && !$theme_config_extra->slick_infinite}
|
||||
<div class="text-center thumbnail-active">
|
||||
{else}
|
||||
<div class="text-center">
|
||||
{/if}
|
||||
<a{if $thumbnail.id eq $current.id} id="thumbnail-active"{/if} href="{$thumbnail.URL}" data-index="{$idx}" data-name="{$thumbnail.NAME}" data-description="{$thumbnail.DESCRIPTION}" {if !$theme_config_extra->slick_infinite}data-src-xlarge="{$derivative_xxlarge->get_url()}" data-size-xlarge="{$derivative_xxlarge->get_size_hr()}" data-src-large="{$derivative_large->get_url()}" data-size-large="{$derivative_large->get_size_hr()}" data-src-medium="{$derivative_medium->get_url()}" data-size-medium="{$derivative_medium->get_size_hr()}"{if preg_match("/(mp4|m4v)$/", $thumbnail.PATH)} data-src-original="{$U_HOME}{$thumbnail.PATH}" data-size-original="{$thumbnail.SIZE}" data-video="true"{else}{if $theme_config_extra->photoswipe_metadata} data-exif-make="{$thumbnail.EXIF.make}" data-exif-model="{$thumbnail.EXIF.model}" data-exif-lens="{$thumbnail.EXIF.lens}" data-exif-iso="{$thumbnail.EXIF.iso}" data-exif-apperture="{$thumbnail.EXIF.apperture}" data-exif-shutter-speed="{$thumbnail.EXIF.shutter_speed}" data-exif-focal-length="{$thumbnail.EXIF.focal_length}" data-date-created="{$thumbnail.DATE_CREATED}"{/if}{/if}{/if}>
|
||||
{else}
|
||||
<div class="text-center{if $thumbnail.id eq $current.id} thumbnail-active{/if}"><a href="{$thumbnail.URL}">
|
||||
{/if}
|
||||
<img {if $derivative->is_cached()}data-lazy="{$derivative->get_url()}"{else}data-lazy="{$ROOT_URL}{$themeconf.icon_dir}/img_small.png" data-src="{$derivative->get_url()}"{/if} alt="{$thumbnail.TN_ALT}" title="{$thumbnail.TN_TITLE}" class="img-responsive"></a>
|
||||
</div>
|
||||
{assign var=idx value=$idx+1}
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{if $theme_config_extra->slick_infinite}
|
||||
<div id="photoSwipeData">
|
||||
{assign var=idx value=0}
|
||||
{foreach from=$thumbnails item=thumbnail}
|
||||
{assign var=derivative_medium value=$pwg->derivative($derivative_params_medium, $thumbnail.src_image)}
|
||||
{assign var=derivative_large value=$pwg->derivative($derivative_params_large, $thumbnail.src_image)}
|
||||
{assign var=derivative_xxlarge value=$pwg->derivative($derivative_params_xxlarge, $thumbnail.src_image)}
|
||||
<a{if $thumbnail.id eq $current.id} id="thumbnail-active"{/if} href="{$thumbnail.URL}" data-index="{$idx}" data-name="{$thumbnail.NAME}" data-description="{$thumbnail.DESCRIPTION}" data-src-xlarge="{$derivative_xxlarge->get_url()}" data-size-xlarge="{$derivative_xxlarge->get_size_hr()}" data-src-large="{$derivative_large->get_url()}" data-size-large="{$derivative_large->get_size_hr()}" data-src-medium="{$derivative_medium->get_url()}" data-size-medium="{$derivative_medium->get_size_hr()}"{if preg_match("/(mp4|m4v)$/", $thumbnail.PATH)} data-src-original="{$U_HOME}{$thumbnail.PATH}" data-size-original="{$thumbnail.SIZE}" data-video="true"{else}{if $theme_config_extra->photoswipe_metadata} data-exif-make="{$thumbnail.EXIF.make}" data-exif-model="{$thumbnail.EXIF.model}" data-exif-lens="{$thumbnail.EXIF.lens}" data-exif-iso="{$thumbnail.EXIF.iso}" data-exif-apperture="{$thumbnail.EXIF.apperture}" data-exif-shutter-speed="{$thumbnail.EXIF.shutter_speed}" data-exif-focal-length="{$thumbnail.EXIF.focal_length}" data-date-created="{$thumbnail.DATE_CREATED}"{/if}{/if}></a>
|
||||
{assign var=idx value=$idx+1}
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
<div id="theImageInfos" class="container">
|
||||
<div id="infopanel" class="col-lg-8 col-md-10 col-sm-12 col-xs-12 col-centered">
|
||||
<!-- Nav tabs -->
|
||||
<ul class="nav nav-tabs nav-justified" role="tablist">
|
||||
{if $theme_config_extra->picture_info == 'tabs' || (get_device() != 'desktop' && $theme_config_extra->picture_info != 'disabled')}
|
||||
<li role="presentation" class="active"><a href="#tab_info" aria-controls="tab_info" role="tab" data-toggle="tab">{'Information'|@translate}</a></li>
|
||||
{if isset($metadata)}
|
||||
<li role="presentation"><a href="#tab_metadata" aria-controls="tab_metadata" role="tab" data-toggle="tab">{'EXIF Metadata'|@translate}</a></li>
|
||||
{/if}
|
||||
{/if}
|
||||
{if isset($comment_add) || $COMMENT_COUNT > 0}
|
||||
<li role="presentation"{if $theme_config_extra->picture_info == 'disabled' || ($theme_config_extra->picture_info != 'tabs' && get_device() == 'desktop')} class="active"{/if}><a href="#tab_comments" aria-controls="tab_comments" role="tab" data-toggle="tab">{'Comments'|@translate} <span class="badge">{$COMMENT_COUNT}</span></a></li>
|
||||
{/if}
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
{if $theme_config_extra->picture_info === 'tabs' || (get_device() != 'desktop' && $theme_config_extra->picture_info != 'disabled')}
|
||||
<div role="tabpanel" class="tab-pane active" id="tab_info">
|
||||
<div id="info-content" class="info table-responsive">
|
||||
<table class="table table-condensed">
|
||||
<colgroup>
|
||||
<col class="col-xs-4">
|
||||
<col class="col-xs-4">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
{if $display_info.author and isset($INFO_AUTHOR)}
|
||||
<tr>
|
||||
<th scope="row">{'Author'|@translate}</th>
|
||||
<td><div id="Author" class="imageInfo">{$INFO_AUTHOR}</div></td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if isset($CR_INFO_NAME) && !empty($CR_INFO_NAME)}
|
||||
<tr>
|
||||
<th scope="row">{'Copyright'|@translate}</th>
|
||||
<td><div id="Copyright" class="imageInfo">{if isset($CR_INFO_URL)}<a href="{$CR_INFO_URL}">{$CR_INFO_NAME}</a>{else}{$CR_INFO_NAME}{/if}</div></td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $display_info.rating_score and isset($rate_summary)}
|
||||
<tr>
|
||||
<th scope="row">{'Rating score'|@translate}</th>
|
||||
<td><div id="Average" class="imageInfo">
|
||||
{if $rate_summary.count}
|
||||
<span id="ratingScore">{$rate_summary.score}</span> <span id="ratingCount">({$rate_summary.count|@translate_dec:'%d rate':'%d rates'})</span>
|
||||
{else}
|
||||
<span id="ratingScore">{'no rate'|@translate}</span> <span id="ratingCount"></span>
|
||||
{/if}
|
||||
</div></td>
|
||||
</tr>
|
||||
{/if}
|
||||
|
||||
{if isset($rating)}
|
||||
<tr>
|
||||
<th scope="row" id="updateRate">{if isset($rating.USER_RATE)}{'Update your rating'|@translate}{else}{'Rate this photo'|@translate}{/if}</th>
|
||||
<td>
|
||||
<div id="rating" class="imageInfo">
|
||||
<form action="{$rating.F_ACTION}" method="post" id="rateForm" style="margin:0;">
|
||||
<div>
|
||||
{foreach from=$rating.marks item=mark name=rate_loop}
|
||||
{if isset($rating.USER_RATE) && $mark==$rating.USER_RATE}
|
||||
<span class="rateButtonStarFull" data-value="{$mark}"></span>
|
||||
{else}
|
||||
<span class="rateButtonStarEmpty" data-value="{$mark}"></span>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{strip}{combine_script id='core.scripts' path='themes/default/js/scripts.js' load='async'}
|
||||
{combine_script id='rating' require='core.scripts' path='themes/bootstrapdefault/js/rating.js' load='async'}
|
||||
{footer_script require='jquery'}
|
||||
var _pwgRatingAutoQueue = _pwgRatingAutoQueue||[];
|
||||
_pwgRatingAutoQueue.push( {ldelim}rootUrl: '{$ROOT_URL}', image_id: {$current.id},
|
||||
onSuccess : function(rating) {ldelim}
|
||||
var e = document.getElementById("updateRate");
|
||||
if (e) e.innerHTML = "{'Update your rating'|@translate|@escape:'javascript'}";
|
||||
e = document.getElementById("ratingScore");
|
||||
if (e) e.innerHTML = rating.score;
|
||||
e = document.getElementById("ratingCount");
|
||||
if (e) {ldelim}
|
||||
if (rating.count == 1) {ldelim}
|
||||
e.innerHTML = "({'%d rate'|@translate|@escape:'javascript'})".replace( "%d", rating.count);
|
||||
{rdelim} else {ldelim}
|
||||
e.innerHTML = "({'%d rates'|@translate|@escape:'javascript'})".replace( "%d", rating.count);
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
$('#averageRate').find('span').each(function() {ldelim}
|
||||
$(this).addClass(rating.average > $(this).data('value') - 0.5 ? 'rateButtonStarFull' : 'rateButtonStarEmpty');
|
||||
$(this).removeClass(rating.average > $(this).data('value') - 0.5 ? 'rateButtonStarEmpty' : 'rateButtonStarFull');
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{/footer_script}
|
||||
{/strip}
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $display_info.created_on and isset($INFO_CREATION_DATE)}
|
||||
<tr>
|
||||
<th scope="row">{'Created on'|@translate}</th>
|
||||
<td><div id="datecreate" class="imageInfo">{$INFO_CREATION_DATE}</div></td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $display_info.posted_on}
|
||||
<tr>
|
||||
<th scope="row">{'Posted on'|@translate}</th>
|
||||
<td><div id="datepost" class="imageInfo">{$INFO_POSTED_DATE}</div></td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $display_info.visits}
|
||||
<tr>
|
||||
<th scope="row">{'Visits'|@translate}</th>
|
||||
<td><div id="visits" class="imageInfo">{$INFO_VISITS}</div></td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $display_info.dimensions and isset($INFO_DIMENSIONS)}
|
||||
<tr>
|
||||
<th scope="row">{'Dimensions'|@translate}</th>
|
||||
<td><div id="Dimensions" class="imageInfo">{$INFO_DIMENSIONS}</div></td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $display_info.file}
|
||||
<tr>
|
||||
<th scope="row">{'File'|@translate}</th>
|
||||
<td><div id="File" class="imageInfo">{$INFO_FILE}</div></td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $display_info.filesize and isset($INFO_FILESIZE)}
|
||||
<tr>
|
||||
<th scope="row">{'Filesize'|@translate}</th>
|
||||
<td><div id="Filesize" class="imageInfo">{$INFO_FILESIZE}</div></td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $display_info.tags and isset($related_tags)}
|
||||
<tr>
|
||||
<th scope="row">{'Tags'|@translate}</th>
|
||||
<td>
|
||||
<div id="Tags" class="imageInfo">
|
||||
{foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}<a href="{$tag.URL}">{$tag.name}</a>{/foreach}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $display_info.categories and isset($related_categories)}
|
||||
<tr>
|
||||
<th scope="row">{'Albums'|@translate}</th>
|
||||
<td><div id="Categories" class="imageInfo">
|
||||
{foreach from=$related_categories item=cat name=cat_loop}
|
||||
{if !$smarty.foreach.cat_loop.first}<br />{/if}{$cat}
|
||||
{/foreach}
|
||||
</div></td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $display_info.privacy_level and isset($available_permission_levels)}
|
||||
{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
|
||||
{footer_script require='jquery'}{strip}
|
||||
function setPrivacyLevel(id, level, label) {
|
||||
(new PwgWS('{$ROOT_URL}')).callService(
|
||||
"pwg.images.setPrivacyLevel", { image_id:id, level:level},
|
||||
{
|
||||
method: "POST",
|
||||
onFailure: function(num, text) { alert(num + " " + text); },
|
||||
onSuccess: function(result) {
|
||||
jQuery('#dropdownPermissions').html(label + ' <span class="caret"></span>');
|
||||
jQuery('.permission-li').removeClass('active');
|
||||
jQuery('#permission-' + level).addClass('active');
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
(SwitchBox=window.SwitchBox||[]).push("#privacyLevelLink", "#privacyLevelBox");
|
||||
{/strip}{/footer_script}
|
||||
<tr>
|
||||
<th scope="row">{'Who can see this photo?'|@translate}</dt>
|
||||
<td>
|
||||
<div id="Privacy" class="imageInfo">
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-default dropdown-toggle ellipsis" type="button" id="dropdownPermissions" data-toggle="dropdown" aria-expanded="true">
|
||||
{$available_permission_levels[$current.level]}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownPermissions">
|
||||
{foreach from=$available_permission_levels item=label key=level}
|
||||
<li id="permission-{$level}" role="presentation" class="permission-li {if $current.level == $level} active{/if}"><a role="menuitem" tabindex="-1" href="javascript:setPrivacyLevel({$current.id},{$level},'{$label}')">{$label}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- metadata -->
|
||||
{if isset($metadata)}
|
||||
<div role="tabpanel" class="tab-pane" id="tab_metadata">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-condensed">
|
||||
<colgroup>
|
||||
<col class="col-xs-4">
|
||||
<col class="col-xs-4">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
{foreach from=$metadata item=meta}
|
||||
{foreach from=$meta.lines item=value key=label}
|
||||
<tr>
|
||||
<th scope="row">{$label}</th>
|
||||
<td>{$value}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
<!-- comments -->
|
||||
{if isset($comment_add) || $COMMENT_COUNT > 0}
|
||||
<div role="tabpanel" class="tab-pane{if $theme_config_extra->picture_info == 'disabled' || ($theme_config_extra->picture_info != 'tabs' && get_device() == 'desktop')} active{/if}" id="tab_comments">
|
||||
<a name="comments"></a>
|
||||
{$shortname = $theme_config->comments_disqus_shortname}
|
||||
{if $theme_config->comments_type == 'disqus' and !empty($shortname)}
|
||||
<div id="disqus_thread"></div>
|
||||
{footer_script}{strip}
|
||||
var disqus_shortname = '{/strip}{$shortname}{strip}';
|
||||
|
||||
(function() {
|
||||
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
||||
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
|
||||
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
||||
})();
|
||||
{/strip}
|
||||
{/footer_script}
|
||||
{else}
|
||||
<div class="tabbable">
|
||||
<ul class="nav nav-pills">
|
||||
{if $COMMENT_COUNT > 0}
|
||||
<li class="active"><a href="#viewcomments" data-toggle="tab">{$COMMENT_COUNT|@translate_dec:'%d comment':'%d comments'}</a></li>
|
||||
{/if}
|
||||
{if isset($comment_add)}
|
||||
<li{if $COMMENT_COUNT == 0} class="active"{/if}><a href="#addcomment" data-toggle="tab">{'Add a comment'|@translate}</a></li>
|
||||
{/if}
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
{if $COMMENT_COUNT > 0}
|
||||
<div id="viewcomments" class="tab-pane active">
|
||||
{include file='comment_list.tpl'}
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($comment_add)}
|
||||
<div id="addcomment" class="tab-pane{if $COMMENT_COUNT == 0} active{/if}">
|
||||
<form method="post" action="{$comment_add.F_ACTION}">
|
||||
{if $comment_add.SHOW_AUTHOR}
|
||||
<div class="form-group">
|
||||
<label for="author">{'Author'|@translate}{if $comment_add.AUTHOR_MANDATORY} ({'mandatory'|@translate}){/if} :</label>
|
||||
<input class="form-control" type="text" name="author" id="author" value="{$comment_add.AUTHOR}">
|
||||
</div>
|
||||
{/if}
|
||||
{if $comment_add.SHOW_EMAIL}
|
||||
<div class="form-group">
|
||||
<label for="email">{'Email address'|@translate}{if $comment_add.EMAIL_MANDATORY} ({'mandatory'|@translate}){/if} :</label>
|
||||
<input class="form-control" type="text" name="email" id="email" value="{$comment_add.EMAIL}">
|
||||
</div>
|
||||
{/if}
|
||||
{if $comment_add.SHOW_WEBSITE}
|
||||
<div class="form-group">
|
||||
<label for="website_url">{'Website'|@translate} :</label>
|
||||
<input class="form-control" type="text" name="website_url" id="website_url" value="{$comment_add.WEBSITE_URL}">
|
||||
</div>
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label for="contentid">{'Comment'|@translate} ({'mandatory'|@translate}) :</label>
|
||||
<textarea class="form-control" name="content" id="contentid" rows="5" cols="50">{$comment_add.CONTENT}</textarea>
|
||||
</div>
|
||||
<input type="hidden" name="key" value="{$comment_add.KEY}">
|
||||
<button type="submit" class="btn btn-default">{'Submit'|@translate}</button>
|
||||
</form>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if !empty($navbar) }
|
||||
<div class="container">
|
||||
{include file='navigation_bar.tpl' fragment='comments'|@get_extent:'navbar'}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if !empty($PLUGIN_PICTURE_AFTER)}{$PLUGIN_PICTURE_AFTER}{/if}
|
||||
@@ -0,0 +1,39 @@
|
||||
{if !$current.selected_derivative->is_cached()}
|
||||
{combine_script id='jquery.ajaxmanager' path='themes/default/js/plugins/jquery.ajaxmanager.js' load='footer'}
|
||||
{combine_script id='thumbnails.loader' path='themes/default/js/thumbnails.loader.js' require='jquery.ajaxmanager' load='footer'}
|
||||
{footer_script}var error_icon = "{$ROOT_URL}{$themeconf.icon_dir}/errors_small.png"{/footer_script}
|
||||
{/if}
|
||||
{if preg_match("/(mp4|m4v)$/", $current.path)}
|
||||
{if $current.height < $current.width}
|
||||
{$current.height / $current.width * 100}
|
||||
<div id="video-modal" class="col-lg-8 col-md-10 col-sm-12 col-centered">
|
||||
{if $current.height / $current.width * 100 < 60}
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
{else}
|
||||
<div class="embed-responsive embed-responsive-custom" style="padding-bottom:{$current.height / $current.width * 100}%">
|
||||
{/if}
|
||||
{else}
|
||||
<div id="video-modal" class="col-lg-3 col-md-5 col-sm-6 col-xs-8 col-centered">
|
||||
<div class="embed-responsive embed-responsive-9by16">
|
||||
{/if}
|
||||
<video id="video" class="embed-responsive-item" width="100%" height="auto" controls preload="auto" poster="{$current.selected_derivative->get_url()}">
|
||||
<source src="{$ROOT_URL}{$current.path}" type="video/mp4"></source>
|
||||
</video>
|
||||
</div>
|
||||
</div>
|
||||
{else}
|
||||
<img {if $current.selected_derivative->is_cached()}src="{$current.selected_derivative->get_url()}" {$current.selected_derivative->get_size_htm()}{else}src="{$ROOT_URL}themes/bootstrapdefault/img/transparent.png" data-src="{$current.selected_derivative->get_url()}"{/if} alt="{$ALT_IMG}" id="theMainImage" usemap="#map{$current.selected_derivative->get_type()}" title="{if isset($COMMENT_IMG)}{$COMMENT_IMG|@strip_tags:false|@replace:'"':' '}{else}{$current.TITLE_ESC} - {$ALT_IMG}{/if}">
|
||||
|
||||
{foreach from=$current.unique_derivatives item=derivative key=derivative_type}{strip}
|
||||
<map name="map{$derivative->get_type()}">
|
||||
{assign var='size' value=$derivative->get_size()}
|
||||
{if isset($previous)}
|
||||
<area shape=rect coords="0,0,{($size[0]/4)|@intval},{$size[1]}" href="{$previous.U_IMG}" title="{'Previous'|@translate} : {$previous.TITLE_ESC}" alt="{$previous.TITLE_ESC}">
|
||||
{/if}
|
||||
<area shape=rect coords="{($size[0]/4)|@intval},0,{($size[0]/1.34)|@intval},{($size[1]/4)|@intval}" href="{$U_UP}" title="{'Thumbnails'|@translate}" alt="{'Thumbnails'|@translate}">
|
||||
{if isset($next)}
|
||||
<area shape=rect coords="{($size[0]/1.33)|@intval},0,{$size[0]},{$size[1]}" href="{$next.U_IMG}" title="{'Next'|@translate} : {$next.TITLE_ESC}" alt="{$next.TITLE_ESC}">
|
||||
{/if}
|
||||
</map>
|
||||
{/strip}{/foreach}
|
||||
{/if}
|
||||
@@ -0,0 +1,181 @@
|
||||
<div id="sidebar">
|
||||
<div id="info-content" class="info">
|
||||
<dl>
|
||||
<h4>{'Information'|@translate}</h4>
|
||||
{if $display_info.author and isset($INFO_AUTHOR)}
|
||||
<div id="Author" class="imageInfo">
|
||||
<dt>{'Author'|@translate}</dt>
|
||||
<dd>{$INFO_AUTHOR}</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($CR_INFO_NAME) && !empty($CR_INFO_NAME)}
|
||||
<div id="Copyright" class="imageInfo">
|
||||
<dt>{'Copyright'|@translate}</dt>
|
||||
<dd>{if isset($CR_INFO_URL)}<a href="{$CR_INFO_URL}">{$CR_INFO_NAME}</a>{else}{$CR_INFO_NAME}{/if}</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if $display_info.created_on and isset($INFO_CREATION_DATE)}
|
||||
<div id="datecreate" class="imageInfo">
|
||||
<dt>{'Created on'|@translate}</dt>
|
||||
<dd>{$INFO_CREATION_DATE}</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if $display_info.posted_on}
|
||||
<div id="datepost" class="imageInfo">
|
||||
<dt>{'Posted on'|@translate}</dt>
|
||||
<dd>{$INFO_POSTED_DATE}</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if $display_info.visits}
|
||||
<div id="visits" class="imageInfo">
|
||||
<dt>{'Visits'|@translate}</dt>
|
||||
<dd>{$INFO_VISITS}</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if $display_info.dimensions and isset($INFO_DIMENSIONS)}
|
||||
<div id="Dimensions" class="imageInfo">
|
||||
<dt>{'Dimensions'|@translate}</dt>
|
||||
<dd>{$INFO_DIMENSIONS}</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if $display_info.file}
|
||||
<div id="File" class="imageInfo">
|
||||
<dt>{'File'|@translate}</dt>
|
||||
<dd>{$INFO_FILE}</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if $display_info.filesize and isset($INFO_FILESIZE)}
|
||||
<div id="Filesize" class="imageInfo">
|
||||
<dt>{'Filesize'|@translate}</dt>
|
||||
<dd>{$INFO_FILESIZE}</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if $display_info.tags and isset($related_tags)}
|
||||
<div id="Tags" class="imageInfo">
|
||||
<dt>{'Tags'|@translate}</dt>
|
||||
<dd>
|
||||
{foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}<a href="{$tag.URL}">{$tag.name}</a>{/foreach}
|
||||
</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if $display_info.categories and isset($related_categories)}
|
||||
<div id="Categories" class="imageInfo">
|
||||
<dt>{'Albums'|@translate}</dt>
|
||||
<dd>
|
||||
{foreach from=$related_categories item=cat name=cat_loop}
|
||||
{if !$smarty.foreach.cat_loop.first}<br />{/if}{$cat}
|
||||
{/foreach}
|
||||
</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if $display_info.rating_score and isset($rate_summary)}
|
||||
<div id="Average" class="imageInfo">
|
||||
<dt>{'Rating score'|@translate}</dt>
|
||||
<dd>
|
||||
{if $rate_summary.count}
|
||||
<span id="ratingScore">{$rate_summary.score}</span> <span id="ratingCount">({$rate_summary.count|@translate_dec:'%d rate':'%d rates'})</span>
|
||||
{else}
|
||||
<span id="ratingScore">{'no rate'|@translate}</span> <span id="ratingCount"></span>
|
||||
{/if}
|
||||
</dd>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if isset($rating)}
|
||||
<div id="rating" class="imageInfo">
|
||||
<dt id="updateRate">{if isset($rating.USER_RATE)}{'Update your rating'|@translate}{else}{'Rate this photo'|@translate}{/if}</dt>
|
||||
<dd>
|
||||
<form action="{$rating.F_ACTION}" method="post" id="rateForm" style="margin:0;">
|
||||
<div>
|
||||
{foreach from=$rating.marks item=mark name=rate_loop}
|
||||
{if isset($rating.USER_RATE) && $mark==$rating.USER_RATE}
|
||||
<span class="rateButtonStarFull" data-value="{$mark}"></span>
|
||||
{else}
|
||||
<span class="rateButtonStarEmpty" data-value="{$mark}"></span>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{strip}{combine_script id='core.scripts' path='themes/default/js/scripts.js' load='async'}
|
||||
{combine_script id='rating' require='core.scripts' path='themes/bootstrapdefault/js/rating.js' load='async'}
|
||||
{footer_script require='jquery'}
|
||||
var _pwgRatingAutoQueue = _pwgRatingAutoQueue||[];
|
||||
_pwgRatingAutoQueue.push( {ldelim}rootUrl: '{$ROOT_URL}', image_id: {$current.id},
|
||||
onSuccess : function(rating) {ldelim}
|
||||
var e = document.getElementById("updateRate");
|
||||
if (e) e.innerHTML = "{'Update your rating'|@translate|@escape:'javascript'}";
|
||||
e = document.getElementById("ratingScore");
|
||||
if (e) e.innerHTML = rating.score;
|
||||
e = document.getElementById("ratingCount");
|
||||
if (e) {ldelim}
|
||||
if (rating.count == 1) {ldelim}
|
||||
e.innerHTML = "({'%d rate'|@translate|@escape:'javascript'})".replace( "%d", rating.count);
|
||||
{rdelim} else {ldelim}
|
||||
e.innerHTML = "({'%d rates'|@translate|@escape:'javascript'})".replace( "%d", rating.count);
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
$('#averageRate').find('span').each(function() {ldelim}
|
||||
$(this).addClass(rating.average > $(this).data('value') - 0.5 ? 'rateButtonStarFull' : 'rateButtonStarEmpty');
|
||||
$(this).removeClass(rating.average > $(this).data('value') - 0.5 ? 'rateButtonStarEmpty' : 'rateButtonStarFull');
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{/footer_script}
|
||||
{/strip}
|
||||
</div>
|
||||
</form>
|
||||
</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if $display_info.privacy_level and isset($available_permission_levels)}
|
||||
{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
|
||||
{footer_script require='jquery'}{strip}
|
||||
function setPrivacyLevel(id, level, label) {
|
||||
(new PwgWS('{$ROOT_URL}')).callService(
|
||||
"pwg.images.setPrivacyLevel", { image_id:id, level:level},
|
||||
{
|
||||
method: "POST",
|
||||
onFailure: function(num, text) { alert(num + " " + text); },
|
||||
onSuccess: function(result) {
|
||||
jQuery('#dropdownPermissions').html(label + ' <span class="caret"></span>');
|
||||
jQuery('.permission-li').removeClass('active');
|
||||
jQuery('#permission-' + level).addClass('active');
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
(SwitchBox=window.SwitchBox||[]).push("#privacyLevelLink", "#privacyLevelBox");
|
||||
{/strip}{/footer_script}
|
||||
<div id="Privacy" class="imageInfo">
|
||||
<dt>{'Who can see this photo?'|@translate}</dt>
|
||||
<dd>
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-default dropdown-toggle ellipsis" type="button" id="dropdownPermissions" data-toggle="dropdown" aria-expanded="true">
|
||||
{$available_permission_levels[$current.level]}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu pull-right" role="menu" aria-labelledby="dropdownPermissions">
|
||||
{foreach from=$available_permission_levels item=label key=level}
|
||||
<li id="permission-{$level}" role="presentation" class="permission-li {if $current.level == $level} active{/if}"><a role="menuitem" tabindex="-1" href="javascript:setPrivacyLevel({$current.id},{$level},'{$label}')">{$label}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($metadata)}
|
||||
{foreach from=$metadata item=meta}
|
||||
<br />
|
||||
<h4>{$meta.TITLE}</h4>
|
||||
{foreach from=$meta.lines item=value key=label}
|
||||
<dt>{$label}</dt>
|
||||
<dd>{$value}</dd>
|
||||
{/foreach}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</dl>
|
||||
</div>
|
||||
<div class="handle">
|
||||
<a id="info-link" href="#">
|
||||
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,165 @@
|
||||
{footer_script require='bootstrap'}
|
||||
{literal}
|
||||
if ($('.jumbotron').length > 0) {
|
||||
var $affix_height = $('.navbar-main').height() + $('.jumbotron').outerHeight();
|
||||
$('.navbar-contextual').affix({ offset: {top: $affix_height } });
|
||||
$('.navmenu').css('top', $affix_height);
|
||||
} else {
|
||||
$('.navbar-contextual').affix({ offset: {top: 50} });
|
||||
}
|
||||
{/literal}
|
||||
$('.navmenu').on('show.bs.offcanvas', function() {
|
||||
if ($('ul.navmenu-nav').contents().length === 0) {
|
||||
$($('ul.navbar-nav').contents()).appendTo('ul.navmenu-nav');
|
||||
$('ul.navmenu-nav').find('.dropdown-menu').addClass('dropdown-menu-right');
|
||||
$('ul.navmenu-nav').find('.dropdown-toggle').attr('aria-haspopup', 'true');
|
||||
}
|
||||
{if $theme_config_extra->bootstrap_theme == 'bootswatch' || $theme_config_extra->bootstrap_theme == 'material' }
|
||||
$('.navmenu').css('background-color', $('.navbar-default').css('background-color'));
|
||||
{/if}
|
||||
});
|
||||
$('.navmenu').on('hidden.bs.offcanvas', function() {
|
||||
if ($('ul.navmenu-nav').contents().length > 0) {
|
||||
$($('ul.navmenu-nav').contents()).appendTo('ul.navbar-nav');
|
||||
$('ul.navmenu-nav').find('.dropdown-menu-right').removeClass('dropdown-menu-right');
|
||||
$('ul.navmenu-nav').find('.dropdown-toggle').attr('aria-haspopup', '');
|
||||
}
|
||||
});
|
||||
{/footer_script}
|
||||
<div id="navmenu-contextual" class="navmenu navmenu-default navmenu-fixed-right offcanvas" role="navigation">
|
||||
<ul class="nav navmenu-nav"></ul>
|
||||
</div>
|
||||
<nav class="navbar navbar-default navbar-fixed-top navbar-contextual">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="offcanvas" data-target="#navmenu-contextual">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<div class="navbar-brand">{$SECTION_TITLE}{$LEVEL_SEPARATOR}<a href>{$current.TITLE}</a> <small>[{$PHOTO}]</small></div>
|
||||
{if $theme_config_extra->bootstrap_theme == 'bootswatch' || $theme_config_extra->bootstrap_theme == 'material'}
|
||||
{footer_script require='jquery'}{strip}
|
||||
$(document).ready(function() {
|
||||
$('.navbar-default .navbar-brand a').css('color', $('.navbar-default .navbar-brand').css('color'));
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
{/if}
|
||||
</div>
|
||||
<div class="navbar-right navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
{if isset($current.unique_derivatives) && count($current.unique_derivatives)>1}
|
||||
{footer_script require='jquery'}{strip}
|
||||
function changeImgSrc(url,typeSave,typeMap) {
|
||||
var theImg = document.getElementById("theMainImage");
|
||||
if (theImg) {
|
||||
theImg.removeAttribute("width");
|
||||
theImg.removeAttribute("height");
|
||||
theImg.src = url;
|
||||
theImg.useMap = "#map"+typeMap;
|
||||
}
|
||||
jQuery('.derivative-li').removeClass('active');
|
||||
jQuery('#derivative'+typeMap).addClass('active');
|
||||
document.cookie = 'picture_deriv='+typeSave+';path={$COOKIE_PATH}';
|
||||
}
|
||||
{/strip}{/footer_script}
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" title="{'Photo sizes'|@translate}">
|
||||
<i class="fa fa-picture-o" aria-hidden="true"></i><span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
{foreach from=$current.unique_derivatives item=derivative key=derivative_type}
|
||||
<li id="derivative{$derivative->get_type()}" class="derivative-li{if $derivative->get_type() == $current.selected_derivative->get_type()} active{/if}">
|
||||
<a href="javascript:changeImgSrc('{$derivative->get_url()|@escape:javascript}','{$derivative_type}','{$derivative->get_type()}')" rel="nofollow">
|
||||
{$derivative->get_type()|@translate}<span class="derivativeSizeDetails"> ({$derivative->get_size_hr()})</span>
|
||||
</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
{if isset($U_ORIGINAL)}
|
||||
{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
|
||||
<li>
|
||||
<a href="javascript:phpWGOpenWindow('{$U_ORIGINAL}','xxx','scrollbars=yes,toolbar=no,status=no,resizable=yes')" rel="nofollow">{'Original'|@translate}</a>
|
||||
</li>
|
||||
{/if}
|
||||
</ul>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_SLIDESHOW_START)}
|
||||
<li>
|
||||
<a href="{if $theme_config_extra->photoswipe}javascript:;{else}{$U_SLIDESHOW_START}{/if}" title="{'slideshow'|@translate}" id="startSlideshow" rel="nofollow">
|
||||
<i class="fa fa-play" aria-hidden="true"></i>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_METADATA)}
|
||||
<li>
|
||||
<a href="{$U_METADATA}" title="{'Show file metadata'|@translate}" rel="nofollow">
|
||||
<i class="fa fa-camera-retro" aria-hidden="true"></i>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($current.U_DOWNLOAD)}
|
||||
{if empty($current.formats)}
|
||||
<li>
|
||||
<a id="downloadSwitchLink" href="{$current.U_DOWNLOAD}" title="{'Download this file'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
|
||||
<i class="fa fa-download" aria-hidden="true"></i>
|
||||
</a>
|
||||
{else}
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true">
|
||||
<i class="fa fa-download" aria-hidden="true"></i><span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-right" role="menu">
|
||||
{foreach from=$current.formats item=format}
|
||||
<li><a href="{$format.download_url}" rel="nofollow">{$format.label}<span class="downloadformatDetails"> ({$format.filesize})</span></a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if} {* has formats *}
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($favorite)}
|
||||
<li>
|
||||
<a href="{$favorite.U_FAVORITE}" title="{if $favorite.IS_FAVORITE}{'delete this photo from your favorites'|@translate}{else}{'add this photo to your favorites'|@translate}{/if}" rel="nofollow">
|
||||
<i class="fa fa-heart{if !$favorite.IS_FAVORITE}-o{/if}"></i>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_SET_AS_REPRESENTATIVE)}
|
||||
<li>
|
||||
<a id="cmdSetRepresentative" href="{$U_SET_AS_REPRESENTATIVE}" title="{'set as album representative'|@translate}" rel="nofollow">
|
||||
<i class="fa fa-link" aria-hidden="true"></i>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_PHOTO_ADMIN)}
|
||||
<li>
|
||||
<a id="cmdEditPhoto" href="{$U_PHOTO_ADMIN}" title="{'Modify information'|@translate}" rel="nofollow">
|
||||
<i class="fa fa-pencil" aria-hidden="true"></i>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($U_CADDIE)}
|
||||
{footer_script}{strip}
|
||||
function addToCadie(aElement, rootUrl, id) {
|
||||
if (aElement.disabled) return;
|
||||
aElement.disabled=true;
|
||||
var y = new PwgWS(rootUrl);
|
||||
y.callService("pwg.caddie.add", {literal}{image_id: id}{/literal}, {
|
||||
onFailure: function(num, text) { alert(num + " " + text); document.location=aElement.href; },
|
||||
onSuccess: function(result) { aElement.disabled = false; }
|
||||
});
|
||||
}
|
||||
{/strip}{/footer_script}
|
||||
<li>
|
||||
<a href="{$U_CADDIE}" onclick="addToCadie(this, '{$ROOT_URL}', {$current.id}); return false;" title="{'Add to caddie'|@translate}" rel="nofollow">
|
||||
<i class="fa fa-shopping-basket" aria-hidden="true"></i>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if isset($PLUGIN_PICTURE_BUTTONS)}{foreach from=$PLUGIN_PICTURE_BUTTONS item=button}{$button}{/foreach}{/if}
|
||||
{if isset($PLUGIN_PICTURE_ACTIONS)}{$PLUGIN_PICTURE_ACTIONS}{/if}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@@ -0,0 +1,124 @@
|
||||
<div id="navigationButtons">
|
||||
{if $DISPLAY_NAV_BUTTONS or isset($slideshow)}
|
||||
{if isset($slideshow)}
|
||||
{if isset($slideshow.U_INC_PERIOD)}
|
||||
<a href="{$slideshow.U_INC_PERIOD}" title="{'Reduce diaporama speed'|@translate}" class="pwg-state-default pwg-button">
|
||||
<span class="glyphicon glyphicon-minus"></span><span class="glyphicon-text">{'Reduce diaporama speed'|@translate}</span>
|
||||
</a>
|
||||
{else}
|
||||
<span class="glyphicon glyphicon-minus"></span><span class="glyphicon-text">{'Reduce diaporama speed'|@translate}</span>
|
||||
{/if}
|
||||
{if isset($slideshow.U_DEC_PERIOD)}
|
||||
<a href="{$slideshow.U_DEC_PERIOD}" title="{'Accelerate diaporama speed'|@translate}" class="pwg-state-default pwg-button">
|
||||
<span class="glyphicon glyphicon-plus"></span><span class="glyphicon-text">{'Accelerate diaporama speed'|@translate}</span>
|
||||
</a>
|
||||
{else}
|
||||
<span class="glyphicon glyphicon-plus"></span><span class="glyphicon-text">{'Accelerate diaporama speed'|@translate}</span>
|
||||
{/if}
|
||||
{/if}
|
||||
{if isset($slideshow.U_START_REPEAT)}
|
||||
<a href="{$slideshow.U_START_REPEAT}" title="{'Repeat the slideshow'|@translate}" class="pwg-state-default pwg-button">
|
||||
<span class="glyphicon glyphicon-repeat"></span><span class="glyphicon-text">{'Repeat the slideshow'|@translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
{* TODO need an icon for this
|
||||
{if isset($slideshow.U_STOP_REPEAT)}
|
||||
<a href="{$slideshow.U_STOP_REPEAT}" title="{'Not repeat the slideshow'|@translate}" class="pwg-state-default pwg-button">
|
||||
<span class="pwg-icon pwg-icon-repeat-stop"></span><span class="glyphicon-text">{'Not repeat the slideshow'|@translate}</span>
|
||||
</a>
|
||||
{/if} *}
|
||||
{*<!--{strip}{if isset($first)}
|
||||
<a href="{$first.U_IMG}" title="{'First'|@translate} : {$first.TITLE}" class="pwg-state-default pwg-button">
|
||||
<span class="pwg-icon pwg-icon-arrowstop-w"> </span><span class="pwg-button-text">{'First'|@translate}</span>
|
||||
</a>
|
||||
{else}
|
||||
<span class="pwg-state-disabled pwg-button">
|
||||
<span class="pwg-icon pwg-icon-arrowstop-w"> </span><span class="pwg-button-text">{'First'|@translate}</span>
|
||||
</span>
|
||||
{/if}{/strip}-->*}
|
||||
{strip}{if isset($previous)}
|
||||
<a href="{$previous.U_IMG}" title="{'Previous'|@translate} : {$previous.TITLE_ESC}" id="navPrevPicture" rel="prerender">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span><span class="glyphicon-text">{'Previous'|@translate}</span>
|
||||
</a>
|
||||
{else}
|
||||
<span class="glyphicon glyphicon-chevron-left"></span><span class="glyphicon-text">{'Previous'|@translate}</span>
|
||||
{/if}{/strip}
|
||||
{strip}{if isset($U_UP) and !isset($slideshow)}
|
||||
<a href="{$U_UP}" title="{'Thumbnails'|@translate}">
|
||||
<span class="glyphicon glyphicon-chevron-up"></span><span class="glyphicon-text">{'Thumbnails'|@translate}</span>
|
||||
</a>
|
||||
{/if}{/strip}
|
||||
{strip}{if !isset($slideshow) && $theme_config_extra->photoswipe}
|
||||
<a href="javascript:;" title="{'Fullscreen'|@translate}" id="startPhotoSwipe">
|
||||
<span class="glyphicon glyphicon-resize-full"></span><span class="glyphicon-text">{'Fullscreen'|@translate}</span>
|
||||
</a>
|
||||
{/if}{/strip}
|
||||
{if isset($slideshow.U_START_PLAY)}
|
||||
<a href="{$slideshow.U_START_PLAY}" title="{'Play of slideshow'|@translate}">
|
||||
<span class="glyphicon glyphicon-play"></span><span class="glyphicon-text">{'Play of slideshow'|@translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
{if isset($slideshow.U_STOP_PLAY)}
|
||||
<a href="{$slideshow.U_STOP_PLAY}" title="{'Pause of slideshow'|@translate}">
|
||||
<span class="glyphicon glyphicon-pause"></span><span class="glyphicon-text">{'Pause of slideshow'|@translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
{if isset($U_SLIDESHOW_STOP) }
|
||||
<a href="{$U_SLIDESHOW_STOP}" title="{'stop the slideshow'|@translate}">
|
||||
<span class="glyphicon glyphicon-stop"></span><span class="glyphicon-text">{'stop the slideshow'|@translate}</span>
|
||||
</a>
|
||||
{/if}
|
||||
{strip}{if isset($next)}
|
||||
<a href="{$next.U_IMG}" title="{'Next'|@translate} : {$next.TITLE_ESC}" id="navNextPicture" rel="prerender">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span><span class="glyphicon-text">{'Next'|@translate}</span>
|
||||
</a>
|
||||
{else}
|
||||
<span class="glyphicon glyphicon-chevron-right"></span><span class="glyphicon-text">{'Next'|@translate}</span>
|
||||
{/if}{/strip}
|
||||
{*<!--{strip}{if isset($last)}
|
||||
<a href="{$last.U_IMG}" title="{'Last'|@translate} : {$last.TITLE}" class="pwg-state-default pwg-button pwg-button-icon-right">
|
||||
<span class="pwg-icon pwg-icon-arrowstop-e"></span><span class="pwg-button-text">{'Last'|@translate}</span>
|
||||
</a>
|
||||
{else}
|
||||
<span class="pwg-state-disabled pwg-button pwg-button-icon-right">
|
||||
<span class="pwg-icon pwg-icon-arrowstop-e"> </span><span class="pwg-button-text">{'Last'|@translate}</span>
|
||||
</span>
|
||||
{/if}{/strip}-->*}
|
||||
{/if}
|
||||
</div>
|
||||
{strip}
|
||||
{footer_script}
|
||||
document.onkeydown = function(e){ldelim}
|
||||
e=e||window.event;
|
||||
if (e.altKey) return true;
|
||||
var target=e.target||e.srcElement;
|
||||
if (target && target.type) return true;{* an input editable element *}
|
||||
var keyCode=e.keyCode||e.which, docElem=document.documentElement, url;
|
||||
switch(keyCode){ldelim}
|
||||
{if isset($next)}
|
||||
case 63235: case 39: if ((e.ctrlKey || docElem.scrollLeft==docElem.scrollWidth-docElem.clientWidth) && $('.pswp--visible').length === 0)url="{$next.U_IMG}"; break;
|
||||
{/if}
|
||||
{if isset($previous)}
|
||||
case 63234: case 37: if ((e.ctrlKey || docElem.scrollLeft==0) && $('.pswp--visible').length === 0)url="{$previous.U_IMG}"; break;
|
||||
{/if}
|
||||
{if isset($first)}
|
||||
{* Home *}case 36: if (e.ctrlKey)url="{$first.U_IMG}"; break;
|
||||
{/if}
|
||||
{if isset($last)}
|
||||
{* End *}case 35: if (e.ctrlKey)url="{$last.U_IMG}"; break;
|
||||
{/if}
|
||||
{if isset($U_UP) and !isset($slideshow)}
|
||||
{* Up *}case 38: if (e.ctrlKey)url="{$U_UP}"; break;
|
||||
{/if}
|
||||
{if isset($slideshow.U_START_PLAY)}
|
||||
{* Pause *}case 32: url="{$slideshow.U_START_PLAY}"; break;
|
||||
{/if}
|
||||
{if isset($slideshow.U_STOP_PLAY)}
|
||||
{* Play *}case 32: url="{$slideshow.U_STOP_PLAY}"; break;
|
||||
{/if}
|
||||
}
|
||||
if (url) {ldelim}window.location=url.replace("&","&"); return false;}
|
||||
return true;
|
||||
}
|
||||
{/footer_script}
|
||||
{/strip}
|
||||
@@ -0,0 +1,116 @@
|
||||
<div class="container">
|
||||
<form method="post" name="profile" action="{$F_ACTION}" id="profile" class="form-horizontal">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'Registration'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<fieldset>
|
||||
{if isset($loaded_plugins['user_custom_fields'])}
|
||||
{$UCF_PROFILE_ADD}
|
||||
{else}
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">{'Username'|@translate}</label>
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static">{$USERNAME}</p>
|
||||
</div>
|
||||
</div>
|
||||
{if not $SPECIAL_USER} {* can modify password + email*}
|
||||
<div class="form-group">
|
||||
<label for="mail_address" class="col-sm-2 control-label">{'Email address'|@translate}</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" name="mail_address" id="mail_address" class="form-control" value="{$EMAIL}" placeholder="{'Email address'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password" class="col-sm-2 control-label">{'Password'|@translate}</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="password" name="password" id="password" class="form-control" value="" placeholder="{'Password'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="use_new_pwd" class="col-sm-2 control-label">{'New password'|@translate}</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="password" name="use_new_pwd" id="use_new_pwd" class="form-control" value="" placeholder="{'New password'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="passwordConf" class="col-sm-2 control-label">{'Confirm Password'|@translate}</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="password" name="passwordConf" id="passwordConf" class="form-control" value="" placeholder="{'Confirm Password'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</fieldset>
|
||||
{if !$ALLOW_USER_CUSTOMIZATION}
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<input class="btn btn-default" type="submit" name="validate" value="{'Submit'|@translate}">
|
||||
<input class="btn btn-default" type="reset" name="reset" value="{'Reset'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{if $ALLOW_USER_CUSTOMIZATION}
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'Preferences'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label for="nb_image_page" class="col-sm-2 control-label">{'Number of photos per page'|@translate}</label>
|
||||
<div class="col-sm-1">
|
||||
<input type="text" maxlength="3" name="nb_image_page" id="nb_image_page" class="form-control" value="{$NB_IMAGE_PAGE}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="theme" class="col-sm-2 control-label">{'Theme'|@translate}</label>
|
||||
<div class="col-sm-4 html-options">
|
||||
{html_options name=theme options=$template_options selected=$template_selection}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="language" class="col-sm-2 control-label">{'Language'|@translate}</label>
|
||||
<div class="col-sm-4 html-options">
|
||||
{html_options name=language options=$language_options selected=$language_selection}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="recent_period" class="col-sm-2 control-label">{'Recent period'|@translate}</label>
|
||||
<div class="col-sm-1">
|
||||
<input type="text" size="3" maxlength="2" name="recent_period" id="recent_period" class="form-control" value="{$RECENT_PERIOD}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="expand" class="col-sm-2 control-label">{'Expand all albums'|@translate}</label>
|
||||
<div class="col-sm-10 html-radios-inline radio">
|
||||
{html_radios name='expand' options=$radio_options selected=$EXPAND}
|
||||
</div>
|
||||
</div>
|
||||
{if $ACTIVATE_COMMENTS}
|
||||
<div class="form-group">
|
||||
<label for="show_nb_comments" class="col-sm-2 control-label">{'Show number of comments'|@translate}</label>
|
||||
<div class="col-sm-10 html-radios-inline radio">
|
||||
{html_radios name='show_nb_comments' options=$radio_options selected=$NB_COMMENTS}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label for="show_nb_hits" class="col-sm-2 control-label">{'Show number of hits'|@translate}</label>
|
||||
<div class="col-sm-10 html-radios-inline radio">
|
||||
{html_radios name='show_nb_hits' options=$radio_options selected=$NB_HITS}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input class="btn btn-default btn-primary" type="submit" name="validate" value="{'Submit'|@translate}">
|
||||
<input class="btn btn-default" type="reset" name="reset" value="{'Reset'|@translate}">
|
||||
<input class="btn btn-default" type="submit" name="reset_to_default" value="{'Reset to default values'|@translate}">
|
||||
{/if}
|
||||
<input type="hidden" name="redirect" value="{$REDIRECT}">
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,75 @@
|
||||
<nav class="navbar navbar-default" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<div class="navbar-brand"><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}<a href>{'Registration'|@translate}</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{include file='infos_errors.tpl'}
|
||||
|
||||
<div class="container">
|
||||
<form method="post" action="{$F_ACTION}" class="form-horizontal" name="register_form">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'Enter your personnal informations'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<label for="login" class="col-sm-2 control-label">{'Username'|@translate} *</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" name="login" id="login" value="{$F_LOGIN}" class="form-control" placeholder="{'Username'|@translate}" required="required"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password" class="col-sm-2 control-label">{'Password'|@translate} *</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="password" name="password" id="password" class="form-control" placeholder="{'Password'|@translate}" required="required"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password_conf" class="col-sm-2 control-label">{'Confirm Password'|@translate} *</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="password" name="password_conf" id="password_conf" class="form-control" placeholder="{'Confirm Password'|@translate}" required="required"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="mail_address" class="col-sm-2 control-label">{'Email address'|@translate}{if $obligatory_user_mail_address} *{/if}</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="email" name="mail_address" id="mail_address" value="{$F_EMAIL}" class="form-control" placeholder="{'Email address'|@translate}"{if $obligatory_user_mail_address} required="required"{/if}>
|
||||
{if not $obligatory_user_mail_address}
|
||||
({'useful when password forgotten'|@translate})
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="send_password_by_mail" value="1" checked="checked"> {'Send my connection settings by email'|@translate}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<input type="hidden" name="key" value="{$F_KEY}" >
|
||||
<input type="submit" name="submit" value="{'Register'|@translate}" class="btn btn-default btn-primary">
|
||||
<input type="reset" value="{'Reset'|@translate}" class="btn btn-default">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById('login').focus();
|
||||
//--></script>
|
||||
189
zoesch.de/galerie/themes/bootstrap_darkroom/template/search.tpl
Normal file
189
zoesch.de/galerie/themes/bootstrap_darkroom/template/search.tpl
Normal file
@@ -0,0 +1,189 @@
|
||||
{combine_css path="themes/bootstrapdefault/selectize.js/dist/css/selectize.bootstrap2.css"}
|
||||
{combine_script id='jquery.selectize' load='footer' require='jquery' path="themes/bootstrapdefault/selectize.js/dist/js/standalone/selectize.min.js"}
|
||||
{footer_script require='jquery'}
|
||||
jQuery(document).ready(function() {
|
||||
jQuery("#authors, #tags, #categories").each(function() {
|
||||
jQuery(this).selectize({
|
||||
plugins: ['remove_button'],
|
||||
maxOptions:jQuery(this).find("option").length
|
||||
});
|
||||
})
|
||||
});
|
||||
{/footer_script}
|
||||
|
||||
<nav class="navbar navbar-default" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<div class="navbar-brand"><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}<a href>{'Search'|@translate}</a></div>
|
||||
</div>
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
<li>
|
||||
<a href="{$U_HELP}" onclick="bd_popup(this.href); return false;" title="{'Help'|@translate}">
|
||||
<span class="glyphicon glyphicon-question-sign"></span><span class="glyphicon-text">{'Help'|@translate}</span>
|
||||
</a>
|
||||
</li>
|
||||
{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{include file='infos_errors.tpl'}
|
||||
|
||||
<div class="container">
|
||||
<form method="post" name="search" action="{$F_SEARCH_ACTION}">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'Search for words'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-7 col-md-9 col-sm-12 col-xs-12">
|
||||
<input type="text" id="search_allwords" name="search_allwords" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group radio">
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="mode" value="AND" checked="checked">{'Search for all terms'|@translate}
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="mode" value="OR">{'Search for any term'|@translate}
|
||||
</label>
|
||||
</div>
|
||||
<label>{'Apply on properties'|translate}</label>
|
||||
<div class="form-group checkbox">
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox" name="fields[]" value="name" checked="checked"> {'Photo title'|translate}
|
||||
</label>
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox" name="fields[]" value="comment" checked="checked"> {'Photo description'|translate}
|
||||
</label>
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox" name="fields[]" value="file" checked="checked"> {'File name'|translate}
|
||||
</label>
|
||||
{if isset($TAGS)}
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox" name="search_in_tags" value="tags"> {'Tags'|translate}
|
||||
</label>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{if count($AUTHORS)>=1}
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'Search for Author'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-7 col-md-9 col-sm-12 col-xs-12">
|
||||
<select id="authors" placeholder="{'Type in a search term'|translate}" name="authors[]" multiple>
|
||||
{foreach from=$AUTHORS item=author}
|
||||
<option value="{$author.author|strip_tags:false|escape:html}">{$author.author|strip_tags:false} ({$author.counter|translate_dec:'%d photo':'%d photos'})</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($TAGS)}
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'Search tags'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-7 col-md-9 col-sm-12 col-xs-12">
|
||||
<select id="tags" placeholder="{'Type in a search term'|translate}" name="tags[]" multiple>
|
||||
{foreach from=$TAGS item=tag}
|
||||
<option value="{$tag.id}">{$tag.name} ({$tag.counter|translate_dec:'%d photo':'%d photos'})</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group radio">
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="tag_mode" value="AND" checked="checked"> {'All tags'|@translate}
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="tag_mode" value="OR"> {'Any tag'|@translate}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'Search by date'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<label>{'Kind of date'|@translate}</label>
|
||||
<div class="form-group radio">
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="date_type" value="date_creation" checked="checked"> {'Creation date'|@translate}
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="date_type" value="date_available"> {'Post date'|@translate}
|
||||
</label>
|
||||
</div>
|
||||
<label>{'Date'|@translate}</label>
|
||||
<div class="form-group form-inline">
|
||||
<select id="start_day" name="start_day" class="form-control">
|
||||
<option value="0">--</option>
|
||||
{section name=day start=1 loop=32}
|
||||
<option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$START_DAY_SELECTED}selected="selected"{/if}>{$smarty.section.day.index}</option>
|
||||
{/section}
|
||||
</select>
|
||||
<select id="start_month" name="start_month" class="form-control">
|
||||
{html_options options=$month_list selected=$START_MONTH_SELECTED}
|
||||
</select>
|
||||
<input id="start_year" name="start_year" type="text" size="4" maxlength="4" class="form-control">
|
||||
<input id="start_linked_date" name="start_linked_date" type="hidden" size="10" disabled="disabled">
|
||||
<a class="date_today" href="#" onClick="document.getElementById('start_day').value={$smarty.now|date_format:"%d"};document.getElementById('start_month').value={$smarty.now|date_format:"%m"};document.getElementById('start_year').value={$smarty.now|date_format:"%Y"};return false;">{'today'|@translate}</a>
|
||||
</div>
|
||||
<label>{'End-Date'|@translate}</label>
|
||||
<div class="form-group form-inline">
|
||||
<select id="end_day" name="end_day" class="form-control">
|
||||
<option value="0">--</option>
|
||||
{section name=day start=1 loop=32}
|
||||
<option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$END_DAY_SELECTED}selected="selected"{/if}>{$smarty.section.day.index}</option>
|
||||
{/section}
|
||||
</select>
|
||||
<select id="end_month" name="end_month" class="form-control">
|
||||
{html_options options=$month_list selected=$END_MONTH_SELECTED}
|
||||
</select>
|
||||
<input id="end_year" name="end_year" type="text" size="4" maxlength="4" class="form-control">
|
||||
<input id="end_linked_date" name="end_linked_date" type="hidden" size="10" disabled="disabled">
|
||||
<a class="date_today" href="#" onClick="document.getElementById('end_day').value={$smarty.now|date_format:"%d"};document.getElementById('end_month').value={$smarty.now|date_format:"%m"};document.getElementById('end_year').value={$smarty.now|date_format:"%Y"};return false;">{'today'|@translate}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'Search in albums'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-7 col-md-9 col-sm-12 col-xs-12">
|
||||
<select id="categories" name="cat[]" multiple>
|
||||
{html_options options=$category_options selected=$category_options_selected}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group checkbox">
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox" name="subcats-included" value="1" checked="checked"> {'Search in sub-albums'|@translate}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="submit" name="submit" value="{'Submit'|@translate}" class="btn btn-default btn-primary">
|
||||
<input type="reset" value="{'Reset'|@translate}" class="btn btn-default">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById('search_allwords').focus();
|
||||
//--></script>
|
||||
@@ -0,0 +1,32 @@
|
||||
{foreach from=$blocks item=block key=key}
|
||||
<div id="stuffs_block_{$block.ID}" class="container pwgstuffs-container">
|
||||
{if isset($block.TITLE)}
|
||||
<nav class="navbar navbar-default pwgstuffs-navbar">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
{if isset($block.TITLE_URL)}
|
||||
<a class="navbar-brand" href="{$block.TITLE_URL}">{$block.TITLE}</a>
|
||||
{else}
|
||||
<div class="navbar-brand">{$block.TITLE}</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="navbar-right">
|
||||
{if !empty($block.U_EDIT)}
|
||||
<ul class="nav navbar-nav">
|
||||
<li>
|
||||
<a href="{$block.U_EDIT}" title="{'edit'|translate}">
|
||||
<span class="glyphicon glyphicon-pencil"></span><span class="glyphicon-text">{'edit'|@translate}</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
{/if}
|
||||
|
||||
<div class="row">
|
||||
{include file=$block.TEMPLATE}
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
@@ -0,0 +1,59 @@
|
||||
{include file='infos_errors.tpl'}
|
||||
<div class="col-lg-6 col-centered">
|
||||
<form action="{$block.F_LOGIN_ACTION}" method="post" name="login_form" class="form-horizontal">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
{'Login'|@translate}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label for="username" class="col-sm-2 control-label">{'Username'|@translate}</label>
|
||||
<div class="col-sm-4">
|
||||
<input tabindex="1" class="form-control" type="text" name="username" id="username" maxlength="40" placeholder="{'Username'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password" class="col-sm-2 control-label">{'Password'|@translate}</label>
|
||||
<div class="col-sm-4">
|
||||
<input tabindex="2" class="form-control" type="password" name="password" id="password" maxlength="25" placeholder="{'Password'|@translate}">
|
||||
</div>
|
||||
</div>
|
||||
{if $authorize_remembering }
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input tabindex="3" type="checkbox" name="remember_me" id="remember_me" value="1"> {'Auto login'|@translate}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<input type="hidden" name="redirect" value="{$smarty.server.REQUEST_URI|@urlencode}">
|
||||
<input tabindex="4" type="submit" name="login" value="{'Submit'|@translate}" class="btn btn-default btn-primary">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
{if isset($block.U_REGISTER)}
|
||||
<a href="{$block.U_REGISTER}" title="{'Register'|@translate}" class="pwg-state-default pwg-button">
|
||||
<span class="glyphicon glyphicon-user"></span> {'Register'|@translate}
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
{if isset($block.U_LOST_PASSWORD)}
|
||||
<a href="{$block.U_LOST_PASSWORD}" title="{'Forgot your password?'|@translate}" class="pwg-state-default pwg-button">
|
||||
<span class="glyphicon glyphicon-lock"></span> {'Forgot your password?'|@translate}
|
||||
</a>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById('username').focus();
|
||||
//--></script>
|
||||
@@ -0,0 +1,89 @@
|
||||
<nav class="navbar navbar-default" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<div class="navbar-brand"><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}<a href>{'Tags'|@translate}</a></div>
|
||||
</div>
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
{if $display_mode == 'letters'}
|
||||
<li>
|
||||
<a href="{$U_CLOUD}" title="{'show tag cloud'|@translate}">
|
||||
<span class="glyphicon glyphicon-cloud"></span><span class="glyphicon-text">{'Cloud'|@translate}</span>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if $display_mode == 'cloud'}
|
||||
<li>
|
||||
<a href="{$U_LETTERS}" title="{'group by letters'|@translate}" rel="nofollow">
|
||||
<span class="glyphicon glyphicon-sort-by-alphabet"></span><span class="glyphicon-text">{'Letters'|@translate}</span>
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{include file='infos_errors.tpl'}
|
||||
|
||||
{if $display_mode == 'cloud' and isset($tags)}
|
||||
<div class="container">
|
||||
{if $theme_config->tag_cloud_type == 'basic'}
|
||||
<div id="tagCloud">
|
||||
{foreach from=$tags item=tag}
|
||||
<span><a href="{$tag.URL}" class="tagLevel{$tag.level}" title="{$tag.counter|@translate_dec:'%d photo':'%d photos'}">{$tag.name}</a></span>
|
||||
{/foreach}
|
||||
</div>
|
||||
{else}
|
||||
{combine_script id='jquery.awesomeCloud' load='footer' path="themes/bootstrapdefault/js/jquery.awesomeCloud.js"}
|
||||
{footer_script require='jquery.awesomeCloud'}{strip}
|
||||
$(document).ready(function(){
|
||||
$("#tagCloudCanvas").awesomeCloud({
|
||||
"size" : {
|
||||
"grid": 12,
|
||||
"factor": 0,
|
||||
"normalize": false
|
||||
},
|
||||
"options": {
|
||||
"color": "gradient",
|
||||
"rotationRatio": 0.2,
|
||||
},
|
||||
"color": {
|
||||
"start": $('#tagCloudGradientStart').css('color'),
|
||||
"end": $('#tagCloudGradientEnd').css('color')
|
||||
},
|
||||
"font": "'Helvetica Neue',Helvetica,Arial,sans-serif",
|
||||
"shape": "circle"
|
||||
});
|
||||
});
|
||||
{/strip}{/footer_script}
|
||||
<div id="tagCloudCanvas">
|
||||
{foreach from=$tags item=tag}
|
||||
<span data-weight="{$tag.counter}"><a href="{$tag.URL}">{$tag.name}</a></span>
|
||||
{/foreach}
|
||||
</div>
|
||||
<div id="tagCloudGradientStart"></div>
|
||||
<div id="tagCloudGradientEnd"></div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $display_mode == 'letters' and isset($letters)}
|
||||
<div class="container">
|
||||
<div id="tagLetters">
|
||||
<div class="menu row">
|
||||
{foreach from=$letters item=letter}
|
||||
<div class="menu-category">
|
||||
<div class="menu-category-name list-group-item active">{$letter.TITLE}</div>
|
||||
{foreach from=$letter.tags item=tag}
|
||||
<a href="{$tag.URL}" class="menu-item list-group-item" title="{$tag.name}">{$tag.name}<span class="badge">{$tag.counter|@translate_dec:'%d photo':'%d photos'}</span></a>
|
||||
{/foreach}
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
</div> <!-- content -->
|
||||
@@ -0,0 +1,71 @@
|
||||
{if !empty($thumbnails)}
|
||||
{footer_script}
|
||||
var error_icon = "{$ROOT_URL}{$themeconf.icon_dir}/errors_small.png", max_requests = {$maxRequests};
|
||||
{/footer_script}
|
||||
{if $derivative_params->type == "thumb"}
|
||||
{if get_device() == 'mobile'}
|
||||
{assign var=width value=520}
|
||||
{assign var=height value=360}
|
||||
{assign var=rwidth value=260}
|
||||
{assign var=rheight value=180}
|
||||
{else}
|
||||
{assign var=width value=260}
|
||||
{assign var=height value=180}
|
||||
{assign var=rwidth value=260}
|
||||
{assign var=rheight value=180}
|
||||
{/if}
|
||||
{else}
|
||||
{assign var=width value=$derivative_params->sizing->ideal_size[0]}
|
||||
{assign var=height value=$derivative_params->sizing->ideal_size[1]}
|
||||
{assign var=rwidth value=$width}
|
||||
{assign var=rheight value=$height}
|
||||
{/if}
|
||||
{define_derivative name='derivative_params' width=$width height=$height crop=true}
|
||||
<style>
|
||||
.placeholder-{$rwidth} {
|
||||
width: {$rwidth}px;
|
||||
height: {$rheight}px;
|
||||
background: url({$ROOT_URL}{$themeconf.icon_dir}/img_small.png) no-repeat center;
|
||||
}
|
||||
</style>
|
||||
{assign var=idx value=0+$START_ID}
|
||||
{foreach from=$thumbnails item=thumbnail}
|
||||
{assign var=derivative value=$pwg->derivative($derivative_params, $thumbnail.src_image)}
|
||||
{if !$derivative->is_cached()}
|
||||
{combine_script id='jquery.ajaxmanager' path='themes/default/js/plugins/jquery.ajaxmanager.js' load='footer'}
|
||||
{combine_script id='thumbnails.loader' path='themes/default/js/thumbnails.loader.js' require='jquery.ajaxmanager' load='footer'}
|
||||
{/if}
|
||||
{include file="grid_classes.tpl" width=$width height=$height}
|
||||
<div class="col-outer {if $smarty.cookies.view == 'list'}col-lg-12 col-md-12 col-sm-12 col-xs-12{else}{$col_class}{/if}" data-grid-classes="{$col_class}">
|
||||
<div class="col-inner">
|
||||
<a class="col-thumbnail" href="{$thumbnail.URL}" data-index="{$idx}">
|
||||
<div class="placeholder-{$width}">
|
||||
<img {if $derivative->is_cached()}src="{$derivative->get_url()}"{else}src="{$ROOT_URL}themes/bootstrapdefault/img/transparent.png" data-src="{$derivative->get_url()}"{/if} alt="{$thumbnail.TN_ALT}" title="{$thumbnail.TN_TITLE}">
|
||||
</div>
|
||||
</a>
|
||||
{assign var=idx value=$idx+1}
|
||||
{if $theme_config_extra->thumbnail_caption && $SHOW_THUMBNAIL_CAPTION }
|
||||
<div class="caption">
|
||||
<h4 class="title">
|
||||
<a href="{$thumbnail.URL}" class="ellipsis{if !empty($thumbnail.icon_ts)} recent{/if}">{$thumbnail.NAME}</a>
|
||||
{if !empty($thumbnail.icon_ts)}
|
||||
<img title="{$thumbnail.icon_ts.TITLE}" src="{$ROOT_URL}{$themeconf.icon_dir}/recent.png" alt="(!)">
|
||||
{/if}
|
||||
</h4>
|
||||
{if isset($thumbnail.NB_COMMENTS)}
|
||||
<p class="{if 0==$thumbnail.NB_COMMENTS}zero {/if}nb-comments">
|
||||
{$pwg->l10n_dec('%d comment', '%d comments',$thumbnail.NB_COMMENTS)}
|
||||
</p>
|
||||
{/if}
|
||||
|
||||
{if isset($thumbnail.NB_HITS)}
|
||||
<p class="{if 0==$thumbnail.NB_HITS}zero {/if}nb-hits">
|
||||
{$pwg->l10n_dec('%d view', '%d views',$thumbnail.NB_HITS)}
|
||||
</p>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
{/if}
|
||||
Reference in New Issue
Block a user