First commit

This commit is contained in:
Nathan
2026-09-18 20:29:17 -06:00
commit 3b09abe571
2840 changed files with 467153 additions and 0 deletions
@@ -0,0 +1,24 @@
{if isset($MENUBAR)}{$MENUBAR}{/if}
<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
<div class="titrePage">
<ul class="categoryActions">
</ul>
<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'About'|@translate}</h2>
</div>
{include file='infos_errors.tpl'}
<div id="piwigoAbout">
{$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>
@@ -0,0 +1,81 @@
{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}
<ul class="commentsList">
{foreach from=$comments item=comment name=comment_loop}
<li class="commentElement {if $smarty.foreach.comment_loop.index is odd}odd{else}even{/if}">
{if isset($comment.src_image)}
{if isset($comment_derivative_params)}
{assign var=derivative value=$pwg->derivative($comment_derivative_params, $comment.src_image)}
{else}
{assign var=derivative value=$pwg->derivative($derivative_params, $comment.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}
<div class="illustration">
<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>
</div>
{/if}
<div class="description">
{if isset($comment.U_DELETE) or isset($comment.U_VALIDATE) or isset($comment.U_EDIT)}
<div class="actions" style="float:right;font-size:90%">
{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}&nbsp;
</div>
{/if}
<span class="commentAuthor">{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}" id="editComment">
<p><label for="contenteditid">{'Edit a comment'|@translate} :</label></p>
<p><textarea name="content" id="contenteditid" rows="5" cols="80">{$comment.CONTENT|@escape}</textarea></p>
<p><label for="website_url">{'Website'|@translate} :</label></p>
<p><input type="text" name="website_url" id="website_url" value="{$comment.WEBSITE_URL}" size="40"></p>
<p><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}">
<input type="submit" value="{'Submit'|@translate}">
</p>
</form>
{else}
<blockquote><div>{$comment.CONTENT}</div></blockquote>
{/if}
</div>
</li>
{/foreach}
</ul>
@@ -0,0 +1,112 @@
{if isset($MENUBAR)}{$MENUBAR}{/if}
<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
<div class="titrePage">
<ul class="categoryActions">
</ul>
<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'User comments'|@translate}</h2>
</div>
{include file='infos_errors.tpl'}
<form class="filter" action="{$F_ACTION}" method="get">
<fieldset>
<legend><span class="icon-filter icon-green"></span>{'Filter'|@translate}</legend>
<ul>
<li>
<label>{'Keyword'|@translate}</label>
</li>
<li>
<input type="text" name="keyword" value="{$F_KEYWORD}">
</li>
</ul>
<ul>
<li>
<label>{'Author'|@translate}</label>
</li>
<li>
<input type="text" name="author" value="{$F_AUTHOR}">
</li>
</ul>
<ul>
<li>
<label>{'Album'|@translate}</label>
</li>
<li>
<select name="cat">
<option value="0">------------</option>
{html_options options=$categories selected=$categories_selected}
</select>
</li>
</ul>
<ul>
<li>
<label>{'Since'|@translate}</label>
</li>
<li>
<select name="since">
{html_options options=$since_options selected=$since_options_selected}
</select>
</li>
</ul>
</fieldset>
<fieldset>
<legend>{'Display'|@translate}</legend>
<ul>
<li>
<label>{'Sort by'|@translate}</label>
</li>
<li>
<select name="sort_by">
{html_options options=$sort_by_options selected=$sort_by_options_selected}
</select>
</li>
</ul>
<ul>
<li>
<label>{'Sort order'|@translate}</label>
</li>
<li>
<select name="sort_order">
{html_options options=$sort_order_options selected=$sort_order_options_selected}
</select>
</li>
</ul>
<ul>
<li>
<label>{'Number of items'|@translate}</label>
</li>
<li>
<select name="items_number">
{html_options options=$item_number_options selected=$item_number_options_selected}
</select>
</li>
</ul>
</fieldset>
<p><input type="submit" value="{'Filter and display'|@translate}"></p>
</form>
{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
{if isset($COMMENT_LIST)}
<div id="comments">
{$COMMENT_LIST}
</div>
{/if}
</div> <!-- content -->
@@ -0,0 +1,40 @@
<div id="copyright">
{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=elt}
{$elt}
{/foreach}
{/if}
</div>{* <!-- copyright --> *}
{if isset($debug.QUERIES_LIST)}
<div id="debug">
{$debug.QUERIES_LIST}
</div>
{/if}
</div>{* <!-- the_page --> *}
<!-- BEGIN get_combined -->
{get_combined_scripts load='footer'}
<!-- END get_combined -->
</body>
</html>
@@ -0,0 +1,91 @@
<!DOCTYPE html>
<html lang="{$lang_info.code}" dir="{$lang_info.direction}">
<head>
{if $SHOW_MOBILE_APP_BANNER}
<meta name="apple-itunes-app" content="app-id=472225196">
{/if}
<meta charset="{$CONTENT_ENCODING}">
<meta name="generator" content="Piwigo (aka PWG), see piwigo.org">
{if isset($meta_ref)}
{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="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}
{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}
{combine_script id="jquery" load="footer"}
{/strip}
<!-- BEGIN get_combined -->
{get_combined_css}
{get_combined_scripts load='header'}
<!-- END get_combined -->
<!--[if lt IE 7]>
<script type="text/javascript" src="{$ROOT_URL}themes/default/js/pngfix.js"></script>
<![endif]-->
{if not empty($head_elements)}
{foreach from=$head_elements item=elt}
{$elt}
{/foreach}
{/if}
</head>
<body id="{$BODY_ID}" class="{foreach from=$BODY_CLASSES item=class}{$class} {/foreach}" data-infos='{$BODY_DATA}'>
<div id="the_page">
{if not empty($header_msgs)}
<div class="header_msgs">
{foreach from=$header_msgs item=elt}
{$elt}<br>
{/foreach}
</div>
{/if}
<div id="theHeader">{$PAGE_BANNER|default:''}</div>
{if not empty($header_notes)}
<div class="header_notes">
{foreach from=$header_notes item=elt}
<p>{$elt}</p>
{/foreach}
</div>
{/if}
@@ -0,0 +1,306 @@
{combine_css path="themes/default/css/help/quick_search.css"}
<div class="quick-search-headers">
<span class="mcs-popin-title">{"Search using extended syntax"|translate}</span>
</div>
<div class="quick-search-infos">
<p>
{"The quick search engine allows you to use boolean operators to refine your search. By default, the search applies to all keywords. Searches are not case sensitive."|translate}
</p>
<p>{"Here is a list of actions you can perform:"|translate}</p>
</div>
<p class="quick-search-section">{"With keywords"|translate}</p>
<div class="quick-search-items{if $is_dark_mode} dark {/if}">
{* quoted keyword / phrase *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>{"Exact search"|translate}</p>
</div>
<div class="quick-search-item-example">
<p><b>"</b>george washington<b>"</b></p>
</div>
</div>
<div class="quick-search-item-tip">
<p>{"Use quotes to search for an exact keyword or phrase."|translate}</p>
</div>
</div>
{* OR inclusive *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>{"OR inclusive"|translate}</p>
</div>
<div class="quick-search-item-example">
<p>john <b>OR</b> bill</p>
</div>
</div>
<div class="quick-search-item-tip">
<p>{"Add an OR between words."|translate}</p>
</div>
</div>
{* exclude *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>{"Exclude"|translate}</p>
</div>
<div class="quick-search-item-example">
<p>george washington <b>NOT</b> bush</p>
<p><b>-</b>george</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Add a dash (-) or NOT before a word to exclude from search. Note that NOT acts as a filtering operator so you cannot have a search containing only NOT operators. You cannot combine OR with NOT (john OR NOT bill is not valid)"|translate}
</div>
</div>
{* OR inclusive *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>{"Grouping"|translate} ()</p>
</div>
<div class="quick-search-item-example">
<p><b>(</b>mother OR father<b>)</b> AND <b>(</b>daugther OR son<b>)</b></p>
</div>
</div>
</div>
</div>
<p class="quick-search-section" style="padding-top: 30px;">{"Others"|translate}</p>
<div class="quick-search-items{if $is_dark_mode} dark {/if}">
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>{"Supported numeric operators"|translate}</p>
</div>
<div class="quick-search-item-example">
<p><b>=100</b> {"equals 100"|translate}</p>
<p><b>&gt;100</b> {"greater than 100"|translate}</p>
<p><b>&lt;100</b> {"less than 100"|translate}</p>
<p><b>10..100</b> {"between 10 and 100 (inclusive)"|translate}</p>
<p><b>..100</b> {"up to 100 (inclusive)"|translate}</p>
<p><b>100..</b> {"from 100 and above"|translate}</p>
</div>
</div>
<div class="quick-search-item-tip">
{"These operators can be used with numeric fields such as"|translate} created:, posted:, width:, height:, size:, ratio:, hits:, score:, filesize:, id:.
</div>
</div>
{* tags: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>tag:</p>
<p>tags:</p>
</div>
<div class="quick-search-item-example">
<p><b>tag:</b>(john OR bill)</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Searches only in tag names without looking at photo titles or descriptions."|translate}
</div>
</div>
{* photos: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>photo:</p>
<p>photos:</p>
</div>
<div class="quick-search-item-example">
<p><b>photo:</b>Tiger</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Searches only for photos with the given words in title or description."|translate}
</div>
</div>
{* files: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>file:</p>
</div>
<div class="quick-search-item-example">
<p><b>file:</b>DSC_</p>
<p><b>file:</b>*.webp</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Searches by file name."|translate}
</div>
</div>
{* author: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>author:</p>
</div>
<div class="quick-search-item-example">
<p><b>author:</b>John</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Searches by author."|translate}
</div>
</div>
{* created: taken: shot: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>created:</p>
<p>taken:</p>
<p>shot:</p>
</div>
<div class="quick-search-item-example">
<p><b>taken:2003</b> {"photos taken in 2003"|translate}</p>
<p><b>taken:20035, taken:2003-5, taken:2003-05</b> {"photos from may 2003"|translate}</p>
<p><b>taken:2003..2008</b> {"photos from 2003 to 2008"|translate}</p>
<p><b>taken:>2008, taken:2008*, taken:2008..</b> {"photos after Jan 1st 2008"|translate}</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Searches photos by taken date."|translate}
</div>
</div>
{* posted: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>posted:</p>
</div>
<div class="quick-search-item-example">
<p><b>posted:2003</b> {"photos posted in 2003"|translate}</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Searches photos by posted date."|translate} {"Same principle as for"|translate} created:.
</div>
</div>
{* width: height: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>width:</p>
<p>height:</p>
</div>
<div class="quick-search-item-example">
<p><b>width:</b>>500 {"return photos wider than 500px"|translate}</p>
<p><b>height:</b>&lt;700 {"return photos less than 700px high"|translate}</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Searches photos with a given width or height."|translate}
</div>
</div>
{* size: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>size:</p>
</div>
<div class="quick-search-item-example">
<p><b>size:</b>5m {"returns photos of 5 megapixels"|translate}</p>
<p><b>size:</b>>12m {"returns photos of 12 megapixels or more"|translate}</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Searches photos by size in pixels."|translate}
</div>
</div>
{* ratio: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>ratio:</p>
</div>
<div class="quick-search-item-example">
<p><b>ratio:</b>3/4 OR <b>ratio:</b>4/3
{"finds photos from compact cameras in portrait or landscape modes"|translate}</p>
<p><b>ratio:</b>>16/9 {"finds panoramas"|translate}</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Searches photos by width/height ratio."|translate}
</div>
</div>
{* hits: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>hits:</p>
</div>
<div class="quick-search-item-example">
<p><b>hits:</b>>1000 {"return photos with at least 1,000 views"|translate}</p>
</div>
</div>
<div class="quick-search-item-tip">
<p>{"Searches for photos by number of views."|translate}</p>
</div>
</div>
{* score: rating:*}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>score:</p>
<p>rating:</p>
</div>
<div class="quick-search-item-example">
<p><b>score:</b>* {"will give you all photos with at least one note."|translate}</p>
<p><b>score:</b> {"will give you photos without notes."|translate}</p>
</div>
</div>
<div class="quick-search-item-tip">
<p>{"Searches photos by rating."|translate}</p>
</div>
</div>
{* filesize: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>filesize:</p>
</div>
<div class="quick-search-item-example">
<p><b>filesize:</b>1m..10m {"finds files between 1MB and 10MB."|translate}</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Searches photos by file size."|translate}
</div>
</div>
{* id: *}
<div class="quick-search-item">
<div class="quick-search-item-info">
<div class="quick-search-item-type">
<p>id:</p>
</div>
<div class="quick-search-item-example">
<p><b>id:</b>123..126
{"finds photo 123 to 126 (it may find between 0 and 4 photos, because photos can be deleted)"|translate}</p>
</div>
</div>
<div class="quick-search-item-tip">
{"Searches photos by its numeric identifier in Piwigo."|translate}
</div>
</div>
</div>
@@ -0,0 +1,66 @@
{if isset($MENUBAR)}{$MENUBAR}{/if}
<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
<div class="titrePage">
<ul class="categoryActions">
</ul>
<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Identification'|@translate}</h2>
</div>
{include file='infos_errors.tpl'}
<form action="{$F_LOGIN_ACTION}" method="post" name="login_form" class="properties">
<fieldset>
<legend>{'Connection settings'|@translate}</legend>
<ul>
<li>
<span class="property">
<label for="username">{'Username'|@translate}</label>
</span>
<input tabindex="1" class="login" type="text" name="username" id="username" size="25">
</li>
<li>
<span class="property">
<label for="password">{'Password'|@translate}</label>
</span>
<input tabindex="2" class="login" type="password" name="password" id="password" size="25">
</li>
{if $authorize_remembering }
<li>
<span class="property">
<label for="remember_me">{'Auto login'|@translate}</label>
</span>
<input tabindex="3" type="checkbox" name="remember_me" id="remember_me" value="1">
</li>
{/if}
</ul>
</fieldset>
<p>
<input type="hidden" name="redirect" value="{$U_REDIRECT|@urlencode}">
<input tabindex="4" type="submit" name="login" value="{'Submit'|@translate}">
</p>
<p>
{if isset($U_REGISTER)}
<a href="{$U_REGISTER}" title="{'Register'|@translate}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-register">&nbsp;</span><span>{'Register'|@translate}</span>
</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="pwg-icon pwg-icon-lost-password">&nbsp;</span><span>{'Forgot your password?'|@translate}</span>
</a>
{/if}
</p>
</form>
<script type="text/javascript"><!--
document.login_form.username.focus();
//--></script>
</div> <!-- content -->
@@ -0,0 +1,9 @@
{combine_script id='jquery.autogrow' load='async' require='jquery' path='themes/default/js/plugins/jquery.autogrow-textarea.js'}
{* Auto size and auto grow textarea *}
{footer_script require='jquery.autogrow'}{literal}
jQuery(document).ready(function(){
jQuery('textarea').css('overflow-y', 'hidden');
// Auto size and auto grow for all text area
jQuery('textarea').autogrow();
});
{/literal}{/footer_script}
@@ -0,0 +1,2 @@
{combine_script id='jquery.colorbox' load='footer' require='jquery' path='themes/default/js/plugins/jquery.colorbox.min.js'}
{combine_css path="themes/default/js/plugins/colorbox/style2/colorbox.css"}
@@ -0,0 +1,12 @@
<h3 class="related-tags-title">{'Related tags'|translate}</h3>
{foreach from=$COMBINABLE_TAGS item=tag}
<span class="related-tags {if isset($RELATED_TAGS_DISPLAY) and $RELATED_TAGS_DISPLAY == false} hide{/if}">{strip}
<a class="tagLevel {if isset($tag.level)}{$tag.level}{/if}" 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}<div class="tag-counter">{$tag.counter}</div></a></span>{/strip}
{/foreach}
@@ -0,0 +1,933 @@
{combine_script id='jquery.ui' load='async' path='themes/default/js/ui/minified/jquery.ui.core.min.js'}
{combine_script id='jquery.ui.slider' require='jquery.ui' load='async' path='themes/default/js/ui/minified/jquery.ui.slider.min.js'}
{combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css" order=-999}
{combine_script id='doubleSlider' load='footer' require='jquery.ui.slider' path='admin/themes/default/js/doubleSlider.js'}
{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'}
{combine_css path="admin/themes/default/fontello/css/animation.css" order=10} {* order 10 is required, see issue 1080 *}
{combine_script id='jquery.tipTip' load='header' path='themes/default/js/plugins/jquery.tipTip.minified.js'}
{combine_css path="themes/default/css/search.css" order=-100}
{combine_css path="themes/default/css/{$themeconf.colorscheme}-search.css" order=-100}
{combine_css path="themes/default/vendor/fontello/css/gallery-icon.css" order=-10}
{footer_script}
{if isset($GP)}
global_params = {$GP};
{/if}
{if isset($fullname_of)}
fullname_of_cat = {$fullname_of};
{/if}
{if isset($SEARCH_ID)}
search_id = '{$SEARCH_ID}';
{/if}
{if is_admin()}
user_rank = "admin";
{elseif is_classic_user()}
user_rank = "user";
{else}
user_rank = "none";
{/if}
str_word_widget_label = "{'Search for words'|@translate|escape:javascript}";
str_tags_widget_label = "{'Tag'|@translate|escape:javascript}";
str_album_widget_label = "{'Album'|@translate|escape:javascript}";
str_author_widget_label = "{'Author'|@translate|escape:javascript}";
str_added_by_widget_label = "{'Added by'|@translate|escape:javascript}";
str_filetypes_widget_label = "{'File type'|@translate|escape:javascript}";
str_rating_widget_label = "{'Rating'|@translate|escape:javascript}";
str_no_rating = "{'no rate'|@translate|escape:javascript}";
str_between_rating= "{'between %d and %d'|@translate}";
str_filesize_widget_label = "{'Filesize'|@translate|escape:javascript}";
str_width_widget_label = "{'Width'|@translate|escape:javascript}";
str_height_widget_label = "{'Height'|@translate|escape:javascript}";
str_ratio_widget_label = "{'Ratio'|@translate|escape:javascript}";
str_ratios_label = [];
str_ratios_label['Portrait'] ="{'Portrait'|@translate|escape:javascript}";
str_ratios_label['square'] = "{'square'|@translate|escape:javascript}";
str_ratios_label['Landscape'] = "{'Landscape'|@translate|escape:javascript}";
str_ratios_label['Panorama'] = "{'Panorama'|@translate|escape:javascript}";
str_expert_widget_label = "{'Expert mode'|@translate|escape:javascript}";
str_empty_search_top_alt = "{'Fill in the filters to start a search'|@translate|escape:javascript}";
str_empty_search_bot_alt = "{'Pre-established filters are proposed, but you can add or remove them using the "Choose filters" button.'|@translate|escape:javascript}";
const str_search_in_ab = '{'Search in albums'|@translate|escape:javascript}';
const prefix_icon = 'gallery-icon-';
{*<!-- sliders config -->*}
var sliders = {
{if isset($FILESIZE)}
filesizes: {
values: [{$FILESIZE.list}],
selected: {
min: {$FILESIZE.selected.min},
max: {$FILESIZE.selected.max},
},
text: '{'between %s and %s MB'|translate|escape:'javascript'}',
},
{/if}
{if isset($HEIGHT)}
heights: {
values: [{$HEIGHT.list}],
selected: {
min: {$HEIGHT.selected.min},
max: {$HEIGHT.selected.max},
},
text: '{'between %d and %d pixels'|translate|escape:'javascript'}',
},
{/if}
{if isset($WIDTH)}
widths: {
values: [{$WIDTH.list}],
selected: {
min: {$WIDTH.selected.min},
max: {$WIDTH.selected.max},
},
text: '{'between %d and %d pixels'|translate|escape:'javascript'}',
},
{/if}
};
{if isset($SHOW_FILTER_RATINGS)}
var show_filter_ratings = {if $SHOW_FILTER_RATINGS}{$SHOW_FILTER_RATINGS}{else}false{/if};
{/if}
{/footer_script}
{combine_script id='mcs' load='async' require='jquery' path='themes/default/js/mcs.js'}
<div class="mcs-container">
<div class="filter-manager-popin">
<div class="filter-manager-popin-container">
<span class="gallery-icon-cancel filter-manager-close"></span>
<div class="mcs-popin-title">{'Choose filters'|@translate}</div>
<div class="filter-manager-controller-container">
{if $display_filter.words.access == 'everybody' or ($display_filter.words.access == 'admins-only' and is_admin()) or ($display_filter.words.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='word' class="filter-manager-controller word" type="checkbox"/>
<span class="mcs-icon gallery-icon-search">{'Search for words'|@translate}</span>
</label>
{/if}
{if $display_filter.tags.access == 'everybody' or ($display_filter.tags.access == 'admins-only' and is_admin()) or ($display_filter.tags.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='tag' class="filter-manager-controller tags" type="checkbox"/>
<span class="mcs-icon gallery-icon-tag">{'Tag'|@translate}</span>
</label>
{/if}
{if $display_filter.post_date.access == 'everybody' or ($display_filter.post_date.access == 'admins-only' and is_admin()) or ($display_filter.post_date.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='date_posted' class="filter-manager-controller date_posted" type="checkbox"/>
<span class="mcs-icon gallery-icon-calendar-plus">{'Post date'|@translate}</span>
</label>
{/if}
{if $display_filter.creation_date.access == 'everybody' or ($display_filter.creation_date.access == 'admins-only' and is_admin()) or ($display_filter.creation_date.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='date_created' class="filter-manager-controller date_created" type="checkbox"/>
<span class="mcs-icon gallery-icon-calendar">{'Creation date'|@translate}</span>
</label>
{/if}
{if $display_filter.album.access == 'everybody' or ($display_filter.album.access == 'admins-only' and is_admin()) or ($display_filter.album.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='album' class="filter-manager-controller album" type="checkbox"/>
<span class="mcs-icon gallery-icon-album">{'Album'|@translate}</span>
</label>
{/if}
{if $display_filter.author.access == 'everybody' or ($display_filter.author.access == 'admins-only' and is_admin()) or ($display_filter.author.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='authors' class="filter-manager-controller author" type="checkbox"/>
<span class="mcs-icon gallery-icon-user-edit">{'Author'|@translate}</span>
</label>
{/if}
{if $display_filter.added_by.access == 'everybody' or ($display_filter.added_by.access == 'admins-only' and is_admin()) or ($display_filter.added_by.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='added_by' class="filter-manager-controller added_by" type="checkbox"/>
<span class="mcs-icon gallery-icon-user">{'Added by'|@translate}</span>
</label>
{/if}
{if $display_filter.file_type.access == 'everybody' or ($display_filter.file_type.access == 'admins-only' and is_admin()) or ($display_filter.file_type.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='filetypes' class="filter-manager-controller filetypes" type="checkbox"/>
<span class="mcs-icon gallery-icon-file-image">{'File type'|@translate}</span>
</label>
{/if}
{if $display_filter.ratio.access == 'everybody' or ($display_filter.ratio.access == 'admins-only' and is_admin()) or ($display_filter.ratio.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='ratios' class="filter-manager-controller ratios" type="checkbox"/>
<span class="mcs-icon gallery-icon-crop">{'Ratio'|@translate}</span>
</label>
{/if}
{if $SHOW_FILTER_RATINGS and isset($SHOW_FILTER_RATINGS)}
{if $display_filter.rating.access == 'everybody' or ($display_filter.rating.access == 'admins-only' and is_admin()) or ($display_filter.rating.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='ratings' class="filter-manager-controller ratings" type="checkbox"/>
<span class="mcs-icon gallery-icon-star-1">{'Rating'|@translate}</span>
</label>
{/if}
{/if}
{if $display_filter.file_size.access == 'everybody' or ($display_filter.file_size.access == 'admins-only' and is_admin()) or ($display_filter.file_size.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='filesize' class="filter-manager-controller filesize" type="checkbox"/>
<span class="mcs-icon gallery-icon-hdd">{'Filesize'|@translate}</span>
</label>
{/if}
{if $display_filter.height.access == 'everybody' or ($display_filter.height.access == 'admins-only' and is_admin()) or ($display_filter.height.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='height' class="filter-manager-controller height" type="checkbox"/>
<span class="mcs-icon gallery-icon-height">{'Height'|@translate}</span>
</label>
{/if}
{if $display_filter.width.access == 'everybody' or ($display_filter.width.access == 'admins-only' and is_admin()) or ($display_filter.width.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='width' class="filter-manager-controller width" type="checkbox"/>
<span class="mcs-icon gallery-icon-width">{'Width'|@translate}</span>
</label>
{/if}
{if $display_filter.expert.access == 'everybody' or ($display_filter.expert.access == 'admins-only' and is_admin()) or ($display_filter.expert.access == 'registered-users' and is_classic_user())}
<label>
<input data-wid='expert' class="filter-manager-controller expert" type="checkbox"/>
<span class="mcs-icon gallery-icon-chemistry">{'Expert mode'|translate}</span>
</label>
{/if}
</div>
<div class="filter-manager-actions">
<div class="filter-cancel">
{'Cancel'|@translate}
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
</div>
<div class="filter-manager">
<span class="mcs-icon gallery-icon-selecters"></span>{'Choose filters'|@translate}
</div>
<i class="filter-spinner gallery-icon-spin6 animate-spin"></i>
<div class="filter filter-word">
<span class="mcs-icon gallery-icon-search filter-icon"></span>
<span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-word-form">
<div class="filter-form-title gallery-icon-search">{'Search for words'|@translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash">{'Delete'|@translate}</span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left">{'Clear'|@translate}</span>
</div>
{* <span class="word-help"><i class="gallery-icon-help-circled"></i>Conseils de recherche</span> *}
<div class="word-search-options">
<label><input type="radio" name="mode" value="AND" checked> {'Search for all terms'|@translate}</label>
<label><input type="radio" name="mode" value="OR"> {'Search for any term'|@translate}</label>
</div>
<input type="text" id="word-search" name="word">
<span class="search-params-title">{'Search in :'|@translate}</span>
<div class="search-params">
<div>
<input type="checkbox" id="name" name="name">
<label for="name">{'Photo title'|@translate}</label>
</div>
<div>
<input type="checkbox" id="file" name="file">
<label for="file">{'File name'|@translate}</label>
</div>
<div>
<input type="checkbox" id="author" name="author">
<label for="author">{'Author'|translate}</label>
</div>
<div>
<input type="checkbox" id="comment" name="comment">
<label for="comment">{'Photo description'|@translate}</label>
</div>
<div>
<input type="checkbox" id="tags" name="tags">
<label for="tags">{'Tags'|@translate}</label>
</div>
<div>
<input type="checkbox" id="cat-title" name="cat-title">
<label for="cat-title">{'Album title'|@translate}</label>
</div>
<div>
<input type="checkbox" id="cat-desc" name="cat-desc">
<label for="cat-desc">{'Album description'|@translate}</label>
</div>
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
{if isset($TAGS)}
<div class="filter filter-tag">
<span class="mcs-icon gallery-icon-tag filter-icon"></span>
<span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-tag-form">
<div class="filter-form-title gallery-icon-tag">{'Tag'|@translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash">{'Delete'|@translate}</span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left">{'Clear'|@translate}</span>
</div>
{if empty($TAGS)}
<p class="no_filtered_photos">{'There are no tags available for the photos currently filtered'|translate}</p>
{/if}
<div class="search-params {if empty($TAGS)}mcs_hide{/if}">
<div>
<input type="radio" id="tag-all" name="tag_mode" value="AND" checked>
<label for="tag-all">{'All tags'|@translate}</label>
</div>
<div>
<input type="radio" id="tag-one" name="tag_mode" value="OR">
<label for="tag-one">{'Any tag'|@translate}</label>
</div>
</div>
<div class="form-container {if empty($TAGS)}mcs_hide{/if}">
<select id="tag-search" 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 class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
</div>
{/if}
{* For post date *}
{if isset($DATE_POSTED) or isset($LIST_DATE_POSTED)}
<div class="filter filter-date_posted">
<span class="mcs-icon gallery-icon-calendar-plus filter-icon"></span>
<span class="search-words">{'Post date'|@translate}</span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-date_posted-form">
<div class="filter-form-title gallery-icon-calendar-plus">{'Post date'|@translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash" title="{'Delete'|@translate}"></span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left" title="{'Clear'|@translate}"></span>
</div>
<div class="date_posted-option-container">
<div class="preset_posted_date">
{foreach from=$DATE_POSTED item=date_posted key=k}
<div class="date_posted-option {if 0 == $date_posted.counter}disabled{/if}">
{if 0 != $date_posted.counter}<input type="radio" id="date_posted-{$k}" value={$k} name="date_posted-period">{/if}
<label for="date_posted-{$k}" id="{$k}">
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
<span class="date-period">{$date_posted.label}</span>
{if 0 != $date_posted.counter}<span class="date_posted-badge">{$date_posted.counter}</span>{/if}
</label>
</div>
{/foreach}
<div class="date_posted-option">
<input type="radio" id="date_posted-custom" value="custom" name="date_posted-period">
<label for="date_posted_custom" class="custom_posted_date_toggle">
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
<span class="date-period">{'Custom dates'|translate}</span>
</label>
</div>
</div>
<div class="custom_posted_date">
{foreach from=$LIST_DATE_POSTED key=y item=year}
<div class="date_posted-option year" id="container_{$y}">
<div class="year_input">
<input type="checkbox" id="date_posted_{$y}" value='y{$y}' data-year="{$y}">
<i class="gallery-icon-up-open accordion-toggle" data-type='year'></i>
<label for="date_posted_{$y}" id="{$y}">
<span class="date-period">{$year.label}</span>
<span class="date_posted-badge">{$year.count}</span>
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
</label>
</div>
<div class="months_container">
{foreach from=$year.months key=m item=month}
<div class="date_posted-option month" id="container_{$m}">
<div class="month_input">
<input type="checkbox" id="date_posted_{$m}" value='m{$m}' data-year="{$y}">
<i class="gallery-icon-up-open accordion-toggle" data-type='month'></i>
<label for="date_posted_{$m}" id="{$m}">
<span class="date-period">{$month.label}</span>
<span class="date_posted-badge">{$month.count}</span>
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
</label>
</div>
<div class="days_container">
{foreach from=$month.days key=d item=day}
<div class="date_posted-option day" id="container_{$d}">
<input type="checkbox" id="date_posted_{$d}" value='d{$d}' data-year="{$y}">
<label for="date_posted_{$d}" id="{$d}">
<span class="date-period">{$day.label}</span>
<span class="date_posted-badge">{$day.count}</span>
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
</label>
</div>
{/foreach}
</div>
</div>
{/foreach}
</div>
</div>
{/foreach}
</div>
</div>
<div>
<div class="custom_posted_date custom_posted_date_toggle">
<i class="gallery-icon-up-open"></i>
<span>{'Previous'|translate}</span>
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
</div>
{/if}
{* For creation date *}
{if isset($DATE_CREATED) or isset($LIST_DATE_CREATED)}
<div class="filter filter-date_created">
<span class="mcs-icon gallery-icon-calendar filter-icon"></span>
<span class="search-words">{'Creation date'|@translate}</span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-date_created-form">
<div class="filter-form-title gallery-icon-calendar">{'Creation date'|@translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash" title="{'Delete'|@translate}"></span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left" title="{'Clear'|@translate}"></span>
</div>
{if empty($LIST_DATE_CREATED)}
<p class="no_filtered_photos">{'There are no creation dates available for the photos currently filtered'|translate}</p>
{else}
<div class="date_created-option-container">
<div class="preset_created_date">
{foreach from=$DATE_CREATED item=date_created key=k}
<div class="date_created-option {if 0 == $date_created.counter}disabled{/if}">
{if 0 != $date_created.counter}<input type="radio" id="date_created-{$k}" value={$k} name="date_created-period">{/if}
<label for="date_created-{$k}" id="{$k}">
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
<span class="date-period">{$date_created.label}</span>
{if 0 != $date_created.counter}<span class="date_created-badge">{$date_created.counter}</span>{/if}
</label>
</div>
{/foreach}
<div class="date_created-option">
<input type="radio" id="date_created-custom" value="custom" name="date_created-period">
<label for="date_created_custom" class="custom_created_date_toggle">
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
<span class="date-period">{'Custom dates'|translate}</span>
</label>
</div>
</div>
<div class="custom_created_date">
{if !empty($LIST_DATE_CREATED)}
{foreach from=$LIST_DATE_CREATED key=y item=year}
<div class="date_created-option year" id="container_{$y}">
<div class="year_input">
<input type="checkbox" id="date_created_{$y}" value='y{$y}' data-year="{$y}">
<i class="gallery-icon-up-open accordion-toggle" data-type='year'></i>
<label for="date_created_{$y}" id="{$y}">
<span class="date-period">{$year.label}</span>
<span class="date_created-badge">{$year.count}</span>
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
</label>
</div>
<div class="months_container">
{foreach from=$year.months key=m item=month}
<div class="date_created-option month" id="container_{$m}">
<div class="month_input">
<input type="checkbox" id="date_created_{$m}" value='m{$m}' data-year="{$y}">
<i class="gallery-icon-up-open accordion-toggle" data-type='month'></i>
<label for="date_created_{$m}" id="{$m}">
<span class="date-period">{$month.label}</span>
<span class="date_created-badge">{$month.count}</span>
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
</label>
</div>
<div class="days_container">
{foreach from=$month.days key=d item=day}
<div class="date_created-option day" id="container_{$d}">
<input type="checkbox" id="date_created_{$d}" value='d{$d}' data-year="{$y}">
<label for="date_created_{$d}" id="{$d}">
<span class="date-period">{$day.label}</span>
<span class="date_created-badge">{$day.count}</span>
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
</label>
</div>
{/foreach}
</div>
</div>
{/foreach}
</div>
</div>
{/foreach}
{/if}
</div>
</div>
<div>
<div class="custom_created_date custom_created_date_toggle">
<i class="gallery-icon-up-open"></i>
<span>{'Previous'|translate}</span>
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
{/if}
</div>
</div>
{/if}
<div class="filter filter-album">
<span class="mcs-icon gallery-icon-album filter-icon"></span>
<span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-album-form">
<div class="filter-form-title gallery-icon-album"> {'Album'|@translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash">{'Delete'|@translate}</span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left">{'Clear'|@translate}</span>
</div>
<div class="search-params">
</div>
<div class="selected-categories-container">
</div>
<div class="add-album-button">
<label class="head-button-2 icon-add-album">
<p class="mcs-icon gallery-icon-plus-circled">{'Add Album'|@translate}</p>
</label>
</div>
<div class="search-sub-cats">
<input type="checkbox" id="search-sub-cats" name="search-sub-cats">
<label for="search-sub-cats">{'Search in sub-albums'|@translate}</label>
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
{include file='admin/themes/default/template/include/album_selector.inc.tpl'}
{if isset($AUTHORS)}
<div class="filter filter-authors">
<span class="mcs-icon gallery-icon-user-edit filter-icon"></span>
<span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-author-form">
<div class="filter-form-title gallery-icon-user-edit"> {'Author'|@translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash">{'Delete'|@translate}</span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left">{'Clear'|@translate}</span>
</div>
{if empty($AUTHORS)}
<p class="no_filtered_photos">{'There are no authors available for the photos currently filtered'|translate}</p>
{/if}
<div class="form-container {if empty($AUTHORS)}mcs_hide{/if}">
<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 class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
</div>
{/if}
{if isset($ADDED_BY)}
<div class="filter filter-added_by">
<span class="mcs-icon gallery-icon-user filter-icon"></span>
</span><span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-added_by-form">
<div class="filter-form-title gallery-icon-user">{'Added by'|translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash tiptip" title="{'Delete'|@translate}"></span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left tiptip" title="{'Clear'|@translate}"></span>
</div>
<div class="form-container">
<div class="added_by-option-container">
{foreach from=$ADDED_BY item=added_by key=k}
<div class="added_by-option">
<input type="checkbox" id="added_by-{$added_by.added_by_id}" name="{$added_by.added_by_id}">
<label for="added_by-{$added_by.added_by_id}">
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
<span class="added_by-name">{$added_by.added_by_name|strip_tags:false}</span>
<span class="added_by-badge">{$added_by.counter}</span>
</label>
</div>
{/foreach}
</div>
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
{/if}
{if isset($FILETYPES)}
<div class="filter filter-filetypes">
<span class="mcs-icon gallery-icon-file-image filter-icon"></span>
</span><span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-filetypes-form">
<div class="filter-form-title gallery-icon-file-image">{'File type'|@translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash tiptip" title="{'Delete'|@translate}"></span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left tiptip" title="{'Clear'|@translate}"></span>
</div>
<div class="form-container">
<div class="filetypes-option-container">
{foreach from=$FILETYPES item=filetypes key=k}
<div class="filetypes-option {if 0 == $filetypes}disabled{/if}">
<input type="checkbox" id="filetype-{$k}" name="{$k}" {if 0 == $filetypes}disabled{/if}>
<label for="filetype-{$k}">
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
<span class="ext-name">{$k}</span>
{if 0 != $filetypes}<span class="ext-badge">{$filetypes}</span>{/if}
</label>
</div>
{/foreach}
</div>
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
{/if}
{if isset($RATIOS)}
<div class="filter filter-ratios">
<span class="mcs-icon gallery-icon-crop filter-icon"></span>
</span><span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-ratios-form">
<div class="filter-form-title gallery-icon-crop">{'Ratio'|@translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash tiptip" title="{'Delete'|@translate}"></span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left tiptip" title="{'Clear'|@translate}"></span>
</div>
<div class="form-container">
<div class="ratios-option-container">
{foreach from=$RATIOS item=ratio key=k}
<div class="ratios-option {if 0 == $ratio}disabled{/if}">
<input type="checkbox" id="ratio-{$k}" name="{$k}" {if 0 == $ratio}disabled{/if}>
<label for="ratio-{$k}">
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
<span class="ratio-name">{$k|translate}</span>
{if 0 != $ratio}<span class="ratio-badge">{$ratio}</span>{/if}
</label>
</div>
{/foreach}
</div>
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
{/if}
{* Add filter for rating *}
{if $SHOW_FILTER_RATINGS and isset($RATING)}
<div class="filter filter-ratings">
<span class="mcs-icon mcs-icon gallery-icon-star-1 filter-icon"></span>
</span><span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-ratings-form">
<div class="filter-form-title gallery-icon-star-1">{'Rating'|@translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash tiptip" title="{'Delete'|@translate}"></span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left tiptip" title="{'Clear'|@translate}"></span>
</div>
<div class="form-container">
<div class="ratings-option-container">
<form>
{foreach from=$RATING item=rating key=k}
<div class="ratings-option {if 0 == $rating}disabled{/if}">
<input type="checkbox" id="rating-{$k}" name="{if 0 == $k}0{else}{$k}{/if}" {if 0 == $rating}disabled{/if}>
<label for="rating-{$k}">
<span class="mcs-icon gallery-icon-checkmark checked-icon"></span>
<span class="ratings-name">{if 0 == $k}{'no rate'|translate}{else}{'between %d and %d'|@translate:(intval($k)-1):$k|escape:'javascript'}{/if}</span>
{if 0 != $rating}<span class="ratings-badge">{$rating}</span>{/if}
</label>
</div>
{/foreach}
</form>
</div>
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
{/if}
{* Add filter for filesize *}
{if isset($FILESIZE)}
<div class="filter filter-filesize">
<span class="mcs-icon mcs-icon gallery-icon-hdd filter-icon"></span>
</span><span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-filesize-form">
<div class="filter-form-title mcs-icon gallery-icon-hdd">{'Filesize'|translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash tiptip" title="{'Delete'|@translate}"></span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left tiptip" data-min="{$FILESIZE.bounds.min}" data-max="{$FILESIZE.bounds.max}" title="{'Clear'|@translate}"></span>
</div>
<div class="form-container">
<div class="filesize-option-container">
<div class="slider_input">
<div class="min_input">
<p>Min</p>
<input type="number" step=".1" min="0" name="filter_filesize_min_text" value="{$FILESIZE.selected.min}" disabled>
</div>
<div class="max_input">
<p>Max</p>
<input type="number" step=".1" min="0" name="filter_filesize_max_text" value="{$FILESIZE.selected.max}" disabled>
</div>
</div>
<div data-slider="filesizes">
<span class="slider-info"></span>
<div class="slider-slider"></div>
<input type="hidden" data-input="min" name="filter_filesize_min" value="{$FILESIZE.selected.min}">
<input type="hidden" data-input="max" name="filter_filesize_max" value="{$FILESIZE.selected.max}">
</div>
</div>
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
{/if}
{* Add filter for Height *}
{if isset($HEIGHT)}
<div class="filter filter-height">
<span class="mcs-icon mcs-icon gallery-icon-height"></span>
<span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-height-form">
<div class="filter-form-title mcs-icon gallery-icon-heigh">
{'height'|translate}
</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash tiptip" title="{'Delete'|@translate}"></span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left tiptip" data-min="{$HEIGHT.bounds.min}" data-max="{$HEIGHT.bounds.max}" title="{'Reset'|@translate}"></span>
</div>
<div class="form-container">
<div class="height-option-container">
<div data-slider="heights">
<span class="slider-info"></span>
<div class="slider-slider"></div>
<input type="hidden" data-input="min" name="filter_height_min" value="{$HEIGHT.selected.min}">
<input type="hidden" data-input="max" name="filter_height_max" value="{$HEIGHT.selected.max}">
</div>
</div>
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
{/if}
{* Add filter for Width *}
{if isset($WIDTH)}
<div class="filter filter-width">
<span class="mcs-icon mcs-icon gallery-icon-width"></span>
<span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-width-form">
<div class="filter-form-title mcs-icon gallery-icon-width">
{'width'|translate}
</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash tiptip" title="{'Delete'|@translate}"></span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left tiptip" title="{'Clear'|@translate}"></span>
</div>
<div class="form-container">
<div class="width-option-container">
<div data-slider="widths">
<span class="slider-info"></span>
<div class="slider-slider"></div>
<input type="hidden" data-input="min" name="filter_width_min" value="{$WIDTH.selected.min}">
<input type="hidden" data-input="max" name="filter_width_max" value="{$WIDTH.selected.max}">
</div>
</div>
</div>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
{/if}
<div class="filter filter-expert">
<span class="mcs-icon gallery-icon-chemistry filter-icon"></span>
<span class="search-words"></span>
<span class="filter-arrow gallery-icon-up-open"></span>
<div class="filter-form filter-expert-form">
<div class="filter-form-title gallery-icon-chemistry"> {'Expert mode'|@translate}</div>
<div class="filter-actions">
<span class="delete mcs-icon gallery-icon-trash">{'Delete'|@translate}</span>
<span class="clear mcs-icon gallery-icon-arrow-rotate-left">{'Clear'|@translate}</span>
</div>
<input type="text" id="expert-search" name="expert">
<p title="{'Help'|@translate}" class="help-popin-search">
<i class="gallery-icon-help-circled"></i>
<span>{'Search tips'|translate}</span>
</p>
<div class="filter-validate">
<i class="loading gallery-icon-spin6 animate-spin"></i>
<span class="validate-text">{'Validate'|@translate}</span>
</div>
</div>
</div>
<div>
<span class="mcs-icon gallery-icon-arrow-rotate-left clear-all">{'Empty filters'|@translate}</span>
</div>
</div>
<div class="bg-modal" id="modalQuickSearch">
<div class="modal-content">
<a class="gallery-icon-cancel close-modal" id="closeModalQuickSearch"></a>
<div class="quick-search-content">
<div class="quick-search-syntax">
{assign var=is_dark_mode value=$themeconf.colorscheme == 'dark'}
{include file='themes/default/template/help/quick_search.tpl' dark_mode=$is_dark_mode}
</div>
</div>
</div>
</div>
{if isset($TAGS_FOUND) or isset($ALBUMS_FOUND)}
<div class="mcs-side-results">
{if isset($TAGS_FOUND)}
<div class="mcs-tags-found">
<span class="mcs-side-badge">{count($TAGS_FOUND)}</span>
<p>{'Tags found'|@translate}</p>
</div>
{/if}
{if isset($ALBUMS_FOUND)}
<div class="mcs-albums-found">
<span class="mcs-side-badge">{count($ALBUMS_FOUND)}</span>
<p>{'Albums found'|@translate}</p>
</div>
{/if}
</div>
{if isset($TAGS_FOUND)}
<div class="tags-found-popin">
<div class="tags-found-popin-container">
<span class="gallery-icon-cancel tags-found-close"></span>
<div class="mcs-popin-title">{'Tags found'|@translate}</div>
<div class="mcs-popin-desc">{'Tags listed here match your search by word. Click on one to browse by tag.'|translate}</div>
<div class="tags-found-container">
{foreach from=$TAGS_FOUND item=tag_path key=k}
<div class="tag-item">
{$tag_path}
</div>
{/foreach}
</div>
</div>
</div>
{/if}
{if isset($ALBUMS_FOUND)}
<div class="albums-found-popin">
<div class="albums-found-popin-container">
<span class="gallery-icon-cancel albums-found-close"></span>
<div class="mcs-popin-title">{'Albums found'|@translate}</div>
<div class="mcs-popin-desc">{'Albums listed here match your search by word. Click on one to browse by album.'|translate}</div>
<div class="albums-found-container">
{foreach from=$ALBUMS_FOUND item=album_path key=k}
<div class="album-item">
{$album_path}
</div>
{/foreach}
</div>
</div>
</div>
{/if}
{/if}
@@ -0,0 +1,16 @@
<span id="selected-tags-container">
{foreach $SELECT_RELATED_TAGS as $TAG}
<span class="selected-related-tag {if 1 == count($SELECT_RELATED_TAGS)}unique-tag{/if}">
<a href="{$TAG.index_url}" title="{'display photos linked to this tag'|translate}">
{$TAG.tag_name}
</a>
{if count($SELECT_RELATED_TAGS) > 1}
<a class="selected-related-tag-remove" href="{$TAG.remove_url}" style="border:none;" title="{'remove this tag from the list'|translate}">
<i class="gallery-icon-cancel fas fa-plus"></i>
</a>
{/if}
</span>
{/foreach}
</span>
@@ -0,0 +1,239 @@
{combine_script id='core.switchbox' load='async' require='jquery' path='themes/default/js/switchbox.js'}
{combine_css path="themes/default/vendor/fontello/css/gallery-icon.css" order=-10}
{$MENUBAR}
{if isset($errors) or isset($infos)}
<div class="content messages{if isset($MENUBAR)} contentWithMenu{/if}">
{include file='infos_errors.tpl'}
</div>
{/if}
{if !empty($PLUGIN_INDEX_CONTENT_BEFORE)}{$PLUGIN_INDEX_CONTENT_BEFORE}{/if}
<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
<div class="titrePage{if isset($chronology.TITLE)} calendarTitleBar{/if}">
<ul class="categoryActions">
{if isset($SEARCH_IN_SET_ACTION) and $SEARCH_IN_SET_ACTION}
<li id="cmdSearchInSet"><a href="{$SEARCH_IN_SET_URL}" title="{'Search in this set'|translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="gallery-icon-search-folder"></span><span class="pwg-button-text">{'Search in this set'|translate}</span>
</a></li>
{/if}
{* We want the related tags action icon on all pages except the index and tag pages*}
{if isset($RELATED_TAGS_ACTION) and $RELATED_TAGS_ACTION}
<li>{strip}<a id="cmdRelatedTags" title="{'Related tags'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon gallery-icon-tag"></span><span class="pwg-button-text">{'Related tags'|@translate}</span>
</a>
<div id="relatedTagsBox" class="switchBox">
<div class="switchBoxTitle">{'Related tags'|@translate}</div>
{foreach from=$RELATED_TAGS item=tag}
<a href=
"{$tag.URL}" title="{'display photos linked to this tag'|@translate}">
{$tag.name}
</a>
{/foreach}
</div>
{footer_script}(window.SwitchBox=window.SwitchBox||[]).push("#cmdRelatedTags", "#relatedTagsBox");{/footer_script}
{/strip}</li>
{/if}
{if !empty($image_orders)}
<li>{strip}<a id="sortOrderLink" title="{'Sort order'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-sort"></span><span class="pwg-button-text">{'Sort order'|@translate}</span>
</a>
<div id="sortOrderBox" class="switchBox">
<div class="switchBoxTitle">{'Sort order'|@translate}</div>
{foreach from=$image_orders item=image_order name=loop}{if !$smarty.foreach.loop.first}<br>{/if}
{if $image_order.SELECTED}
<span>&#x2714; </span>{$image_order.DISPLAY}
{else}
<span style="visibility:hidden">&#x2714; </span><a href="{$image_order.URL}" rel="nofollow">{$image_order.DISPLAY}</a>
{/if}
{/foreach}
</div>
{footer_script}(window.SwitchBox=window.SwitchBox||[]).push("#sortOrderLink", "#sortOrderBox");{/footer_script}
{/strip}</li>
{/if}
{if !empty($image_derivatives)}
<li>{strip}<a id="derivativeSwitchLink" title="{'Photo sizes'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-sizes"></span><span class="pwg-button-text">{'Photo sizes'|@translate}</span>
</a>
<div id="derivativeSwitchBox" class="switchBox">
<div class="switchBoxTitle">{'Photo sizes'|@translate}</div>
{foreach from=$image_derivatives item=image_derivative name=loop}{if !$smarty.foreach.loop.first}<br>{/if}
{if $image_derivative.SELECTED}
<span>&#x2714; </span>{$image_derivative.DISPLAY}
{else}
<span style="visibility:hidden">&#x2714; </span><a href="{$image_derivative.URL}" rel="nofollow">{$image_derivative.DISPLAY}</a>
{/if}
{/foreach}
</div>
{footer_script}(window.SwitchBox=window.SwitchBox||[]).push("#derivativeSwitchLink", "#derivativeSwitchBox");{/footer_script}
{/strip}</li>
{/if}
{if isset($favorite)}
<li id="cmdFavorite"><a href="{$favorite.U_FAVORITE}" title="{'delete all photos from your favorites'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-favorite-del"></span><span class="pwg-button-text">{'delete all photos from your favorites'|@translate}</span>
</a></li>
{/if}
{if isset($U_CADDIE)}
<li id="cmdCaddie"><a href="{$U_CADDIE}" title="{'Add to caddie'|@translate}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-caddie-add"></span><span class="pwg-button-text">{'Caddie'|@translate}</span>
</a></li>
{/if}
{if isset($U_EDIT)}
<li id="cmdEditAlbum"><a href="{$U_EDIT}" title="{'Edit album'|@translate}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-category-edit"></span><span class="pwg-button-text">{'Edit'|@translate}</span>
</a></li>
{/if}
{if isset($U_SLIDESHOW)}
<li id="cmdSlideshow">{strip}<a href="{$U_SLIDESHOW}" title="{'slideshow'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-slideshow"></span><span class="pwg-button-text">{'slideshow'|@translate}</span>
</a>{/strip}</li>
{/if}
{if isset($U_MODE_FLAT)}
<li>{strip}<a href="{$U_MODE_FLAT}" title="{'display all photos in all sub-albums'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-category-view-flat"></span><span class="pwg-button-text">{'display all photos in all sub-albums'|@translate}</span>
</a>{/strip}</li>
{/if}
{if isset($U_MODE_NORMAL)}
<li>{strip}<a href="{$U_MODE_NORMAL}" title="{'return to normal view mode'|@translate}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-category-view-normal"></span><span class="pwg-button-text">{'return to normal view mode'|@translate}</span>
</a>{/strip}</li>
{/if}
{if isset($U_MODE_POSTED)}
<li>{strip}<a href="{$U_MODE_POSTED}" title="{'display a calendar by posted date'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-calendar"></span><span class="pwg-button-text">{'Calendar'|@translate}</span>
</a>{/strip}</li>
{/if}
{if isset($U_MODE_CREATED)}
<li>{strip}<a href="{$U_MODE_CREATED}" title="{'display a calendar by creation date'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-camera-calendar"></span><span class="pwg-button-text">{'Calendar'|@translate}</span>
</a>{/strip}</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}
</ul>
<div id="breadcrumb">
<h2>{$TITLE}
{if $NB_ITEMS > 0}<span class="badge nb_items">{$NB_ITEMS}</span>{/if}
</h2>
{$SELECTED_TAGS_TEMPLATE}
</div>
{if isset($chronology_views)}
<div class="calendarViews">{'View'|@translate}:
<a id="calendarViewSwitchLink" href="#">
{foreach from=$chronology_views item=view}{if $view.SELECTED}{$view.CONTENT}{/if}{/foreach}
</a>
<div id="calendarViewSwitchBox" class="switchBox">
{foreach from=$chronology_views item=view name=loop}{if !$smarty.foreach.loop.first}<br>{/if}
<span{if !$view.SELECTED} style="visibility:hidden"{/if}>&#x2714; </span><a href="{$view.VALUE}">{$view.CONTENT}</a>
{/foreach}
</div>
{footer_script}(window.SwitchBox=window.SwitchBox||[]).push("#calendarViewSwitchLink", "#calendarViewSwitchBox");{/footer_script}
</div>
{/if}
{if isset($chronology.TITLE)}
<h2 class="calendarTitle">{$chronology.TITLE}</h2>
{/if}
</div>{* <!-- titrePage --> *}
{if !empty($PLUGIN_INDEX_CONTENT_BEGIN)}{$PLUGIN_INDEX_CONTENT_BEGIN}{/if}
{if !empty($no_search_results)}
<p class="search_results">{'No results for'|@translate} :
<em><strong>
{foreach $no_search_results as $res}
{if !$res@first} &mdash; {/if}
{$res}
{/foreach}
</strong></em>
</p>
{/if}
{if !empty($category_search_results)}
<p class="search_results">{'Album results for'|@translate} <strong>{$QUERY_SEARCH}</strong> :
<em><strong>
{foreach from=$category_search_results item=res name=res_loop}
{if !$smarty.foreach.res_loop.first} &mdash; {/if}
{$res}
{/foreach}
</strong></em>
</p>
{/if}
{if !empty($tag_search_results)}
<p class="search_results">{'Tag results for'|@translate} <strong>{$QUERY_SEARCH}</strong> :
<em><strong>
{foreach from=$tag_search_results item=tag name=res_loop}
{if !$smarty.foreach.res_loop.first} &mdash; {/if} <a href="{$tag.URL}">{$tag.name}</a>
{/foreach}
</strong></em>
</p>
{/if}
{if isset($FILE_CHRONOLOGY_VIEW)}
{include file=$FILE_CHRONOLOGY_VIEW}
{/if}
<div class="action-buttons">
{if isset($SEARCH_IN_SET_BUTTON) and $SEARCH_IN_SET_BUTTON}
<div class="mcs-side-results search-in-set-button">
<div>
<p><a href="{$SEARCH_IN_SET_URL}" class="gallery-icon-search-folder" rel="nofollow">{'Search in this set'|translate}</a></p>
</div>
</div>
{/if}
{if isset($COMBINABLE_TAGS)}
{include file='include/related_tags.inc.tpl'}
{/if}
</div>
{if !empty($CONTENT_DESCRIPTION)}
<div class="additional_info">
{$CONTENT_DESCRIPTION}
</div>
{/if}
{if !empty($CONTENT)}{$CONTENT}{/if}
{if !empty($CATEGORIES)}{$CATEGORIES}{/if}
{if !empty($cats_navbar)}
{include file='navigation_bar.tpl'|@get_extent:'navbar' navbar=$cats_navbar}
{/if}
{if !empty($SEARCH_ID)}
{include file='themes/default/template/include/search_filters.inc.tpl'}
{/if}
{if !empty($THUMBNAILS)}
<div class="loader"><img src="{$ROOT_URL}{$themeconf.img_dir}/ajax_loader.gif"></div>
<ul class="thumbnails" id="thumbnails">
{$THUMBNAILS}
</ul>
{else if !empty($SEARCH_ID)}
<div class="mcs-no-result">
<div class="text">
<span class="top">{'No results are available.'|@translate}</span>
<span class="bot">{'You can try to edit your filters and perform a new search.'|translate}</span>
</div>
</div>
{/if}
{if !empty($thumb_navbar)}
{include file='navigation_bar.tpl'|@get_extent:'navbar' navbar=$thumb_navbar}
{/if}
{if !empty($PLUGIN_INDEX_CONTENT_END)}{$PLUGIN_INDEX_CONTENT_END}{/if}
</div>{* <!-- content --> *}
{if !empty($PLUGIN_INDEX_CONTENT_AFTER)}{$PLUGIN_INDEX_CONTENT_AFTER}{/if}
@@ -0,0 +1,19 @@
{if isset($errors) }
<div class="errors">
<ul>
{foreach from=$errors item=error}
<li>{$error}</li>
{/foreach}
</ul>
</div>
{/if}
{if not empty($infos)}
<div class="infos">
<ul>
{foreach from=$infos item=info}
<li>{$info}</li>
{/foreach}
</ul>
</div>
{/if}
@@ -0,0 +1,15 @@
<?php
// +-----------------------------------------------------------------------+
// | This file is part of Piwigo. |
// | |
// | For copyright and license information, please view the COPYING.txt |
// | file that was distributed with this source code. |
// +-----------------------------------------------------------------------+
// Recursive call
$url = '../';
header( 'Request-URI: '.$url );
header( 'Content-Location: '.$url );
header( 'Location: '.$url );
exit();
?>
Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

@@ -0,0 +1,10 @@
<div id="cat_group_info">
<h2>{'Informations'|@translate}</h2>
{if isset($IMG) && isset($IMG.link) && isset($IMG.src)}
<p><a href="{$IMG.link}" class="thumblnk"><img src="{$IMG.src}"></a></p>
{/if}
<p>{'Hello,'|@translate}</p>
<p>{'Discover album:'|@translate} <a href="{$LINK}">{$CAT_NAME}</a></p>
<p>{$CPL_CONTENT}</p>
<p>{'See you soon.'|@translate}</p>
</div>
@@ -0,0 +1,23 @@
{* <!-- end $CONTENT --> *}
</td></tr>
<tr><td id="footer">
{* <!-- begin FOOTER --> *}
{* <!-- 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... --> *}
{'Sent by'|translate} <a href="{$GALLERY_URL}">{$GALLERY_TITLE}</a>
- {'Powered by'|translate} <a href="{$PHPWG_URL}" class="Piwigo">Piwigo</a>
{if not empty($VERSION)}{$VERSION}{/if}
- {'Contact'|translate}
<a href="mailto:{$CONTACT_MAIL}?subject={'A comment on your site'|translate|escape:url}">{'Webmaster'|@translate}</a>
{* <!-- end FOOTER --> *}
</td></tr>
</table>
</td></tr>
</table>
</body>
</html>
@@ -0,0 +1,103 @@
/* page */
body {
font-family:"Verdana", "Helvetica", "Optima", sans-serif;
font-size:12px;
margin:0px;
padding:0px;
}
html, body, #bodyTable {
width:100%;
height:100%;
}
/* main block */
#header {
padding:20px;
}
#header #title {
font-size:26px;
font-weight:bold;
}
#header #subtitle {
font-size:20px;
}
#content {
padding:0 20px 20px 20px;
font-family:"Verdana", "Helvetica", "Optima", sans-serif;
font-size:13px;
}
#footer {
font-size:10px;
padding:5px;
}
#topSpacer {
margin-bottom:20px;
}
/* images */
img {
border:none;
}
h1, h2, h3, h4, h5 {
margin:0.5em 0 0.25em 0;
}
h1 { font-size:26px; }
h2 { font-size:20px; }
h3 { font-size:16px; }
h4 { font-size:12px; }
h5 { font-size:10px; }
/* paragraphs */
p {
margin:0.25em 0 0.5em 0;
}
blockquote {
margin-left:10px;
padding-left:10px;
font-family:"Times",serif;
font-size:14px;
}
/* list */
ul, ol {
margin:0.5em 0 0.25em 30px;
padding:0;
}
dl {
margin:0.5em 0 0.25em 10px;
}
dt {
margin:0.25em 0 0 0;
font-weight:bold;
}
dd {
margin:0 0 0.25em 10px;
}
/* tables */
#content table {
width:100%;
border-spacing:0;
border-collapse:collapse;
}
#content table td {
padding:2px 3px;
}
#content table th {
font-weight:bold;
text-align:center;
padding:4px 0;
}
#content table tfoot td {
font-size:0.8em;
}
/* line */
hr {
border-width:0 0 1px 0;
border-color:#ddd;
border-style:solid;
margin:1em;
}
@@ -0,0 +1,29 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="{$lang_info.code}" dir="{$lang_info.direction}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={$CONTENT_ENCODING}"/>
<title>Piwigo Mail</title>
<style type="text/css">
{if isset($GLOBAL_MAIL_CSS)}{$GLOBAL_MAIL_CSS}{/if}
{if isset($MAIL_CSS)}{$MAIL_CSS}{/if}
</style>
</head>
<body>
<table id="bodyTable" cellspacing="0" cellpadding="10" border="0">
<tr><td align="center" valign="top">
<table id="contentTable" cellspacing="0" cellpadding="0" border="0">
<tr><td id="header">
{* <!-- begin HEADER --> *}
<div id="title">{$MAIL_TITLE}</div>
{if not empty($MAIL_SUBTITLE)}<div id="subtitle">{$MAIL_SUBTITLE}</div>{/if}
{* <!-- end HEADER --> *}
</td></tr>
<tr><td id="content">
{* <!-- use an invisible div with a bottom margin to force the browser
to merge the margin with the element bellow (typically h1/h2/...) --> *}
<div id="topSpacer"></div>
{* <!-- begin CONTENT --> *}
@@ -0,0 +1,15 @@
<?php
// +-----------------------------------------------------------------------+
// | This file is part of Piwigo. |
// | |
// | For copyright and license information, please view the COPYING.txt |
// | file that was distributed with this source code. |
// +-----------------------------------------------------------------------+
// Recursive call
$url = '../';
header( 'Request-URI: '.$url );
header( 'Content-Location: '.$url );
header( 'Location: '.$url );
exit();
?>
@@ -0,0 +1,71 @@
/* page */
body {
color:#111;
}
html, body, #bodyTable {
background:#fff;
}
#contentTable {
width:600px;
}
/* main block */
#header {
background:#eee;
background-image:radial-gradient(ellipse at center, #fefefe, #e5e5e5);
border-top:4px solid #f70;
text-align:center;
text-shadow:1px 1px 0px #fff;
}
#header #subtitle {
color:#e06900;
}
#content {
background:#fefefe;
border-width:1px;
border-style:solid;
border-color:#ddd #eee;
box-shadow:inset 0 0 20px #eee;
}
#footer {
background:#eee;
border-bottom:2px solid #f70;
}
/* links */
a {
color:#f70;
text-decoration:none;
}
a:hover {
text-decoration:underline;
}
/* images */
img.photo {
border:10px solid #ddd;
}
img.photo:hover {
border-color:#eee;
}
/* paragraphs */
blockquote {
border-left:2px solid #aaa;
border-radius:2px;
}
/* tables */
#content table td {
border-bottom:1px solid #efefef;
}
#content table th {
background:#aaa;
color:#fff;
border-right:1px solid #ddd;
}
#content table tfoot td {
background:#eee;
border-right:1px solid #fff;
}
@@ -0,0 +1,85 @@
/* page */
body {
color:#fff;
}
html, body, #bodyTable {
background:#111;
}
#contentTable {
width:600px;
}
/* main block */
#header {
background:#444;
background-image:radial-gradient(ellipse at center, #555, #333);
border:1px solid #000;
border-top:4px solid #f36;
text-align:center;
text-shadow:1px 1px 0px #000;
}
#header #title {
color:#eee;
}
#header #subtitle {
color:#C9224C;
}
#content {
background:#111;
border-width:1px;
border-style:solid;
border-color:#666 #000;
box-shadow:inset 0 0 20px #333;
}
#footer {
background:#333;
border:1px solid #000;
border-bottom:2px solid #f36;
}
/* links */
a {
color:#f36;
text-decoration:none;
}
a:hover {
text-decoration:underline;
}
/* images */
img.photo {
border:10px solid #666;
}
img.photo:hover {
border-color:#999;
}
h1, h2, h3, h4, h5 {
color:#bbb;
}
/* paragraphs */
blockquote {
border-left:2px solid #aaa;
border-radius:2px;
}
/* tables */
#content table td {
border-bottom:1px solid #999;
}
#content table th {
background:#666;
border-right:1px solid #aaa;
}
#content table tfoot td {
background:#444;
color:#aaa;
border-right:1px solid #aaa;
}
/* line */
hr {
border-color:#555;
}
@@ -0,0 +1,9 @@
{$CONTENT}
{if isset($TECHNICAL)}
<p style="padding-top:10px;font-size:11px;">
{'Connected user: %s'|translate:$TECHNICAL.username}<br>
{'IP: %s'|translate:$TECHNICAL.ip}<br>
{'Browser: %s'|translate:$TECHNICAL.user_agent}
</p>
{/if}
@@ -0,0 +1,56 @@
<div id="nbm_message">
<h2>{'Notification'|@translate}</h2>
<p>{'Hello'|@translate} {$USERNAME},</p>
{if isset($subscribe_by_admin)}
<p>{'The webmaster has subscribed you to receiving notifications by mail.'|@translate}</p>
{/if}
{if isset($subscribe_by_himself)}
<p>{'You have subscribed to receiving notifications by mail.'|@translate}</p>
{/if}
{if isset($unsubscribe_by_admin)}
<p>{'The webmaster has unsubscribed you from receiving notifications by mail.'|@translate}</p>
{/if}
{if isset($unsubscribe_by_himself)}
<p>{'You have unsubscribed from receiving notifications by mail.'|@translate}</p>
{/if}
{if isset($content_new_elements_single)}
<p>{'New photos were added'|@translate} {'on'|@translate} {$content_new_elements_single.DATE_SINGLE}.</p>
{/if}
{if isset($content_new_elements_between)}
<p>{'New photos were added'|@translate} {'between'|@translate} {$content_new_elements_between.DATE_BETWEEN_1} {'and'|@translate} {$content_new_elements_between.DATE_BETWEEN_2}.</p>
{/if}
{if not empty($global_new_lines)}
<ul id="nbm_new_line">
{foreach from=$global_new_lines item=line}
<li>{$line}</li>
{/foreach}
</ul>
{/if}
{if not empty($custom_mail_content)}
<p>{$custom_mail_content}</p>
{/if}
{if not empty($GOTO_GALLERY_TITLE)}
<p>{'Go to'|@translate} <a href="{$GOTO_GALLERY_URL}">{$GOTO_GALLERY_TITLE}</a>.</p>
{/if}
<p>{'See you soon,'|@translate}</p>
<p style="text-align:center">{$SEND_AS_NAME}</p>
<hr>
<p>
{'To unsubscribe'|@translate}{', click on'|@translate} <a href="{$UNSUBSCRIBE_LINK}">{$UNSUBSCRIBE_LINK}</a><br>
{'To subscribe'|@translate}{', click on'|@translate} <a href="{$SUBSCRIBE_LINK}">{$SUBSCRIBE_LINK}</a><br>
{'If you encounter problems or have any question, please send a message to'|@translate} <a href="mailto:{$CONTACT_EMAIL}?subject={'[NBM] Problems or questions'|@translate}">{$CONTACT_EMAIL}</a><br>
</p>
<hr>
{if not empty($recent_posts)}
</div>
<div id="nbm_recent_post">
{foreach from=$recent_posts item=recent_post }
<h2>{$recent_post.TITLE}</h2>
{$recent_post.HTML_DATA}
{/foreach}
{/if}
</div>
@@ -0,0 +1,15 @@
<?php
// +-----------------------------------------------------------------------+
// | This file is part of Piwigo. |
// | |
// | For copyright and license information, please view the COPYING.txt |
// | file that was distributed with this source code. |
// +-----------------------------------------------------------------------+
// Recursive call
$url = '../';
header( 'Request-URI: '.$url );
header( 'Content-Location: '.$url );
header( 'Location: '.$url );
exit();
?>
@@ -0,0 +1,8 @@
{'Hello,'|@translate}
{'Discover album:'|@translate} {$CAT_NAME}
{$LINK}
{$CPL_CONTENT}
{'See you soon.'|@translate}
@@ -0,0 +1,7 @@
{literal}
{/literal}
----
{'Sent by'|@translate} "{$GALLERY_TITLE}" {$GALLERY_URL}
{'Powered by'|@translate} "Piwigo{if not empty($VERSION)} {$VERSION}{/if}" {$PHPWG_URL}
{'Contact'|@translate}: {$CONTACT_MAIL}
@@ -0,0 +1,6 @@
{$MAIL_TITLE}
{if not empty($MAIL_SUBTITLE)}{$MAIL_SUBTITLE}
{/if}
----
{literal}
{/literal}
@@ -0,0 +1,15 @@
<?php
// +-----------------------------------------------------------------------+
// | This file is part of Piwigo. |
// | |
// | For copyright and license information, please view the COPYING.txt |
// | file that was distributed with this source code. |
// +-----------------------------------------------------------------------+
// Recursive call
$url = '../';
header( 'Request-URI: '.$url );
header( 'Content-Location: '.$url );
header( 'Location: '.$url );
exit();
?>
@@ -0,0 +1,8 @@
{$CONTENT}
{if isset($TECHNICAL)}
-----------------------------
{'Connected user: %s'|translate:$TECHNICAL.username}
{'IP: %s'|translate:$TECHNICAL.ip}
{'Browser: %s'|translate:$TECHNICAL.user_agent}
{/if}
@@ -0,0 +1,41 @@
{'Hello'|@translate} {$USERNAME},
{if isset($subscribe_by_admin)}
{'The webmaster has subscribed you to receiving notifications by mail.'|@translate}
{/if}
{if isset($subscribe_by_himself)}
{'You have subscribed to receiving notifications by mail.'|@translate}
{/if}
{if isset($unsubscribe_by_admin)}
{'The webmaster has unsubscribed you from receiving notifications by mail.'|@translate}
{/if}
{if isset($unsubscribe_by_himself)}
{'You have unsubscribed from receiving notifications by mail.'|@translate}
{/if}
{if isset($content_new_elements_single)}
{'New photos were added'|@translate} {'on'|@translate} {$content_new_elements_single.DATE_SINGLE}.
{/if}
{if isset($content_new_elements_between)}
{'New photos were added'|@translate} {'between'|@translate} {$content_new_elements_between.DATE_BETWEEN_1} {'and'|@translate} {$content_new_elements_between.DATE_BETWEEN_2}.
{/if}
{if not empty($global_new_lines)}
{foreach from=$global_new_lines item=line}
o {$line}
{/foreach}
{/if}
{if not empty($custom_mail_content)}
{$custom_mail_content}
{/if}
{if not empty($GOTO_GALLERY_TITLE)}
.{$GOTO_GALLERY_TITLE} {$GOTO_GALLERY_URL} .
{/if}
{'See you soon,'|@translate}
{$SEND_AS_NAME}
______________________________________________________________________________
{'To unsubscribe'|@translate}{', click on'|@translate} {$UNSUBSCRIBE_LINK}
{'To subscribe'|@translate}{', click on'|@translate} {$SUBSCRIBE_LINK}
{'If you encounter problems or have any question, please send a message to'|@translate} {$CONTACT_EMAIL}
______________________________________________________________________________
@@ -0,0 +1,48 @@
{strip}{html_style}
.thumbnailCategory .illustration{ldelim}
width: {$derivative_params->max_width()+5}px;
}
.content .thumbnailCategory .description{ldelim}
height: {$derivative_params->max_height()+5}px;
}
{/html_style}{/strip}
{footer_script}
var error_icon = "{$ROOT_URL}{$themeconf.icon_dir}/errors_small.png", max_requests = {$maxRequests};
{/footer_script}
<div class="loader"><img src="{$ROOT_URL}{$themeconf.img_dir}/ajax_loader.gif"></div>
<ul class="thumbnailCategories">
{foreach from=$category_thumbnails item=cat name=cat_loop}
{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}
<li class="{if $smarty.foreach.cat_loop.index is odd}odd{else}even{/if}">
<div class="thumbnailCategory">
<div class="illustration">
<a href="{$cat.URL}">
<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="{$cat.TN_ALT}" title="{$cat.NAME|@replace:'"':' '|@strip_tags:false} - {'display this album'|@translate}">
</a>
</div>
<div class="description">
<h3>
<a href="{$cat.URL}">{$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}
</h3>
<div class="text">
{if isset($cat.INFO_DATES) }
<p class="dates">{$cat.INFO_DATES}</p>
{/if}
<p class="Nb_images">{$cat.CAPTION_NB_IMAGES}</p>
{if not empty($cat.DESCRIPTION)}
<p>{$cat.DESCRIPTION}</p>
{/if}
</div>
</div>
</div>
</li>
{/foreach}
</ul>
@@ -0,0 +1,13 @@
{if !empty($blocks) }
<div id="menubar">
{foreach from=$blocks key=id item=block}
<dl id="{$id}">
{if not empty($block->template)}
{include file=$block->template|@get_extent:$id }
{else}
{$block->raw_content}
{/if}
</dl>
{/foreach}
</div><div id="menuSwitcher"></div>
{/if}
@@ -0,0 +1,32 @@
<dt>
{if isset($U_START_FILTER)}
<a href="{$U_START_FILTER}" class="pwg-state-default pwg-button menubarFilter" title="{'display only recently posted photos'|@translate}" rel="nofollow"><span class="pwg-icon pwg-icon-filter"> </span></a>
{/if}
{if isset($U_STOP_FILTER)}
<a href="{$U_STOP_FILTER}" class="pwg-state-default pwg-button menubarFilter" title="{'return to the display of all photos'|@translate}"><span class="pwg-icon pwg-icon-filter-del"> </span></a>
{/if}
<a href="{$block->data.U_CATEGORIES}">{'Albums'|@translate}</a>
</dt>
<dd>
{assign var='ref_level' value=0}
{foreach from=$block->data.MENU_CATEGORIES item=cat}
{if $cat.LEVEL > $ref_level}
<ul>
{else}
</li>
{'</ul></li>'|@str_repeat:($ref_level-$cat.LEVEL)}
{/if}
<li {if $cat.SELECTED}class="selected"{/if}>
<a href="{$cat.URL}" {if $cat.IS_UPPERCAT}rel="up"{/if} title="{$cat.TITLE}">{$cat.NAME}</a>
{if $cat.count_images > 0}
<span class="{if $cat.nb_images > 0}menuInfoCat{else}menuInfoCatByChild{/if} 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}
{assign var='ref_level' value=$cat.LEVEL}
{/foreach}
{'</li></ul>'|@str_repeat:$ref_level}
<p class="totalImages">{$block->data.NB_PICTURE|@translate_dec:'%d photo':'%d photos'}</p>
</dd>
@@ -0,0 +1,64 @@
<dt>{'Identification'|@translate}</dt>
<dd>
{strip}
{if isset($USERNAME)}
<p>{'Hello'|@translate} {$USERNAME} !</p>
{/if}
<ul>
{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_LOGIN)}
<li><a href="{$U_LOGIN}" rel="nofollow">{'Login'|@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="{'edit user preferences'|@translate}">{'Profile'|@translate}</a></li>
{/if}
{if isset($U_ADMIN)}
<li><a href="{$U_ADMIN}" title="{'available for administrators only'|@translate}">{'Administration'|@translate}</a></li>
{/if}
</ul>
{/strip}
{if isset($U_LOGIN)}
{strip}
<form method="post" action="{$U_LOGIN}" id="quickconnect">
<fieldset>
<legend>{'Quick connect'|@translate}</legend>
<div>
<label for="username">{'Username'|@translate}</label><br>
<input type="text" name="username" id="username" value="" style="width:99%">
</div>
<div><label for="password">{'Password'|@translate}</label><br>
<input type="password" name="password" id="password" style="width:99%">
</div>
{if $AUTHORIZE_REMEMBERING}
<div><label for="remember_me">
<input type="checkbox" name="remember_me" id="remember_me" value="1"> {'Auto login'|@translate}
</label></div>
{/if}
<div>
<input type="hidden" name="redirect" value="{$smarty.server.REQUEST_URI|@urlencode}">
<input type="submit" name="login" value="{'Submit'|@translate}">
<span class="categoryActions">
{if isset($U_REGISTER)}
<a href="{$U_REGISTER}" title="{'Create a new account'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-register"> </span>
</a>
{/if}
<a href="{$U_LOST_PASSWORD}" title="{'Forgot your password?'|@translate}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-lost-password"> </span>
</a>
</span>
</div>
</fieldset>
</form>
{/strip}
{/if}
</dd>
@@ -0,0 +1,12 @@
<dt>{'Links'|@translate}</dt>
<dd>
<ul>{strip}
{foreach from=$block->data item=link}
<li>
<a href="{$link.URL}" class="external"{if isset($link.new_window)} onclick="window.open(this.href, '{$link.new_window.NAME}','{$link.new_window.FEATURES}'); return false;"{/if}>
{$link.LABEL}
</a>
</li>
{/foreach}
{/strip}</ul>
</dd>
@@ -0,0 +1,18 @@
<dt>{'Menu'|@translate}</dt>
<dd>
{if isset($block->data.qsearch) and $block->data.qsearch==true}
<form action="{$ROOT_URL}qsearch.php" method="get" id="quicksearch" onsubmit="return this.q.value!='' && this.q.value!=qsearch_prompt;">
<p style="margin:0;padding:0"{*this <p> is for html validation only - does not affect positioning*}>
<input type="text" name="q" id="qsearchInput" onfocus="if (value==qsearch_prompt) value='';" onblur="if (value=='') value=qsearch_prompt;" style="width:90%"{if !empty($QUERY_SEARCH)} value="{$QUERY_SEARCH}"{/if}>
</p>
</form>
<script type="text/javascript">var qsearch_prompt="{'Quick search'|@translate|@escape:'javascript'}";{if empty($QUERY_SEARCH)}document.getElementById('qsearchInput').value=qsearch_prompt;{/if}</script>
{/if}
<ul>{strip}
{foreach from=$block->data item=link}
{if is_array($link)}
<li><a href="{$link.URL}"{if isset($link.TITLE)} title="{$link.TITLE}"{/if}{if isset($link.REL)} {$link.REL}{/if}>{$link.NAME}</a>{if isset($link.COUNTER)} ({$link.COUNTER}){/if}</li>
{/if}
{/foreach}
{/strip}</ul>
</dd>
@@ -0,0 +1,28 @@
<dt>
{'Related albums'|@translate}
</dt>
<dd>
{assign var='ref_level' value=0}
{foreach from=$block->data.MENU_CATEGORIES item=cat}
{if $cat.LEVEL > $ref_level}
<ul>
{else}
</li>
{'</ul></li>'|@str_repeat:($ref_level-$cat.LEVEL)}
{/if}
<li>
{if isset($cat.TITLE)}
<a href="{if isset($cat.url)}{$cat.url}{/if}" title="{$cat.TITLE}" rel="nofollow">{$cat.name}</a>
{else}
<a href="{if isset($cat.url)}{$cat.url}{/if}" rel="nofollow">{$cat.name}</a>
{/if}
{if isset($cat.count_images) and $cat.count_images > 0}
<span class="badge" title="{$cat.count_images|translate_dec:'%d photo':'%d photos'}">{$cat.count_images}</span>
{/if}
{if isset($cat.count_categories) and $cat.count_categories > 0}
<span class="badge badgeCategories" title="{'sub-albums'|translate}">{$cat.count_categories}</span>
{/if}
{assign var='ref_level' value=$cat.LEVEL}
{/foreach}
{'</li></ul>'|@str_repeat:$ref_level}
</dd>
@@ -0,0 +1,8 @@
<dt>{'Specials'|@translate}</dt>
<dd>
<ul>{strip}
{foreach from=$block->data item=link}
<li><a href="{$link.URL}" title="{$link.TITLE}"{if isset($link.REL)} {$link.REL}{/if}>{$link.NAME}</a></li>
{/foreach}
{/strip}</ul>
</dd>
@@ -0,0 +1,16 @@
<dt>{'Tags'|@translate}</dt>
<dd>
<div id="menuTagCloud">
{foreach from=$block->data item=tag}
<span>{strip}
<a class="tagLevel {if isset($tag.level)}{$tag.level}{/if}" 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></span>{/strip}
{* ABOVE there should be no space between text, </a> and </span> elements to avoid IE8 bug https://connect.microsoft.com/IE/feedback/ViewFeedback.aspx?FeedbackID=366567 *}
{/foreach}
</div>
</dd>
@@ -0,0 +1,81 @@
{if !empty($chronology_navigation_bars)}
{foreach from=$chronology_navigation_bars item=bar}
<div class="calendarBar">
{if isset($bar.previous)}
<div style="float:left;margin-right:5px">&laquo; <a href="{$bar.previous.URL}">{$bar.previous.LABEL}</a></div>
{/if}
{if isset($bar.next)}
<div style="float:right;margin-left:5px"><a href="{$bar.next.URL}">{$bar.next.LABEL}</a> &raquo;</div>
{/if}
{if empty($bar.items)}
&nbsp;
{else}
{foreach from=$bar.items item=item}
{if !isset($item.URL)}
<span class="calItem">{$item.LABEL}</span>
{else}
<a class="calItem"{if isset($item.NB_IMAGES)} title="{$item.NB_IMAGES|@translate_dec:'%d photo':'%d photos'}"{/if} href="{$item.URL}">{$item.LABEL}</a>
{/if}
{/foreach}
{/if}
</div>
{/foreach}
{/if}
{if !empty($chronology_calendar.calendar_bars)}
{foreach from=$chronology_calendar.calendar_bars item=bar}
<div class="calendarCalBar">
<span class="calCalHead"><a href="{$bar.U_HEAD}">{$bar.HEAD_LABEL}</a> ({$bar.NB_IMAGES})</span><br>
{foreach from=$bar.items item=item}
<span class="calCal{if !isset($item.URL)}Empty{/if}">
{if isset($item.URL)}
<a href="{$item.URL}">{$item.LABEL}</a>
{else}
{$item.LABEL}
{/if}
{if isset($item.NB_IMAGES)}({$item.NB_IMAGES}){/if}
</span>
{/foreach}
</div>
{/foreach}
{/if}
{if isset($chronology_calendar.month_view)}
<table class="calMonth">
<thead>
<tr>
{foreach from=$chronology_calendar.month_view.wday_labels item=wday}
<th>{$wday}</th>
{/foreach}
</tr>
</thead>
{html_style}
.calMonth TD, .calMonth .calImg{
width:{$chronology_calendar.month_view.CELL_WIDTH}px;height:{$chronology_calendar.month_view.CELL_HEIGHT}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="calBackDate">{$day.DAY}</div><div class="calForeDate">{$day.DAY}</div>
<div class="calImg">
<a href="{$day.U_IMG_LINK}">
<img 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>
{/if}
@@ -0,0 +1,28 @@
<div class="navigationBar">
{if isset($navbar.URL_FIRST)}
<span class="navFirstLast"><a href="{$navbar.URL_FIRST}" rel="first">{'First'|@translate}</a> |</span>
<span class="navPrevNext"><a href="{$navbar.URL_PREV}" rel="prev">{'Previous'|@translate}</a> |</span>
{else}
<span class="navFirstLast">{'First'|@translate} |</span>
<span class="navPrevNext">{'Previous'|@translate} |</span>
{/if}
{assign var='prev_page' value=0}
{foreach from=$navbar.pages key=page item=url}
{if $page > $prev_page+1}...{/if}
{if $page == $navbar.CURRENT_PAGE}
<span class="pageNumberSelected">{$page}</span>
{else}
<a href="{$url}">{$page}</a>
{/if}
{assign var='prev_page' value=$page}
{/foreach}
{if isset($navbar.URL_NEXT)}
<span class="navPrevNext">| <a href="{$navbar.URL_NEXT}" rel="next">{'Next'|@translate}</a></span>
<span class="navFirstLast">| <a href="{$navbar.URL_LAST}" rel="last">{'Last'|@translate}</a></span>
{else}
<span class="navPrevNext">| {'Next'|@translate}</span>
<span class="navFirstLast">| {'Last'|@translate}</span>
{/if}
</div>
@@ -0,0 +1,11 @@
{if isset($MENUBAR)}{$MENUBAR}{/if}
<div id="content" class="content">
<div class="titrePage">
<ul class="categoryActions">
</ul>
<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Notification'|@translate}</h2>
</div>
{include file='infos_errors.tpl'}
</div>
@@ -0,0 +1,154 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="themes/default/theme.css">
<title>Piwigo, {'Welcome'|@translate}</title>
{literal}
<style type="text/css">
body {
margin: 0;
padding: 0;
background-color:#f9f9f9;
}
P {text-align:center;}
TD {color:#888; letter-spacing:1px;}
#global {
position:absolute;
left: 50%;
top: 50%;
width: 700px;
height: 400px;
margin-top: -200px; /* height half */
margin-left: -350px; /* width half */
background-color: #f1f1f1;
border:2px solid #dddddd;
}
#noPhotoWelcome {font-size:25px; color:#555;text-align:center; letter-spacing:1px; margin-top:30px;}
.bigButton {}
.bigButton {text-align:center; margin-top:120px;}
.bigButton a {
background-color:#666;
padding:10px;
text-decoration:none;
margin:0px 5px 0px 5px;
-moz-border-radius:6px;
-webkit-border-radius:6px;
color:#fff;
font-size:25px;
letter-spacing:2px;
padding:20px;
}
.bigButton a:hover {
background-color:#ff7700;
outline:none;
color:#fff;
border:none;
}
#deactivate {
position:absolute;
bottom:10px;
text-align:center;
width:100%;
font-style:normal;
font-size:1.0em;
}
.submit {font-size:1.0em; letter-spacing:2px; font-weight:normal;}
#deactivate A {
text-decoration:none;
border:none;
color:#f70;
}
#deactivate A:hover {
border-bottom:1px dotted #f70;
}
#quickconnect {
margin:0 auto;
margin-top:60px;
width:300px;
color:#555;
font-size:14px;
letter-spacing:1px;
}
#quickconnect input[type="text"], #quickconnect input[type="password"] {
width:300px;
color:#555;
font-size:20px;
margin-top:3px;
background-color:#ddd;
border:2px solid #ccc;
-moz-border-radius:5px;
padding:2px;
}
#quickconnect input[type="text"]:focus, #quickconnect input[type="password"]:focus {
background-color:#fff;
border:2px solid #ff7700;
}
#quickconnect input[type="submit"] {
font-size:14px;
font-weight:bold;
letter-spacing:2px;
border:none;
background-color:#666666;
color:#fff;
padding:5px;
-moz-border-radius:5px;
}
#quickconnect input[type="submit"]:hover {
background-color:#ff7700;
color:white;
}
</style>
{/literal}
</head>
<body>
<div id="global">
{if $step == 1}
<p id="noPhotoWelcome">{'Welcome to your Piwigo photo gallery!'|@translate}</p>
<form method="post" action="{$U_LOGIN}" id="quickconnect">
{'Username'|@translate}
<br><input type="text" name="username">
<br>
<br>{'Password'|@translate}
<br><input type="password" name="password">
<p><input class="submit" type="submit" name="login" value="{'Login'|@translate}"></p>
</form>
<div id="deactivate"><a href="{$deactivate_url}">{'... or browse your empty gallery'|@translate}</a></div>
{else}
<p id="noPhotoWelcome">{$intro}</p>
<div class="bigButton"><a href="{$next_step_url}">{'I want to add photos'|@translate}</a></div>
<div id="deactivate"><a href="{$deactivate_url}">{'... or please deactivate this message, I will find my way by myself'|@translate}</a></div>
{/if}
</div>
</body>
</html>
@@ -0,0 +1,29 @@
{html_head}
<link rel="alternate" type="application/rss+xml" title="{'Photos only RSS feed'|@translate}" href="{$U_FEED_IMAGE_ONLY}">
<link rel="alternate" type="application/rss+xml" title="{'Complete RSS feed (photos, comments)'|@translate}" href="{$U_FEED}">
{/html_head}
{if isset($MENUBAR)}{$MENUBAR}{/if}
<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
<div class="titrePage">
<ul class="categoryActions">
</ul>
<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Notification'|@translate}</h2>
</div>
{include file='infos_errors.tpl'}
<div class="notification">
<p>{'The RSS notification feed provides notification on news from this website : new photos, updated albums, new comments. Use a RSS feed reader.'|@translate}</p>
<dl>
<dt>
<a href="{$U_FEED_IMAGE_ONLY}">{'Photos only RSS feed'|@translate}</a><br><br>
</dt>
<dt>
<a href="{$U_FEED}">{'Complete RSS feed (photos, comments)'|@translate}</a>
</dt>
</dl>
</div>
</div>
@@ -0,0 +1,79 @@
{if isset($MENUBAR)}{$MENUBAR}{/if}
<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
<div class="titrePage">
<ul class="categoryActions">
</ul>
<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{$title}</h2>
</div>
{include file='infos_errors.tpl'}
{if $action ne 'none'}
<form id="lostPassword" action="{$form_action}?action={$action}{if isset($key)}&amp;key={$key}{/if}" method="post">
<fieldset>
{if !isset($is_first_login)}<legend>{'Forgot your password?'|translate}</legend>{/if}
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
{if $action eq 'lost'}
<div class="message">{'Please enter your username or email address.'|@translate} {'You will receive a link to create a new password via email.'|@translate}</div>
<p>
<label>
{'Username or email'|@translate}
<br>
<input type="text" id="username_or_email" name="username_or_email" size="100" maxlength="100"{if isset($username_or_email)} value="{$username_or_email}"{/if}>
</label>
</p>
<p class="bottomButtons"><input type="submit" name="submit" value="{'Change my password'|@translate}"></p>
{elseif $action eq 'lost_code'}
<div>
<div class="message">{"If you do not receive the email, please contact your webmaster."|translate}</div>
<label>
{'Verification code'|@translate}
<br>
<input type="text" id="user_code" name="user_code" size="100" />
</label>
<p class="bottomButtons"><input type="submit" name="submit" value="{'Verify'|@translate}"></p>
</div>
{elseif $action eq 'reset'}
<div class="message">
{'Hello'|@translate} <em>{$username}</em>. {if !isset($is_first_login)}{'Enter your new password below.'|@translate}{else}{'Set your password below.'|translate}{/if}
</div>
<p>
<label>
{if !isset($is_first_login)}{'New password'|@translate}{else}{'Password'|translate}{/if}
<br>
<input type="password" name="use_new_pwd" id="use_new_pwd" value="">
</label>
</p>
<p>
<label>
{'Confirm Password'|@translate}
<br>
<input type="password" name="passwordConf" id="passwordConf" value="">
</label>
</p>
</fieldset>
<p class="bottomButtons"><input type="submit" name="submit" value="{'Submit'|@translate}"></p>
{/if}
</form>
{/if} {* $action ne 'none' *}
<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}
{elseif $action eq 'lost_code'}
{literal}try{document.getElementById('user_code').focus();}catch(e){}{/literal}
{/if}
</script>
</div> <!-- content -->
@@ -0,0 +1,368 @@
{combine_script id='core.switchbox' load='async' require='jquery' path='themes/default/js/switchbox.js'}
{if isset($MENUBAR)}{$MENUBAR}{/if}
<div id="content"{if isset($MENUBAR)} class="contentWithMenu"{/if}>
{if isset($errors) or not empty($infos)}
{include file='infos_errors.tpl'}
{/if}
{if !empty($PLUGIN_PICTURE_BEFORE)}{$PLUGIN_PICTURE_BEFORE}{/if}
<div id="imageHeaderBar">
<div class="browsePath">
{$SECTION_TITLE}<span class="browsePathSeparator">{$LEVEL_SEPARATOR}</span><h2>{$current.TITLE}</h2>
</div>
</div>
<div id="imageToolBar">
<div class="imageNumber">{$PHOTO}</div>
{include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'}
<div class="actionButtons">
{if isset($current.unique_derivatives) && count($current.unique_derivatives)>1}
{footer_script require='jquery'}{literal}
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('#derivativeSwitchBox .switchCheck').css('visibility','hidden');
jQuery('#derivativeChecked'+typeMap).css('visibility','visible');
document.cookie = 'picture_deriv='+typeSave+';path={/literal}{$COOKIE_PATH}{literal}';
}
(window.SwitchBox=window.SwitchBox||[]).push("#derivativeSwitchLink", "#derivativeSwitchBox");
{/literal}{/footer_script}
{strip}<a id="derivativeSwitchLink" title="{'Photo sizes'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-sizes"></span><span class="pwg-button-text">{'Photo sizes'|@translate}</span>
</a>
<div id="derivativeSwitchBox" class="switchBox">
<div class="switchBoxTitle">{'Photo sizes'|@translate}</div>
{foreach from=$current.unique_derivatives item=derivative key=derivative_type}
<span class="switchCheck" id="derivativeChecked{$derivative->get_type()}"{if $derivative->get_type() ne $current.selected_derivative->get_type()} style="visibility:hidden"{/if}>&#x2714; </span>
<a href="javascript:changeImgSrc('{$derivative->get_url()|@escape:javascript}','{$derivative_type}','{$derivative->get_type()}')">
{$derivative->get_type()|@translate}<span class="derivativeSizeDetails"> ({$derivative->get_size_hr()})</span>
</a><br>
{/foreach}
{if isset($U_ORIGINAL)}
{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
<a href="javascript:phpWGOpenWindow('{$U_ORIGINAL}','xxx','scrollbars=yes,toolbar=no,status=no,resizable=yes')" rel="nofollow">{'Original'|@translate}</a>
{/if}
</div>
{/strip}
{/if}
{strip}{if isset($U_SLIDESHOW_START)}
<a href="{$U_SLIDESHOW_START}" title="{'slideshow'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-slideshow"></span><span class="pwg-button-text">{'slideshow'|@translate}</span>
</a>
{/if}{/strip}
{strip}{if isset($U_METADATA)}
<a href="{$U_METADATA}" title="{'Show file metadata'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-camera-info"></span><span class="pwg-button-text">{'Show file metadata'|@translate}</span>
</a>
{/if}{/strip}
{strip}{if isset($current.U_DOWNLOAD)}
<a id="downloadSwitchLink" href="{$current.U_DOWNLOAD}" title="{'Download this file'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-save"></span><span class="pwg-button-text">{'Download'|@translate}</span>
</a>
{if !empty($current.formats)}
{footer_script require='jquery'}{literal}
jQuery().ready(function() {
jQuery("#downloadSwitchLink").removeAttr("href");
(window.SwitchBox=window.SwitchBox||[]).push("#downloadSwitchLink", "#downloadSwitchBox");
});
{/literal}{/footer_script}
<div id="downloadSwitchBox" class="switchBox">
<div class="switchBoxTitle">{'Download'|translate} - {'Formats'|translate}</div>
<ul>
{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>
</div>
{/if} {* has formats *}
{/if}{/strip}
{if isset($PLUGIN_PICTURE_BUTTONS)}{foreach from=$PLUGIN_PICTURE_BUTTONS item=button}{$button}{/foreach}{/if}
{if isset($PLUGIN_PICTURE_ACTIONS)}{$PLUGIN_PICTURE_ACTIONS}{/if}
{strip}{if isset($favorite)}
<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}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-favorite-{if $favorite.IS_FAVORITE}del{else}add{/if}"></span><span class="pwg-button-text">{'Favorites'|@translate}</span>
</a>
{/if}{/strip}
{strip}{if isset($U_SET_AS_REPRESENTATIVE)}
<a id="cmdSetRepresentative" href="{$U_SET_AS_REPRESENTATIVE}" title="{'set as album representative'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-representative"></span><span class="pwg-button-text">{'representative'|@translate}</span>
</a>
{/if}{/strip}
{strip}{if isset($U_PHOTO_ADMIN)}
<a id="cmdEditPhoto" href="{$U_PHOTO_ADMIN}" title="{'Edit photo'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-edit"></span><span class="pwg-button-text">{'Edit'|@translate}</span>
</a>
{/if}{/strip}
{strip}{if isset($U_CADDIE)}{*caddie management BEGIN*}
{footer_script}
{literal}function addToCadie(aElement, rootUrl, id)
{
if (aElement.disabled) return;
aElement.disabled=true;
var y = new PwgWS(rootUrl);
y.callService(
"pwg.caddie.add", {image_id: id} ,
{
onFailure: function(num, text) { alert(num + " " + text); document.location=aElement.href; },
onSuccess: function(result) { aElement.disabled = false; }
}
);
}{/literal}
{/footer_script}
<a href="{$U_CADDIE}" onclick="addToCadie(this, '{$ROOT_URL}', {$current.id}); return false;" title="{'Add to caddie'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-caddie-add"> </span><span class="pwg-button-text">{'Caddie'|@translate}</span>
</a>
{/if}{/strip}{*caddie management END*}
</div>
</div>{*<!-- imageToolBar -->*}
<div id="theImageAndInfos">
<div id="theImage">
{$ELEMENT_CONTENT}
{if isset($COMMENT_IMG)}
<p class="imageComment">{$COMMENT_IMG}</p>
{/if}
{if isset($U_SLIDESHOW_STOP)}
<p>
[ <a href="{$U_SLIDESHOW_STOP}">{'stop the slideshow'|@translate}</a> ]
</p>
{/if}
</div>{*<!-- no significant white space for elegant-->
*}<div id="infoSwitcher"></div>{*<!-- no significant white space for elegant-->
*}<div id="imageInfos">
{if $DISPLAY_NAV_THUMB}
<div class="navThumbs">
{if isset($previous)}
<a class="navThumb" id="linkPrev" href="{$previous.U_IMG}" title="{'Previous'|@translate} : {$previous.TITLE_ESC}" rel="prev">
<span class="thumbHover prevThumbHover"></span>
<img class="{if (isset($previous.path_ext) and $previous.path_ext == 'svg')}svgImg{/if}" src="{if (isset($previous.path_ext) and $previous.path_ext == 'svg')}{$previous.path}{else}{$previous.derivatives.square->get_url()}{/if}" alt="{$previous.TITLE_ESC}">
</a>
{elseif isset($U_UP)}
<a class="navThumb" id="linkPrev" href="{$U_UP}" title="{'Thumbnails'|@translate}">
<div class="thumbHover">{'First Page'|@translate}<br><br>{'Go back to the album'|@translate}</div>
</a>
{/if}
{if isset($next)}
<a class="navThumb" id="linkNext" href="{$next.U_IMG}" title="{'Next'|@translate} : {$next.TITLE_ESC}" rel="next">
<span class="thumbHover nextThumbHover"></span>
<img class="{if (isset($next.path_ext) and $next.path_ext == 'svg')}svgImg{/if}" src="{if (isset($next.path_ext) and $next.path_ext == 'svg')}{$next.path}{else}{$next.derivatives.square->get_url()}{/if}" alt="{$next.TITLE_ESC}">
</a>
{elseif isset($U_UP)}
<a class="navThumb" id="linkNext" href="{$U_UP}" title="{'Thumbnails'|@translate}">
<div class="thumbHover">{'Last Page'|@translate}<br><br>{'Go back to the album'|@translate}</div>
</a>
{/if}
</div>
{/if}
<dl id="standard" class="imageInfoTable">
{strip}
{if $display_info.author and isset($INFO_AUTHOR)}
<div id="Author" class="imageInfo">
<dt>{'Author'|@translate}</dt>
<dd>{$INFO_AUTHOR}</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.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>
<ul>
{foreach from=$related_categories item=cat}
<li>{$cat}</li>
{/foreach}
</ul>
</dd>
</div>
{/if}
{if $display_info.visits}
<div id="Visits" class="imageInfo">
<dt>{'Visits'|@translate}</dt>
<dd>{$INFO_VISITS}</dd>
</div>
{/if}
{if isset($PDF_NB_PAGES) and $current.path_ext=="pdf" }
<div id="Pages" class="imageInfo">
<dt>{'Pages'|@translate}</dt>
<dd>{$PDF_NB_PAGES}</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>
<span id="updateRate">{if isset($rating.USER_RATE)}{'Update your rating'|@translate}{else}{'Rate this photo'|@translate}{/if}</span>
</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}
<input type="button" name="rate" value="{$mark}" class="rateButtonSelected" title="{$mark}">
{else}
<input type="submit" name="rate" value="{$mark}" class="rateButton" title="{$mark}">
{/if}
{/foreach}
{strip}{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
{combine_script id='rating' load='async' require='core.scripts' path='themes/default/js/rating.js'}
{footer_script}
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);
} else {ldelim}
e.innerHTML = "({'%d rates'|@translate|@escape:'javascript'})".replace( "%d", rating.count);
}
{rdelim}
{rdelim}{rdelim} );
{/footer_script}
{/strip}
</div>
</form>
</dd>
</div>
{/if}
{/strip}
</dl>
{if isset($metadata)}
<dl id="Metadata" class="imageInfoTable">
{foreach from=$metadata item=meta}
<h3>{$meta.TITLE}</h3>
{foreach from=$meta.lines item=value key=label}
<div class="imageInfo">
<dt>{$label}</dt>
<dd>{$value}</dd>
</div>
{/foreach}
{/foreach}
</dl>
{/if}
</div>
</div>
{if isset($COMMENT_COUNT)}
<div id="comments" {if (!isset($comment_add) && ($COMMENT_COUNT == 0))}class="noCommentContent"{else}class="commentContent"{/if}><div id="commentsSwitcher"></div>
<h3>{$COMMENT_COUNT|@translate_dec:'%d comment':'%d comments'}</h3>
<div id="pictureComments">
{if isset($comment_add)}
<div id="commentAdd">
<h4>{'Add a comment'|@translate}</h4>
<form method="post" action="{$comment_add.F_ACTION}" id="addComment">
{if $comment_add.SHOW_AUTHOR}
<p><label for="author">{'Author'|@translate}{if $comment_add.AUTHOR_MANDATORY} ({'mandatory'|@translate}){/if} :</label></p>
<p><input type="text" name="author" id="author" value="{$comment_add.AUTHOR}"></p>
{/if}
{if $comment_add.SHOW_EMAIL}
<p><label for="email">{'Email address'|@translate}{if $comment_add.EMAIL_MANDATORY} ({'mandatory'|@translate}){/if} :</label></p>
<p><input type="text" name="email" id="email" value="{$comment_add.EMAIL}"></p>
{/if}
{if $comment_add.SHOW_WEBSITE}
<p><label for="website_url">{'Website'|@translate} :</label></p>
<p><input type="text" name="website_url" id="website_url" value="{$comment_add.WEBSITE_URL}"></p>
{/if}
<p><label for="contentid">{'Comment'|@translate} ({'mandatory'|@translate}) :</label></p>
<p><textarea name="content" id="contentid" rows="5" cols="50">{$comment_add.CONTENT}</textarea></p>
<p><input type="hidden" name="key" value="{$comment_add.KEY}">
<input type="submit" value="{'Submit'|@translate}"></p>
</form>
</div>
{/if}
{if isset($comments)}
<div id="pictureCommentList">
{if (($COMMENT_COUNT > 2) || !empty($navbar))}
<div id="pictureCommentNavBar">
{if $COMMENT_COUNT > 2}
<a href="{$COMMENTS_ORDER_URL}#comments" rel="nofollow" class="commentsOrder">{$COMMENTS_ORDER_TITLE}</a>
{/if}
{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
</div>
{/if}
{$COMMENT_LIST}
</div>
{/if}
<div style="clear:both"></div>
</div>
</div>
{/if}{*comments*}
{if !empty($PLUGIN_PICTURE_AFTER)}{$PLUGIN_PICTURE_AFTER}{/if}
</div>
@@ -0,0 +1,33 @@
{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 isset($current.path_ext) and $current.path_ext == 'pdf' and $current.filesize < $PDF_VIEWER_FILESIZE_THRESHOLD}
<div>
<embed src="{$ROOT_URL}{$current.path}" type="application/pdf" />
</div>
{else}
<img class="file-ext-{if isset($current.file_ext)}{$current.file_ext}{/if} path-ext-{if isset($current.path_ext)}{$current.path_ext}{/if}" {if (isset($current.path_ext) and $current.path_ext == 'svg')} src="{$current.path}" {elseif $current.selected_derivative->is_cached()}src="{$current.selected_derivative->get_url()}"{$current.selected_derivative->get_size_htm()}{else}src="{$ROOT_URL}{$themeconf.img_dir}/ajax_loader.gif" 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}">
{if isset($current.path_ext) and $current.path_ext == 'pdf' and $current.filesize > $PDF_VIEWER_FILESIZE_THRESHOLD}
<div class="pdf-too-heavy">
{'The PDF you requested is too large to display on this page.'|translate}</br>
<a href="{$ROOT_URL}{$current.path}" target="_blank">{'Click here to display it'|translate}</a>
</div>
{/if}
{/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}
@@ -0,0 +1,121 @@
<div class="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="pwg-icon pwg-icon-clock-minus"></span><span class="pwg-button-text">{'Reduce diaporama speed'|@translate}</span>
</a>
{else}
<span class="pwg-state-disabled pwg-button">
<span class="pwg-icon pwg-icon-clock-minus"></span><span class="pwg-button-text">{'Reduce diaporama speed'|@translate}</span>
</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="pwg-icon pwg-icon-clock-plus"></span><span class="pwg-button-text">{'Accelerate diaporama speed'|@translate}</span>
</a>
{else}
<span class="pwg-state-disabled pwg-button">
<span class="pwg-icon pwg-icon-clock-plus"></span><span class="pwg-button-text">{'Accelerate diaporama speed'|@translate}</span>
</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="pwg-icon pwg-icon-repeat-play"></span><span class="pwg-button-text">{'Repeat the slideshow'|@translate}</span>
</a>
{/if}
{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="pwg-button-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">&nbsp;</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">&nbsp;</span><span class="pwg-button-text">{'First'|@translate}</span>
</span>
{/if}{/strip}-->*}
{strip}{if isset($U_UP) and !isset($slideshow)}
<a href="{$U_UP}" title="{'Thumbnails'|@translate}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-arrow-n"></span><span class="pwg-button-text">{'Thumbnails'|@translate}</span>
</a>
{/if}{/strip}
{strip}{if isset($previous)}
<a href="{$previous.U_IMG}" title="{'Previous'|@translate} : {$previous.TITLE_ESC}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-arrow-w"></span><span class="pwg-button-text">{'Previous'|@translate}</span>
</a>
{else}
<span class="pwg-state-disabled pwg-button">
<span class="pwg-icon pwg-icon-arrow-w"></span><span class="pwg-button-text">{'Previous'|@translate}</span>
</span>
{/if}{/strip}
{if isset($slideshow.U_START_PLAY)}
<a href="{$slideshow.U_START_PLAY}" title="{'Play of slideshow'|@translate}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-play"></span><span class="pwg-button-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}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-pause"></span><span class="pwg-button-text">{'Pause of slideshow'|@translate}</span>
</a>
{/if}
{strip}{if isset($next)}
<a href="{$next.U_IMG}" title="{'Next'|@translate} : {$next.TITLE_ESC}" class="pwg-state-default pwg-button pwg-button-icon-right">
<span class="pwg-icon pwg-icon-arrow-e"></span><span class="pwg-button-text">{'Next'|@translate}</span>
</a>
{else}
<span class="pwg-state-disabled pwg-button pwg-button-icon-right">
<span class="pwg-icon pwg-icon-arrow-e"></span><span class="pwg-button-text">{'Next'|@translate}</span>
</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">&nbsp;</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)url="{$next.U_IMG}"; break;
{/if}
{if isset($previous)}
case 63234: case 37: if (e.ctrlKey || docElem.scrollLeft==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("&amp;","&"); return false;}
return true;
}
{/footer_script}
{/strip}
@@ -0,0 +1,25 @@
<div id="content" class="content">
<div class="titrePage">
<ul class="categoryActions">
<li><a href="#" onclick="window.close();" title="{'Close this window'|@translate}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-close">&nbsp;</span><span class="pwg-button-text">exit</span>
</a></li>
</ul>
<h2><span id="homeLink"><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}</span>{$PAGE_TITLE}</h2>
</div>
{$HELP_CONTENT}
<p id="closeLink" style="display:none">
<a href="#" onclick="window.close();">{'Close this window'|@translate}</a>
</p>
{footer_script require='jquery'}
if (window.opener || window.name) {
jQuery("#closeLink").show();
jQuery("#homeLink").hide();
}
{/footer_script}
</div> <!-- content -->
@@ -0,0 +1,13 @@
{if isset($MENUBAR)}{$MENUBAR}{/if}
<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
<div class="titrePage">
<ul class="categoryActions">
</ul>
<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Profile'|@translate}</h2>
</div>
{include file='infos_errors.tpl'}
{$PROFILE_CONTENT}
</div> <!-- content -->
@@ -0,0 +1,107 @@
<form method="post" name="profile" action="{$F_ACTION}" id="profile" class="properties">
<fieldset>
<legend>{'Registration'|@translate}</legend>
<input type="hidden" name="redirect" value="{$REDIRECT}">
<ul>
<li>
<span class="property">{'Username'|@translate}</span>
{$USERNAME}
</li>
{if not $SPECIAL_USER} {* can modify password + email*}
<li>
<span class="property">
<label for="mail_address">{'Email address'|@translate}</label>
</span>
<input type="text" name="mail_address" id="mail_address" value="{$EMAIL}">
</li>
<li>
<span class="property">
<label for="password">{'Password'|@translate}</label>
</span>
<input type="password" name="password" id="password" value="">
</li>
<li>
<span class="property">
<label for="use_new_pwd">{'New password'|@translate}</label>
</span>
<input type="password" name="use_new_pwd" id="use_new_pwd" value="">
</li>
<li>
<span class="property">
<label for="passwordConf">{'Confirm Password'|@translate}</label>
</span>
<input type="password" name="passwordConf" id="passwordConf" value="">
</li>
{/if}
</ul>
</fieldset>
{if $ALLOW_USER_CUSTOMIZATION}
<fieldset>
<legend>{'Preferences'|@translate}</legend>
<ul>
<li>
<span class="property">
<label for="nb_image_page">{'Number of photos per page'|@translate}</label>
</span>
<input type="text" size="4" maxlength="3" name="nb_image_page" id="nb_image_page" value="{$NB_IMAGE_PAGE}">
</li>
<li>
<span class="property">
<label for="template">{'Theme'|@translate}</label>
</span>
{html_options name=theme options=$template_options selected=$template_selection}
</li>
<li>
<span class="property">
<label for="Language">{'Language'|@translate}</label>
</span>
{html_options name=language options=$language_options selected=$language_selection}
</li>
<li>
<span class="property">
<label for="Recent period">{'Recent period'|@translate}</label>
</span>
<input type="text" size="3" maxlength="2" name="recent_period" id="recent_period" value="{$RECENT_PERIOD}">
</li>
<li>
<span class="property">{'Expand all albums'|@translate}</span>
{html_radios name='expand' options=$radio_options selected=$EXPAND}
</li>
{if $ACTIVATE_COMMENTS}
<li>
<span class="property">{'Show number of comments'|@translate}</span>
{html_radios name='show_nb_comments' options=$radio_options selected=$NB_COMMENTS}
</li>
{/if}
<li>
<span class="property">{'Show number of hits'|@translate}</span>
{html_radios name='show_nb_hits' options=$radio_options selected=$NB_HITS}
</li>
</ul>
</fieldset>
{/if}
{if isset($PLUGINS_PROFILE)}
{foreach from=$PLUGINS_PROFILE item=plugin_block}
<fieldset>
<legend>{$plugin_block.name}</legend>
<div class="plugins fields">
{include file=$plugin_block.template}
</div>
</fieldset>
{/foreach}
{/if}
<p class="bottomButtons">
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
<input class="submit" type="submit" name="validate" value="{'Submit'|@translate}">
<input class="submit" type="reset" name="reset" value="{'Reset'|@translate}">
{if $ALLOW_USER_CUSTOMIZATION}
<input class="submit" type="submit" name="reset_to_default" value="{'Reset to default values'|@translate}">
{/if}
</p>
</form>
@@ -0,0 +1,9 @@
<div style="margin:2em;text-align:center;font-size:larger">
{$REDIRECT_MSG}
</div>
<p style="margin:2em;text-align:center">
<a href="{$page_refresh.U_REFRESH}">
{'Click here if your browser does not automatically forward you'|@translate}
</a>
</p>
@@ -0,0 +1,69 @@
{if isset($MENUBAR)}{$MENUBAR}{/if}
<div id="registerPage">
<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
<div class="titrePage">
<ul class="categoryActions">
</ul>
<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Registration'|@translate}</h2>
</div>
{include file='infos_errors.tpl'}
<form method="post" action="{$F_ACTION}" class="properties" name="register_form">
<fieldset>
<legend>{'Enter your personnal informations'|@translate}</legend>
<ul>
<li>
<span class="property">
<label for="login">* {'Username'|@translate}</label>
</span>
<input type="text" name="login" id="login" value="{$F_LOGIN}" >
</li>
<li>
<span class="property">
<label for="password">* {'Password'|@translate}</label>
</span>
<input type="password" name="password" id="password" >
</li>
<li>
<span class="property">
<label for="password_conf">* {'Confirm Password'|@translate}</label>
</span>
<input type="password" name="password_conf" id="password_conf" >
</li>
<li>
<span class="property">
<label for="mail_address">{if $obligatory_user_mail_address}* {/if}{'Email address'|@translate}</label>
</span>
<input type="text" name="mail_address" id="mail_address" value="{$F_EMAIL}" >
{if not $obligatory_user_mail_address}
({'useful when password forgotten'|@translate})
{/if}
</li>
<li>
<span class="property">
<label for="send_password_by_mail">{'Send my connection settings by email'|@translate}</label>
</span>
<input type="checkbox" name="send_password_by_mail" id="send_password_by_mail" value="1" checked="checked">
</li>
</ul>
</fieldset>
<p class="bottomButtons">
<input type="hidden" name="key" value="{$F_KEY}" >
<input class="submit" type="submit" name="submit" value="{'Register'|@translate}">
<input class="submit" type="reset" value="{'Reset'|@translate}">
</p>
</form>
<script type="text/javascript"><!--
document.register_form.login.focus();
//--></script>
</div> <!-- content -->
</div> <!-- registerPage -->
@@ -0,0 +1,150 @@
{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'}
{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"}
{footer_script}
jQuery(document).ready(function() {
jQuery("#authors, #tags, #categories").each(function() {
jQuery(this).selectize({
plugins: ['remove_button'],
maxOptions:jQuery(this).find("option").length
});
})
});
{/footer_script}
{if isset($MENUBAR)}{$MENUBAR}{/if}
<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
<div class="titrePage">
<ul class="categoryActions">
{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
<li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-help"></span><span class="pwg-button-text">{'Help'|@translate}</span>
</a></li>
</ul>
<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Search'|@translate}</h2>
</div>
{include file='infos_errors.tpl'}
<form class="filter" method="post" name="search" action="{$F_SEARCH_ACTION}">
<fieldset>
<legend>{'Search for words'|@translate}</legend>
<p>
<input type="text" name="search_allwords">
<br>
<label><input type="radio" name="mode" value="AND" checked="checked"> {'Search for all terms'|@translate}</label>
<label><input type="radio" name="mode" value="OR"> {'Search for any term'|@translate}</label>
</p>
<p>
<strong>{'Apply on properties'|translate}</strong><br>
<label><input type="checkbox" name="fields[]" value="name" checked="checked"> {'Photo title'|translate}</label>
<label><input type="checkbox" name="fields[]" value="comment" checked="checked"> {'Photo description'|translate}</label>
<label><input type="checkbox" name="fields[]" value="file" checked="checked"> {'File name'|translate}</label>
{if isset($TAGS)}
<label><input type="checkbox" name="search_in_tags" value="tags"> {'Tags'|translate}</label>
{/if}
</p>
</fieldset>
{if count($AUTHORS)>=1}
<fieldset>
<legend>{'Search for Author'|@translate}</legend>
<p>
<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>
</p>
</fieldset>
{/if}
{if isset($TAGS)}
<fieldset>
<legend>{'Search tags'|@translate}</legend>
<p>
<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>
<label><span><input type="radio" name="tag_mode" value="AND" checked="checked"> {'All tags'|@translate}</span></label>
<label><span><input type="radio" name="tag_mode" value="OR"> {'Any tag'|@translate}</span></label>
</p>
</fieldset>
{/if}
<fieldset>
<legend>{'Search by date'|@translate}</legend>
<ul>
<li><label>{'Kind of date'|@translate}</label></li>
<li><label>
<input type="radio" name="date_type" value="date_creation" checked="checked"> {'Creation date'|@translate}
</label></li>
<li><label>
<input type="radio" name="date_type" value="date_available"> {'Post date'|@translate}
</label></li>
</ul>
<ul>
<li><label>{'Date'|@translate}</label></li>
<li>
<select id="start_day" name="start_day">
<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">
{html_options options=$month_list selected=$START_MONTH_SELECTED}
</select>
<input id="start_year" name="start_year" type="text" size="4" maxlength="4" >
<input id="start_linked_date" name="start_linked_date" type="hidden" size="10" disabled="disabled">
</li>
<li>
<a class="date_today" href="#" onClick="document.search.start_day.value={$smarty.now|date_format:"%d"};document.search.start_month.value={$smarty.now|date_format:"%m"};document.search.start_year.value={$smarty.now|date_format:"%Y"};return false;">{'today'|@translate}</a>
</li>
</ul>
<ul>
<li><label>{'End-Date'|@translate}</label></li>
<li>
<select id="end_day" name="end_day">
<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">
{html_options options=$month_list selected=$END_MONTH_SELECTED}
</select>
<input id="end_year" name="end_year" type="text" size="4" maxlength="4" >
<input id="end_linked_date" name="end_linked_date" type="hidden" size="10" disabled="disabled">
</li>
<li>
<a class="date_today" href="#" onClick="document.search.end_day.value={$smarty.now|date_format:"%d"};document.search.end_month.value={$smarty.now|date_format:"%m"};document.search.end_year.value={$smarty.now|date_format:"%Y"};return false;">{'today'|@translate}</a>
</li>
</ul>
</fieldset>
<fieldset>
<legend>{'Search in albums'|@translate}</legend>
<p>
<select id="categories" name="cat[]" multiple>
{html_options options=$category_options selected=$category_options_selected}
</select>
<label><input type="checkbox" name="subcats-included" value="1" checked="checked"> {'Search in sub-albums'|@translate}</label>
</p>
</fieldset>
<p>
<input type="submit" name="submit" value="{'Submit'|@translate}">
<input type="reset" value="{'Reset'|@translate}">
</p>
</form>
<script type="text/javascript"><!--
document.search.search_allwords.focus();
//--></script>
</div> <!-- content -->
@@ -0,0 +1,61 @@
<div id="content" class="content">
<div class="titrePage">
<ul class="categoryActions">
<li><a href="#" onclick="window.close();" title="{'Close this window'|@translate}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-close">&nbsp;</span><span class="pwg-button-text">exit</span>
</a></li>
</ul>
<h2>{'Search rules'|@translate}</h2>
</div>
{if isset($INTRODUCTION)}
<p>{$INTRODUCTION}</p>
{/if}
<ul>
{if isset($search_words)}
{foreach from=$search_words item=v}
<li>{$v}</li>
{/foreach}
{/if}
{if isset($SEARCH_TAGS_MODE) }
<li>
<p>{if 'AND'==$SEARCH_TAGS_MODE}{'All tags'|@translate}{else}{'Any tag'|@translate}{/if}</p>
<ul>
{foreach from=$search_tags item=v}
<li>{$v}</li>
{/foreach}
</ul>
</li>
{/if}
{if isset($DATE_CREATION)}
<li>{$DATE_CREATION}</li>
{/if}
{if isset($DATE_AVAILABLE)}
<li>{$DATE_AVAILABLE}</li>
{/if}
{if isset($search_categories)}
<li>
<p>{'Albums'|@translate}</p>
<ul>
{foreach from=$search_categories item=v}
<li>{$v}</li>
{/foreach}
</ul>
</li>
{/if}
</ul>
<p>
<a href="#" onclick="window.close();">{'Close this window'|@translate}</a>
</p>
</div> <!-- content -->
@@ -0,0 +1,24 @@
<div id="slideshow">
<div id="imageHeaderBar">
<div class="browsePath">
{if isset($U_SLIDESHOW_STOP) }
[ <a href="{$U_SLIDESHOW_STOP}">{'stop the slideshow'|@translate}</a> ]
{/if}
<h2 class="showtitle">{$current.TITLE}</h2>
</div>
</div>
<div id="imageToolBar">
<div class="imageNumber">{$PHOTO}</div>
{include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'}
</div>
<div id="content">
<div id="theImage">
{$ELEMENT_CONTENT}
{if isset($COMMENT_IMG)}
<p class="showlegend">{$COMMENT_IMG}</p>
{/if}
</div>
</div>
</div>
@@ -0,0 +1,57 @@
{if isset($MENUBAR)}{$MENUBAR}{/if}
<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
<div class="titrePage">
<ul class="categoryActions">
{if $display_mode == 'letters'}
<li><a href="{$U_CLOUD}" title="{'show tag cloud'|@translate}" class="pwg-state-default pwg-button">
<span class="pwg-icon pwg-icon-cloud"></span><span class="pwg-button-text">{'cloud'|@translate}</span>
</a></li>
{/if}
{if $display_mode == 'cloud'}
<li><a href="{$U_LETTERS}" title="{'group by letters'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
<span class="pwg-icon pwg-icon-letters"></span><span class="pwg-button-text">{'letters'|@translate}</span>
</a></li>
{/if}
</ul>
<h2><a href="{$U_HOME}">{'Home'|@translate}</a>{$LEVEL_SEPARATOR}{'Tags'|@translate}</h2>
</div>
{include file='infos_errors.tpl'}
{if $display_mode == 'cloud' and isset($tags)}
<div id="fullTagCloud">
{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>
{/if}
{if $display_mode == 'letters' and isset($letters)}
<table>
<tr>
<td valign="top">
{foreach from=$letters item=letter}
<fieldset class="tagLetter">
<legend class="tagLetterLegend">{$letter.TITLE}</legend>
<table class="tagLetterContent">
{foreach from=$letter.tags item=tag}
<tr class="tagLine">
<td><a href="{$tag.URL}" title="{$tag.name}">{$tag.name}</a></td>
<td class="nbEntries">{$tag.counter|@translate_dec:'%d photo':'%d photos'}</td>
</tr>
{/foreach}
</table>
</fieldset>
{if isset($letter.CHANGE_COLUMN) }
</td>
<td valign="top">
{/if}
{/foreach}
</td>
</tr>
</table>
{/if}
</div> <!-- content -->
@@ -0,0 +1,64 @@
{if !empty($thumbnails)}{strip}
{*define_derivative name='derivative_params' width=160 height=90 crop=true*}
{html_style}
{*Set some sizes according to maximum thumbnail width and height*}
.thumbnails SPAN,
.thumbnails .wrap2 A,
.thumbnails LABEL{ldelim}
width: {$derivative_params->max_width()+2}px;
}
.thumbnails .wrap2{ldelim}
height: {$derivative_params->max_height()+3}px;
}
{if $derivative_params->max_width() > 600}
.thumbLegend {ldelim}font-size: 130%}
{else}
{if $derivative_params->max_width() > 400}
.thumbLegend {ldelim}font-size: 110%}
{else}
.thumbLegend {ldelim}font-size: 90%}
{/if}
{/if}
{/html_style}
{footer_script}
var error_icon = "{$ROOT_URL}{$themeconf.icon_dir}/errors_small.png", max_requests = {$maxRequests};
{/footer_script}
{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}
<li>
<span class="wrap1">
<span class="wrap2">
<a href="{$thumbnail.URL}">
<img class="thumbnail" {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="{$thumbnail.TN_ALT}" title="{$thumbnail.TN_TITLE}">
</a>
</span>
{if $SHOW_THUMBNAIL_CAPTION }
<span class="thumbLegend">
<span class="thumbName">{$thumbnail.NAME}</span>
{if !empty($thumbnail.icon_ts)}
<img title="{$thumbnail.icon_ts.TITLE}" src="{$ROOT_URL}{$themeconf.icon_dir}/recent.png" alt="(!)">
{/if}
{if isset($thumbnail.NB_COMMENTS)}
<span class="{if 0==$thumbnail.NB_COMMENTS}zero {/if}nb-comments">
<br>
{$pwg->l10n_dec('%d comment', '%d comments',$thumbnail.NB_COMMENTS)}
</span>
{/if}
{if isset($thumbnail.NB_HITS)}
<span class="{if 0==$thumbnail.NB_HITS}zero {/if}nb-hits">
<br>
{$pwg->l10n_dec('%d hit', '%d hits',$thumbnail.NB_HITS)}
</span>
{/if}
</span>
{/if}
</span>
</li>
{/foreach}{/strip}
{/if}