aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/configuration.php6
-rw-r--r--admin/include/add_core_tabs.inc.php2
-rw-r--r--admin/themes/default/template/configuration.tpl455
-rw-r--r--admin/themes/default/theme.css31
-rw-r--r--admin/themes/roma/theme.css4
-rw-r--r--include/config_default.inc.php3
-rw-r--r--include/functions_mail.inc.php4
-rw-r--r--language/en_UK/admin.lang.php4
-rw-r--r--language/fr_FR/admin.lang.php5
-rw-r--r--themes/Sylvia/mail-css.tpl13
-rw-r--r--themes/clear/mail-css.tpl9
-rw-r--r--themes/dark/mail-css.tpl9
-rw-r--r--themes/default/template/mail/screenshot-clear.pngbin0 -> 70946 bytes
-rw-r--r--themes/default/template/mail/screenshot-dark.pngbin0 -> 72394 bytes
-rw-r--r--themes/default/template/mail/text/html/mail-css-dark.tpl8
-rw-r--r--themes/elegant/mail-css.tpl9
16 files changed, 290 insertions, 272 deletions
diff --git a/admin/configuration.php b/admin/configuration.php
index d30138b06..4aad5f49d 100644
--- a/admin/configuration.php
+++ b/admin/configuration.php
@@ -134,6 +134,10 @@ $comments_order = array(
'DESC' => l10n('Show latest comments first'),
);
+$mail_themes = array(
+ 'clear' => 'Clear',
+ 'dark' => 'Dark',
+ );
//------------------------------ verification and registration of modifications
if (isset($_POST['submit']))
@@ -347,6 +351,8 @@ switch ($page['section'])
'monday' => $lang['day'][1],
),
'week_starts_on_options_selected' => $conf['week_starts_on'],
+ 'mail_theme' => $conf['mail_theme'],
+ 'mail_theme_options' => $mail_themes,
'order_by' => $order_by,
'order_by_options' => $sort_fields,
)
diff --git a/admin/include/add_core_tabs.inc.php b/admin/include/add_core_tabs.inc.php
index 9769cb32c..69fd5a0be 100644
--- a/admin/include/add_core_tabs.inc.php
+++ b/admin/include/add_core_tabs.inc.php
@@ -68,7 +68,7 @@ function add_core_tabs($sheets, $tab_id)
case 'configuration':
global $conf_link;
- $sheets['main'] = array('caption' => l10n('Main'), 'url' => $conf_link.'main');
+ $sheets['main'] = array('caption' => l10n('General'), 'url' => $conf_link.'main');
$sheets['sizes'] = array('caption' => l10n('Photo sizes'), 'url' => $conf_link.'sizes');
$sheets['watermark'] = array('caption' => l10n('Watermark'), 'url' => $conf_link.'watermark');
$sheets['display'] = array('caption' => l10n('Display'), 'url' => $conf_link.'display');
diff --git a/admin/themes/default/template/configuration.tpl b/admin/themes/default/template/configuration.tpl
index aab3afd00..bb5531e60 100644
--- a/admin/themes/default/template/configuration.tpl
+++ b/admin/themes/default/template/configuration.tpl
@@ -1,13 +1,5 @@
-{footer_script}{literal}
-jQuery(document).ready(function(){
- jQuery("#activate_comments").change(function(){
- if ($(this).is(':checked')) {
- jQuery("#comments_param_warp").show();
- } else {
- jQuery("#comments_param_warp").hide();
- }
- });
-
+{footer_script}
+(function(){
var targets = {
'input[name="rate"]' : '#rate_anonymous',
'input[name="allow_user_registration"]' : '#email_admin_on_new_user',
@@ -22,47 +14,110 @@ jQuery(document).ready(function(){
jQuery(target).toggle(jQuery(selector).is(':checked'));
(function(target){
- jQuery(selector).bind('change', function() {
+ jQuery(selector).on('change', function() {
jQuery(target).toggle($(this).is(':checked'));
});
})(target);
};
-});
-{/literal}{/footer_script}
+}());
+{/footer_script}
<h2>{'Piwigo configuration'|@translate} {$TABSHEET_TITLE}</h2>
{if !isset($default)}
<form method="post" action="{$F_ACTION}" class="properties"{if isset($watermark)} enctype="multipart/form-data"{/if}>
{/if}
+
<div id="configContent">
{if isset($main)}
-<fieldset id="mainConf">
- <legend></legend>
+<fieldset class="mainConf">
+ <legend>{'Basic settings'|translate}</legend>
<ul>
<li>
-
- <label for="gallery_title">{'Gallery title'|@translate}</label>
+ <label for="gallery_title">{'Gallery title'|@translate}</label>
<br>
<input type="text" maxlength="255" size="50" name="gallery_title" id="gallery_title" value="{$main.CONF_GALLERY_TITLE}">
</li>
<li>
-
- <label for="page_banner">{'Page banner'|@translate}</label>
+ <label for="page_banner">{'Page banner'|@translate}</label>
<br>
<textarea rows="5" cols="50" class="description" name="page_banner" id="page_banner">{$main.CONF_PAGE_BANNER}</textarea>
</li>
+
+ <li id="order_filters">
+ <label>{'Default photos order'|@translate}</label>
+
+ {foreach from=$main.order_by item=order}
+ <span class="filter {if isset($ORDER_BY_IS_CUSTOM)}transparent{/if}">
+ <select name="order_by[]" {if isset($ORDER_BY_IS_CUSTOM)}disabled{/if}>
+ {html_options options=$main.order_by_options selected=$order}
+ </select>
+ <a class="removeFilter">{'delete'|@translate}</a>
+ </span>
+ {/foreach}
+
+ {if !isset($ORDER_BY_IS_CUSTOM)}
+ <a class="addFilter">{'Add a criteria'|@translate}</a>
+ {else}
+ <span class="order_by_is_custom">{'You can\'t define a default photo order because you have a custom setting in your local configuration.'|@translate}</span>
+ {/if}
+ </li>
+ </ul>
+
+{if !isset($ORDER_BY_IS_CUSTOM)}
+{footer_script require='jquery'}
+(function(){
+// counters for displaying of addFilter link
+var fields = {$main.order_by|@count},
+ max_fields = Math.ceil({$main.order_by_options|@count}/2);
+
+function updateAddFilterLink() {
+ if (fields >= max_fields) {
+ jQuery('.addFilter').css('display', 'none');
+ } else {
+ jQuery('.addFilter').css('display', '');
+ }
+}
+
+function updateRemoveFilterTrigger() {
+ jQuery(".removeFilter").click(function() {
+ jQuery(this).parent('span.filter').remove();
+ fields--;
+ updateAddFilterLink();
+ });
+
+ jQuery(".removeFilter").css('display', '');
+ jQuery(".filter:first .removeFilter").css('display', 'none');
+}
+
+
+jQuery('.addFilter').click(function() {
+ jQuery(this).prev('span.filter').clone().insertBefore($(this));
+ jQuery(this).prev('span.filter').children('select[name="order_by[]"]').val('');
+ fields++;
+ updateRemoveFilterTrigger();
+ updateAddFilterLink();
+});
+
+updateRemoveFilterTrigger();
+updateAddFilterLink();
+}());
+{/footer_script}
+{/if}
+</fieldset>
+
+<fieldset class="mainConf">
+ <legend>{'Permissions'|translate}</legend>
+ <ul>
<li>
<label>
<input type="checkbox" name="rate" {if ($main.rate)}checked="checked"{/if}>
{'Allow rating'|@translate}
</label>
- </li>
- <li id="rate_anonymous">
- <label>
+ <label id="rate_anonymous" class="no-bold">
<input type="checkbox" name="rate_anonymous" {if ($main.rate_anonymous)}checked="checked"{/if}>
{'Rating by guests'|@translate}
</label>
@@ -73,10 +128,8 @@ jQuery(document).ready(function(){
<input type="checkbox" name="allow_user_registration" {if ($main.allow_user_registration)}checked="checked"{/if}>
{'Allow user registration'|@translate}
</label>
- </li>
- <li id="email_admin_on_new_user">
- <label>
+ <label id="email_admin_on_new_user" class="no-bold">
<input type="checkbox" name="email_admin_on_new_user" {if ($main.email_admin_on_new_user)}checked="checked"{/if}>
{'Email admins when a new user registers'|@translate}
</label>
@@ -95,98 +148,82 @@ jQuery(document).ready(function(){
{'Mail address is obligatory for all users'|@translate}
</label>
</li>
+ </ul>
- <li>
- <label>{'Week starts on'|@translate}
- {html_options name="week_starts_on" options=$main.week_starts_on_options selected=$main.week_starts_on_options_selected}</label>
- </li>
-
- <li>
- <label>{'Default photos order'|@translate}</label>
-
- {foreach from=$main.order_by item=order}
- <span class="filter {if isset($ORDER_BY_IS_CUSTOM)}transparent{/if}">
- <select name="order_by[]" {if isset($ORDER_BY_IS_CUSTOM)}disabled{/if}>
- {html_options options=$main.order_by_options selected=$order}
- </select>
- <a class="removeFilter">{'delete'|@translate}</a>
- </span>
- {/foreach}
-
- {if !isset($ORDER_BY_IS_CUSTOM)}
- <a class="addFilter">{'Add a criteria'|@translate}</a>
- {else}
- <span class="order_by_is_custom">{'You can\'t define a default photo order because you have a custom setting in your local configuration.'|@translate}</span>
- {/if}
- </li>
-
-{if !isset($ORDER_BY_IS_CUSTOM)}
{footer_script require='jquery'}
-// counters for displaying of addFilter link
-fields = {$main.order_by|@count}; max_fields = Math.ceil({$main.order_by_options|@count}/2);
-
-{literal}
-function updateAddFilterLink() {
- if (fields >= max_fields) {
- $('.addFilter').css('display', 'none');
+jQuery("#activate_comments").change(function(){
+ if ($(this).is(':checked')) {
+ jQuery("#comments_param_warp").show();
} else {
- $('.addFilter').css('display', '');
+ jQuery("#comments_param_warp").hide();
}
-}
-
-function updateRemoveFilterTrigger() {
- $(".removeFilter").click(function () {
- $(this).parent('span.filter').remove();
- fields--;
- updateAddFilterLink();
- });
-
- $(".removeFilter").css('display', '');
- $(".filter:first .removeFilter").css('display', 'none');
-}
-
-jQuery(document).ready(function () {
- $('.addFilter').click(function() {
- $(this).prev('span.filter').clone().insertBefore($(this));
- $(this).prev('span.filter').children('select[name="order_by[]"]').val('');
-
- fields++;
- updateRemoveFilterTrigger();
- updateAddFilterLink();
- });
-
- updateRemoveFilterTrigger();
- updateAddFilterLink();
});
-{/literal}
{/footer_script}
-{/if}
+</fieldset>
+
+<fieldset class="mainConf">
+ <legend>{'Miscellaneous'|translate}</legend>
+ <ul>
+ <li>
+ <label>{'Week starts on'|@translate}
+ {html_options name="week_starts_on" options=$main.week_starts_on_options selected=$main.week_starts_on_options_selected}</label>
+ </li>
<li>
<strong>{'Save visits in history for'|@translate}</strong>
- <label>
+ <label class="no-bold">
<input type="checkbox" name="history_guest" {if ($main.history_guest)}checked="checked"{/if}>
{'simple visitors'|@translate}
</label>
- <label>
+ <label class="no-bold">
<input type="checkbox" name="log" {if ($main.log)}checked="checked"{/if}>
{'registered users'|@translate}
</label>
- <label>
+ <label class="no-bold">
<input type="checkbox" name="history_admin" {if ($main.history_admin)}checked="checked"{/if}>
{'administrators'|@translate}
</label>
+ </li>
+ <li>
+ <label>{'Mail theme'|@translate}</label>
+
+ <div class="themeBoxes">
+ {foreach from=$main.mail_theme_options item=name key=theme}
+ <div class="themeBox {if $main.mail_theme==$theme}themeDefault{/if}">
+ <label>
+ <div class="themeName">
+ <input type="radio" name="mail_theme" value="{$theme}" {if $main.mail_theme==$theme}checked{/if}>
+ {$name}
+ </div>
+ <div class="themeShot">
+ <img src="{$ROOT_URL}themes/default/template/mail/screenshot-{$theme}.png" width="150"/>
+ </div>
+ </label>
+ <a href="{$ROOT_URL}themes/default/template/mail/screenshot-{$theme}.png">{'Preview'|translate}</a>
+ </div>
+ {/foreach}
+ </div>
</li>
+
+{include file='include/colorbox.inc.tpl'}
+{footer_script require='jquery'}
+jQuery(".themeBoxes a").colorbox();
+
+jQuery("input[name='mail_theme']").change(function() {
+ jQuery("input[name='mail_theme']").parents(".themeBox").removeClass("themeDefault");
+ jQuery(this).parents(".themeBox").addClass("themeDefault");
+});
+{/footer_script}
</ul>
</fieldset>
{/if}
{if isset($comments)}
-<fieldset id="commentsConf">
+<fieldset id="commentsConf" class="no-border">
<legend></legend>
<ul>
<li>
@@ -248,6 +285,7 @@ jQuery(document).ready(function () {
{'Allow users to edit their own comments'|@translate}
</label>
</li>
+
<li>
<label>
<input type="checkbox" name="user_can_delete_comment" {if ($comments.user_can_delete_comment)}checked="checked"{/if}>
@@ -258,19 +296,19 @@ jQuery(document).ready(function () {
<li id="notifyAdmin">
<strong>{'Notify administrators when a comment is'|@translate}</strong>
- <label id="email_admin_on_comment_validation">
+ <label id="email_admin_on_comment_validation" class="no-bold">
<input type="checkbox" name="email_admin_on_comment_validation" {if ($comments.email_admin_on_comment_validation)}checked="checked"{/if}> {'pending validation'|@translate}
</label>
- <label>
+ <label class="no-bold">
<input type="checkbox" name="email_admin_on_comment" {if ($comments.email_admin_on_comment)}checked="checked"{/if}> {'added'|@translate}
</label>
- <label id="email_admin_on_comment_edition">
+ <label id="email_admin_on_comment_edition" class="no-bold">
<input type="checkbox" name="email_admin_on_comment_edition" {if ($comments.email_admin_on_comment_edition)}checked="checked"{/if}> {'modified'|@translate}
</label>
- <label id="email_admin_on_comment_deletion">
+ <label id="email_admin_on_comment_deletion" class="no-bold">
<input type="checkbox" name="email_admin_on_comment_deletion" {if ($comments.email_admin_on_comment_deletion)}checked="checked"{/if}> {'deleted'|@translate}
</label>
</li>
@@ -281,13 +319,12 @@ jQuery(document).ready(function () {
{if isset($sizes)}
{footer_script}
-var labelMaxWidth = "{'Maximum width'|@translate}";
-var labelWidth = "{'Width'|@translate}";
+(function(){
+ var labelMaxWidth = "{'Maximum width'|@translate}",
+ labelWidth = "{'Width'|@translate}",
+ labelMaxHeight = "{'Maximum height'|@translate}",
+ labelHeight = "{'Height'|@translate}";
-var labelMaxHeight = "{'Maximum height'|@translate}";
-var labelHeight = "{'Height'|@translate}";
-{literal}
-jQuery(document).ready(function(){
function toggleResizeFields(size) {
var checkbox = jQuery("#original_resize");
var needToggle = jQuery("#sizeEdit-original");
@@ -301,7 +338,9 @@ jQuery(document).ready(function(){
}
toggleResizeFields("original");
- jQuery("#original_resize").click(function () {toggleResizeFields("original")});
+ jQuery("#original_resize").click(function () {
+ toggleResizeFields("original");
+ });
jQuery("a[id^='sizeEditOpen-']").click(function(){
var sizeName = jQuery(this).attr("id").split("-")[1];
@@ -329,9 +368,8 @@ jQuery(document).ready(function(){
jQuery(this).css("visibility", "hidden");
return false;
});
-
-});
-{/literal}{/footer_script}
+}());
+{/footer_script}
{html_style}{literal}
.sizeEnable {width:50px;}
@@ -347,13 +385,11 @@ jQuery(document).ready(function(){
<legend>{'Original Size'|@translate}</legend>
{if $is_gd}
<div>
- <label>
- {'Resize after upload disabled due to the use of GD as graphic library'|@translate}
- <input type="checkbox" name="original_resize" id="original_resize" disabled="disabled" style="visibility: hidden">
- <input type="hidden" name="original_resize_maxwidth" value="{$sizes.original_resize_maxwidth}">
- <input type="hidden" name="original_resize_maxheight" value="{$sizes.original_resize_maxheight}">
- <input type="hidden" name="original_resize_quality" value="{$sizes.original_resize_quality}">
- </label>
+ {'Resize after upload disabled due to the use of GD as graphic library'|@translate}
+ <input type="checkbox" name="original_resize" id="original_resize" disabled="disabled" style="visibility: hidden">
+ <input type="hidden" name="original_resize_maxwidth" value="{$sizes.original_resize_maxwidth}">
+ <input type="hidden" name="original_resize_maxheight" value="{$sizes.original_resize_maxheight}">
+ <input type="hidden" name="original_resize_quality" value="{$sizes.original_resize_quality}">
</div>
{else}
<div>
@@ -392,99 +428,102 @@ jQuery(document).ready(function(){
<fieldset id="multiSizesConf">
<legend>{'Multiple Size'|@translate}</legend>
-<div class="showDetails">
- <a href="#" id="showDetails"{if isset($ferrors)} style="display:none"{/if}>{'show details'|@translate}</a>
-</div>
+ <div class="showDetails">
+ <a href="#" id="showDetails"{if isset($ferrors)} style="display:none"{/if}>{'show details'|@translate}</a>
+ </div>
-<table style="margin:0">
-{foreach from=$derivatives item=d key=type}
- <tr>
- <td>
- <label>
- <span class="sizeEnable">
- {if $d.must_enable}
- &#x2714;
- {else}
- <input type="checkbox" name="d[{$type}][enabled]" {if $d.enabled}checked="checked"{/if}>
- {/if}
- </span>
- {$type|@translate}
- </label>
- </td>
+ <table style="margin:0">
+ {foreach from=$derivatives item=d key=type}
+ <tr>
+ <td>
+ <label>
+ <span class="sizeEnable">
+ {if $d.must_enable}
+ &#x2714;
+ {else}
+ <input type="checkbox" name="d[{$type}][enabled]" {if $d.enabled}checked="checked"{/if}>
+ {/if}
+ </span>
+ {$type|@translate}
+ </label>
+ </td>
- <td>
- <span class="sizeDetails"{if isset($ferrors)} style="display:inline"{/if}>{$d.w} x {$d.h} {'pixels'|@translate}{if $d.crop}, {'Crop'|@translate|lower}{/if}</span>
- </td>
+ <td>
+ <span class="sizeDetails"{if isset($ferrors)} style="display:inline"{/if}>{$d.w} x {$d.h} {'pixels'|@translate}{if $d.crop}, {'Crop'|@translate|lower}{/if}</span>
+ </td>
- <td>
- <span class="sizeDetails"{if isset($ferrors) and !isset($ferrors.$type)} style="display:inline"{/if}>
- <a href="#" id="sizeEditOpen-{$type}" class="sizeEditOpen">{'edit'|@translate}</a>
- </span>
- </td>
- </tr>
-
- <tr id="sizeEdit-{$type}" class="sizeEdit" {if isset($ferrors.$type)} style="display:block"{/if}>
- <td colspan="3">
- <table class="sizeEditForm">
- {if !$d.must_square}
- <tr>
- <td colspan="2">
- <label>
- <input type="checkbox" class="cropToggle" name="d[{$type}][crop]" {if $d.crop}checked="checked"{/if}>
- {'Crop'|@translate}
- </label>
- </td>
- </tr>
- {/if}
+ <td>
+ <span class="sizeDetails"{if isset($ferrors) and !isset($ferrors.$type)} style="display:inline"{/if}>
+ <a href="#" id="sizeEditOpen-{$type}" class="sizeEditOpen">{'edit'|@translate}</a>
+ </span>
+ </td>
+ </tr>
- <tr>
- <td class="sizeEditWidth">{if $d.must_square or $d.crop}{'Width'|@translate}{else}{'Maximum width'|@translate}{/if}</td>
+ <tr id="sizeEdit-{$type}" class="sizeEdit" {if isset($ferrors.$type)} style="display:block"{/if}>
+ <td colspan="3">
+ <table class="sizeEditForm">
+ {if !$d.must_square}
+ <tr>
+ <td colspan="2">
+ <label>
+ <input type="checkbox" class="cropToggle" name="d[{$type}][crop]" {if $d.crop}checked="checked"{/if}>
+ {'Crop'|@translate}
+ </label>
+ </td>
+ </tr>
+ {/if}
+
+ <tr>
+ <td class="sizeEditWidth">{if $d.must_square or $d.crop}{'Width'|@translate}{else}{'Maximum width'|@translate}{/if}</td>
+ <td>
+ <input type="text" name="d[{$type}][w]" maxlength="4" size="4" value="{$d.w}"{if isset($ferrors.$type.w)} class="dError"{/if}>
+ {'pixels'|@translate}
+ {if isset($ferrors.$type.w)}<span class="dErrorDesc" title="{$ferrors.$type.w}">!</span>{/if}
+ </td>
+ </tr>
+
+ {if !$d.must_square}
+ <tr>
+ <td class="sizeEditHeight">{if $d.crop}{'Height'|@translate}{else}{'Maximum height'|@translate}{/if}</td>
+ <td>
+ <input type="text" name="d[{$type}][h]" maxlength="4" size="4" value="{$d.h}"{if isset($ferrors.$type.h)} class="dError"{/if}>
+ {'pixels'|@translate}
+ {if isset($ferrors.$type.h)}<span class="dErrorDesc" title="{$ferrors.$type.h}">!</span>{/if}
+ </td>
+ </tr>
+ {/if}
+ <tr>
+ <td>{'Sharpen'|@translate}</td>
<td>
- <input type="text" name="d[{$type}][w]" maxlength="4" size="4" value="{$d.w}"{if isset($ferrors.$type.w)} class="dError"{/if}>
- {'pixels'|@translate}
- {if isset($ferrors.$type.w)}<span class="dErrorDesc" title="{$ferrors.$type.w}">!</span>{/if}
+ <input type="text" name="d[{$type}][sharpen]" maxlength="4" size="4" value="{$d.sharpen}"{if isset($ferrors.$type.sharpen)} class="dError"{/if}>
+ %
+ {if isset($ferrors.$type.sharpen)}<span class="dErrorDesc" title="{$ferrors.$type.sharpen}">!</span>{/if}
</td>
- </tr>
+ </tr>
+ </table> {* #sizeEdit *}
+ </td>
+ </tr>
+ {/foreach}
+ </table>
- {if !$d.must_square}
- <tr>
- <td class="sizeEditHeight">{if $d.crop}{'Height'|@translate}{else}{'Maximum height'|@translate}{/if}</td>
- <td>
- <input type="text" name="d[{$type}][h]" maxlength="4" size="4" value="{$d.h}"{if isset($ferrors.$type.h)} class="dError"{/if}>
- {'pixels'|@translate}
- {if isset($ferrors.$type.h)}<span class="dErrorDesc" title="{$ferrors.$type.h}">!</span>{/if}
- </td>
- </tr>
- {/if}
- <tr>
- <td>{'Sharpen'|@translate}</td>
- <td>
- <input type="text" name="d[{$type}][sharpen]" maxlength="4" size="4" value="{$d.sharpen}"{if isset($ferrors.$type.sharpen)} class="dError"{/if}>
- %
- {if isset($ferrors.$type.sharpen)}<span class="dErrorDesc" title="{$ferrors.$type.sharpen}">!</span>{/if}
- </td>
- </tr>
- </table> {* #sizeEdit *}
- </td>
- </tr>
-{/foreach}
-</table>
-
-<p style="margin:10px 0 0 0;{if isset($ferrors)} display:block;{/if}" class="sizeDetails">
- {'Image Quality'|@translate}
- <input type="text" name="resize_quality" value="{$resize_quality}" size="3" maxlength="3"{if isset($ferrors.resize_quality)} class="dError"{/if}> %
- {if isset($ferrors.resize_quality)}<span class="dErrorDesc" title="{$ferrors.resize_quality}">!</span>{/if}
-</p>
-<p style="margin:10px 0 0 0;{if isset($ferrors)} display:block;{/if}" class="sizeDetails">
- <a href="{$F_ACTION}&action=restore_settings" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');">{'Reset to default values'|@translate}</a>
-</p>
+ <p style="margin:10px 0 0 0;{if isset($ferrors)} display:block;{/if}" class="sizeDetails">
+ {'Image Quality'|@translate}
+ <input type="text" name="resize_quality" value="{$resize_quality}" size="3" maxlength="3"{if isset($ferrors.resize_quality)} class="dError"{/if}> %
+ {if isset($ferrors.resize_quality)}<span class="dErrorDesc" title="{$ferrors.resize_quality}">!</span>{/if}
+ </p>
+ <p style="margin:10px 0 0 0;{if isset($ferrors)} display:block;{/if}" class="sizeDetails">
+ <a href="{$F_ACTION}&action=restore_settings" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');">{'Reset to default values'|@translate}</a>
+ </p>
{if !empty($custom_derivatives)}
-<fieldset class="sizeDetails"><legend>{'custom'|@translate}</legend><table style="margin:0">
-{foreach from=$custom_derivatives item=time key=custom}
-<tr><td><label><input type="checkbox" name="delete_custom_derivative_{$custom}"> {'Delete'|@translate} {$custom} ({'Last hit'|@translate}: {$time})</label></td></tr>
-{/foreach}
-</table></fieldset>
+ <fieldset class="sizeDetails">
+ <legend>{'custom'|@translate}</legend>
+ <table style="margin:0">
+ {foreach from=$custom_derivatives item=time key=custom}
+ <tr><td><label><input type="checkbox" name="delete_custom_derivative_{$custom}"> {'Delete'|@translate} {$custom} ({'Last hit'|@translate}: {$time})</label></td></tr>
+ {/foreach}
+ </table>
+ </fieldset>
{/if}
</fieldset>
@@ -492,13 +531,12 @@ jQuery(document).ready(function(){
{if isset($watermark)}
-{footer_script}{literal}
-jQuery(document).ready(function() {
-
+{footer_script}
+(function(){
function onWatermarkChange() {
var val = jQuery("#wSelect").val();
if (val.length) {
- jQuery("#wImg").attr('src', {/literal}'{$ROOT_URL}'{literal}+val).show();
+ jQuery("#wImg").attr('src', '{$ROOT_URL}'+val).show();
}
else {
jQuery("#wImg").hide();
@@ -526,22 +564,24 @@ jQuery(document).ready(function() {
jQuery("#addWatermark, #selectWatermark").toggle();
return false;
});
-});
-{/literal}{/footer_script}
+}());
+{/footer_script}
-<fieldset id="watermarkConf">
+<fieldset id="watermarkConf" class="no-border">
<legend></legend>
<ul>
<li>
<span id="selectWatermark"{if isset($ferrors.watermarkImage)} style="display:none"{/if}><label>{'Select a file'|@translate}</label>
<select name="w[file]" id="wSelect">
- {html_options options=$watermark_files selected=$watermark.file}
+ {html_options options=$watermark_files selected=$watermark.file}
</select>
{'... or '|@translate}<a href="#" class="addWatermarkOpen">{'add a new watermark'|@translate}</a>
- <br><img id="wImg"></img></span>{* #selectWatermark *}
+ <br>
+ <img id="wImg"></img></span>{* #selectWatermark *}
<span id="addWatermark"{if isset($ferrors.watermarkImage)} style="display:inline"{/if}>
{'add a new watermark'|@translate} {'... or '|@translate}<a href="#" class="addWatermarkOpen">{'Select a file'|@translate}</a>
- <br><input type="file" size="60" id="watermarkImage" name="watermarkImage"{if isset($ferrors.watermarkImage)} class="dError"{/if}> (png)
+ <br>
+ <input type="file" size="60" id="watermarkImage" name="watermarkImage"{if isset($ferrors.watermarkImage)} class="dError"{/if}> (png)
{if isset($ferrors.watermarkImage)}<span class="dErrorDesc" title="{$ferrors.watermarkImage|@htmlspecialchars}">!</span>{/if}
</span>{* #addWatermark *}
</li>
@@ -557,7 +597,7 @@ jQuery(document).ready(function() {
<li>
<label>
{'Apply watermark if height is bigger than'|@translate}
- <input size="4" maxlength="4" type="text" name="w[minh]" value="{$watermark.minh}"{if isset($ferrors.watermark.minh)} class="dError"{/if}>
+ <input size="4" maxlength="4" type="text" name="w[minh]" value="{$watermark.minh}"{if isset($ferrors.watermark.minh)} class="dError"{/if}>
</label>
{'pixels'|@translate}
</li>
@@ -572,10 +612,11 @@ jQuery(document).ready(function() {
<label class="right">{'bottom right corner'|@translate} <input name="w[position]" type="radio" value="bottomright"{if $watermark.position eq 'bottomright'} checked="checked"{/if}></label>
<label><input name="w[position]" type="radio" value="bottomleft"{if $watermark.position eq 'bottomleft'} checked="checked"{/if}> {'bottom left corner'|@translate}</label>
</div>
+
<label style="display:block;margin-top:10px;font-weight:normal;"><input name="w[position]" type="radio" value="custom"{if $watermark.position eq 'custom'} checked="checked"{/if}> {'custom'|@translate}</label>
<div id="positionCustomDetails">
<label>{'X Position'|@translate}
- <input size="3" maxlength="3" type="text" name="w[xpos]" value="{$watermark.xpos}"{if isset($ferrors.watermark.xpos)} class="dError"{/if}>%
+ <input size="3" maxlength="3" type="text" name="w[xpos]" value="{$watermark.xpos}"{if isset($ferrors.watermark.xpos)} class="dError"{/if}>%
{if isset($ferrors.watermark.xpos)}<span class="dErrorDesc" title="{$ferrors.watermark.xpos}">!</span>{/if}
</label>
@@ -812,5 +853,7 @@ jQuery(document).ready(function() {
{/if}
{if isset($default)}
+<div id="configContent">
{$PROFILE_CONTENT}
+</div>
{/if}
diff --git a/admin/themes/default/theme.css b/admin/themes/default/theme.css
index e39802d85..ca0834c6e 100644
--- a/admin/themes/default/theme.css
+++ b/admin/themes/default/theme.css
@@ -469,9 +469,18 @@ FORM.properties SPAN.property {
padding: 0 0.5em 0 0;
}
-#mainConf, #historyConf, #commentsConf, #watermarkConf {border:none}
-
-#configContent label {
+#configContent fieldset {
+ border:none;
+ padding-left:20px;
+}
+#configContent fieldset:not(.no-border) {
+ border-top:1px solid #bbb;
+}
+#configContent legend {
+ padding-left:0;
+ margin-left:-20px;
+}
+#configContent label:not(.no-bold) {
font-weight: bold;
}
@@ -479,10 +488,6 @@ FORM.properties SPAN.property {
white-space:nowrap;
}
-#mainConf li {
- margin-bottom: 1em;
-}
-
#theHeader H1 {
margin-bottom: 0.5em;
}
@@ -975,12 +980,12 @@ LEGEND {
#batchManagerGlobal #filter_dimension blockquote {margin:5px 0 20px 15px;}
#batchManagerGlobal #filter_dimension .ui-slider-horizontal {width:650px;margin:5px 0 10px 0;}
-#mainConf a.addFilter {font-weight:normal;margin-left:20px;}
-#mainConf a.removeFilter {font-weight:normal;}
-#mainConf span.property span.filter:first-child a.removeFilter {display:none;} /* can't delete the first field */
-#mainConf span.filter {display:block;margin-left:20px;}
-#mainConf .transparent {opacity:0.5;filter:alpha(opacity=50);}
-#mainConf .order_by_is_custom {display:block;font-weight:normal;font-style:italic;margin-left:20px;}
+#order_filters a.addFilter {font-weight:normal;margin-left:20px;}
+#order_filters a.removeFilter {font-weight:normal;}
+#order_filters span.property span.filter:first-child a.removeFilter {display:none;} /* can't delete the first field */
+#order_filters span.filter {display:block;margin-left:20px;}
+#order_filters .transparent {opacity:0.5;filter:alpha(opacity=50);}
+#order_filters .order_by_is_custom {display:block;font-weight:normal;font-style:italic;margin-left:20px;}
/* Upload Form */
#uploadBoxes .file {margin-bottom:5px;text-align:left;}
diff --git a/admin/themes/roma/theme.css b/admin/themes/roma/theme.css
index fce3a9cbc..4eff90e81 100644
--- a/admin/themes/roma/theme.css
+++ b/admin/themes/roma/theme.css
@@ -305,4 +305,8 @@ div.token-input-dropdown ul li.token-input-selected-dropdown-item {background-co
label>p.group_select {
color: #111;
background-color:#ccc;
+}
+
+#configContent fieldset:not(.no-border) {
+ border-top-color:#444;
} \ No newline at end of file
diff --git a/include/config_default.inc.php b/include/config_default.inc.php
index 2ecfd226b..b0a42d4ae 100644
--- a/include/config_default.inc.php
+++ b/include/config_default.inc.php
@@ -287,9 +287,6 @@ $conf['mail_sender_email'] = '';
// set true to allow text/html emails
$conf['mail_allow_html'] = true;
-// 'clear' or 'dark'
-$conf['mail_theme'] = 'clear';
-
// smtp configuration (work if fsockopen function is allowed for smtp port)
// smtp_host: smtp server host
// if null, regular mail function is used
diff --git a/include/functions_mail.inc.php b/include/functions_mail.inc.php
index 443a9b4e1..d6f7ea632 100644
--- a/include/functions_mail.inc.php
+++ b/include/functions_mail.inc.php
@@ -680,8 +680,8 @@ function pwg_mail($to, $args=array(), $tpl=array())
{
if ($template->smarty->template_exists('global-mail-css.tpl'))
{
- $template->set_filename('css', 'global-mail-css.tpl');
- $template->assign_var_from_handle('GLOBAL_MAIL_CSS', 'css');
+ $template->set_filename('global-css', 'global-mail-css.tpl');
+ $template->assign_var_from_handle('GLOBAL_MAIL_CSS', 'global-css');
}
if ($template->smarty->template_exists('mail-css-'. $args['theme'] .'.tpl'))
diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php
index 64598bed0..3eeeb8b56 100644
--- a/language/en_UK/admin.lang.php
+++ b/language/en_UK/admin.lang.php
@@ -205,6 +205,7 @@ $lang['Available only with HTML format'] = "Available only with HTML format";
$lang['Available versions for'] = 'Available versions for';
$lang['Average rate'] = "Average rate";
$lang['average time'] = "average time";
+$lang['Basic settings'] = 'Basic settings';
$lang['Batch Manager'] = 'Batch Manager';
$lang['between'] = "between";
$lang['between %d and %d pixels'] = 'between %d and %d pixels';
@@ -364,6 +365,7 @@ $lang['Gallery title'] = "Gallery title";
$lang['Gallery unlocked'] = 'Gallery unlocked';
$lang['GD library is missing'] = "GD library is missing";
$lang['GD version'] = "GD version";
+$lang['General'] = "General";
$lang['General statistics'] = "General statistics";
$lang['Generate multiple size images']='Generate multiple size images';
$lang['Get Support on Piwigo Forum'] = 'Get support on Piwigo forum';
@@ -463,12 +465,12 @@ $lang['Locked'] = "Locked";
$lang['Mail address is obligatory for all users'] = "Mail address is mandatory for all users";
$lang['Mail content'] = "Mail content";
$lang['Mail sent to %s [%s].'] = "Mail sent to %s [%s].";
+$lang['Mail theme'] = 'Mail theme';
$lang['Main "guest" user does not exist'] = "The main \"guest\" user does not exist";
$lang['Main "guest" user status is incorrect'] = "The main \"guest\" user status is incorrect";
$lang['Main "webmaster" user does not exist'] = "The main \"webmaster\" user does not exist";
$lang['Main "webmaster" user status is incorrect'] = "The main \"webmaster\" user status is incorrect";
$lang['Main Page'] = 'Main page';
-$lang['Main'] = "Main";
$lang['Maintenance'] = "Maintenance";
$lang['Make this language available to users'] = 'Make this language available to users';
$lang['Make this theme available to users'] = 'Make this theme available to users';
diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php
index d2f2d422c..cd38c6030 100644
--- a/language/fr_FR/admin.lang.php
+++ b/language/fr_FR/admin.lang.php
@@ -194,7 +194,7 @@ $lang['Access type'] = "Type d'accès";
$lang['Information data registered in database'] = "Informations enregistrées dans la base de données";
$lang['Default display'] = "Affichage par défaut";
$lang['The gallery URL is not valid.'] = "L'adresse de la galerie n'est pas valide.";
-$lang['Main'] = "Principale";
+$lang['General'] = "Général";
$lang['The number of comments a page must be between 5 and 50 included.'] = "Le nombre de commentaires d'utilisateurs par page doit être compris entre 5 et 50.";
$lang['Configuration'] = "Configuration";
$lang['confirm'] = "Confirmer";
@@ -951,6 +951,7 @@ $lang['No members to manage'] = "Aucun membre à gérer";
$lang['Rename'] = 'Renommer';
$lang['Purge user cache'] = 'Purger le cache utilisateur';
$lang['The picture dimensions will be reduced to %dx%d pixels.'] = 'La tailles des images sera réduite à %dx%d pixels.';
-
+$lang['Mail theme'] = 'Thème des mails';
$lang['Select at least one tag'] = 'Sélectionnez au moins un tag';
+$lang['Basic settings'] = 'Paramètres de base';
?> \ No newline at end of file
diff --git a/themes/Sylvia/mail-css.tpl b/themes/Sylvia/mail-css.tpl
deleted file mode 100644
index a579f7a0b..000000000
--- a/themes/Sylvia/mail-css.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Theme Sylvia mail css */
-
-body {ldelim} background-color:#111; color:#666;}
-#copyright {ldelim} background: transparent url({$ROOT_URL}themes/Sylvia/images/bottom-left-bg.jpg) no-repeat scroll left bottom;
-min-height: 220px; height: 220px; width: 100%; min-width: 100%; padding: 10px 100px 30px 100px; }
-h2 {ldelim} color:#f70;background: transparent url({$ROOT_URL}themes/Sylvia/images/fillet.gif) repeat-x scroll left bottom; padding-bottom: 5px;}
-img {ldelim} margin: 16px; border: 16px solid #444; -moz-border-radius: 4px; border-radius: 4px 4px; }
-img:hover {ldelim} padding: 15px; border: 0; background-color:#222;-moz-border-radius: 4px; border-radius: 4px 4px; }
-a {ldelim} color: #f70; background-color: transparent; border:0; text-decoration: none;}
-a:hover {ldelim} color: #F33; border-bottom: 1px solid #FF3363;}
-a.thumblnk:hover {ldelim} border:0;}
-a.Piwigo {ldelim} font-family: verdana, arial, helvetica, sans-serif; color : #F33; text-decoration: none; border: 0; }
-a.Piwigo:hover {ldelim} border-bottom: 1px solid #FF3363; } \ No newline at end of file
diff --git a/themes/clear/mail-css.tpl b/themes/clear/mail-css.tpl
deleted file mode 100644
index c61e369ef..000000000
--- a/themes/clear/mail-css.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Theme clear mail css */
-
-body {ldelim} background-color:#fff; color:#696969;}
-#copyright {ldelim} background: transparent; color: #333;}
-h2 {ldelim} background-color: #ddd;}
-img {ldelim} margin: 16px; border: 16px solid #aaa; -moz-border-radius: 4px; border-radius: 4px 4px; }
-img:hover {ldelim} padding: 15px; border: 1px solid yellow;background-color:#faebd7; -moz-border-radius: 4px; border-radius: 4px 4px; }
-a {ldelim} color: #369; background: transparent; }
-a:hover {ldelim} color: #ddd; }
diff --git a/themes/dark/mail-css.tpl b/themes/dark/mail-css.tpl
deleted file mode 100644
index 6399c9efd..000000000
--- a/themes/dark/mail-css.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Theme dark mail css */
-
-body {ldelim} background-color:#444; color:#fff;}
-#copyright {ldelim} color: #69c;}
-h2 {ldelim} background-color: #333; color:#fff48e;}
-img {ldelim} margin: 16px; border: 16px solid #111; -moz-border-radius: 4px; border-radius: 4px 4px; }
-img:hover {ldelim} padding: 15px; border: 1px solid yellow;background-color:#444;-moz-border-radius: 4px; border-radius: 4px 4px; }
-a {ldelim} color: #fff48e; background: transparent;border-bottom:1px dotted #005e89; }
-a:hover {ldelim} color: #fff48e;}
diff --git a/themes/default/template/mail/screenshot-clear.png b/themes/default/template/mail/screenshot-clear.png
new file mode 100644
index 000000000..ae879604a
--- /dev/null
+++ b/themes/default/template/mail/screenshot-clear.png
Binary files differ
diff --git a/themes/default/template/mail/screenshot-dark.png b/themes/default/template/mail/screenshot-dark.png
new file mode 100644
index 000000000..2906c4ec8
--- /dev/null
+++ b/themes/default/template/mail/screenshot-dark.png
Binary files differ
diff --git a/themes/default/template/mail/text/html/mail-css-dark.tpl b/themes/default/template/mail/text/html/mail-css-dark.tpl
index d35c698c5..390a7dfb6 100644
--- a/themes/default/template/mail/text/html/mail-css-dark.tpl
+++ b/themes/default/template/mail/text/html/mail-css-dark.tpl
@@ -16,7 +16,7 @@ html, body, #bodyTable {
background:#444;
background-image:radial-gradient(ellipse at center, #555, #333);
border:1px solid #000;
- border-top:4px solid #f70;
+ border-top:4px solid #f36;
text-align:center;
text-shadow:1px 1px 0px #000;
}
@@ -24,7 +24,7 @@ html, body, #bodyTable {
color:#eee;
}
#header #subtitle {
- color:#e06900;
+ color:#C9224C;
}
#content {
background:#111;
@@ -36,12 +36,12 @@ html, body, #bodyTable {
#footer {
background:#333;
border:1px solid #000;
- border-bottom:2px solid #f70;
+ border-bottom:2px solid #f36;
}
/* links */
a {
- color:#f70;
+ color:#f36;
text-decoration:none;
}
a:hover {
diff --git a/themes/elegant/mail-css.tpl b/themes/elegant/mail-css.tpl
deleted file mode 100644
index 6399c9efd..000000000
--- a/themes/elegant/mail-css.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Theme dark mail css */
-
-body {ldelim} background-color:#444; color:#fff;}
-#copyright {ldelim} color: #69c;}
-h2 {ldelim} background-color: #333; color:#fff48e;}
-img {ldelim} margin: 16px; border: 16px solid #111; -moz-border-radius: 4px; border-radius: 4px 4px; }
-img:hover {ldelim} padding: 15px; border: 1px solid yellow;background-color:#444;-moz-border-radius: 4px; border-radius: 4px 4px; }
-a {ldelim} color: #fff48e; background: transparent;border-bottom:1px dotted #005e89; }
-a:hover {ldelim} color: #fff48e;}