feature 2995 and feature 2997

change organization of configuration page
add theme parameter on GUI
change links color of dark mail theme (pink)
remove main themes css files

git-svn-id: http://piwigo.org/svn/trunk@25372 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
mistic100 2013-11-07 15:30:59 +00:00
parent 12b68909dc
commit ae974849bc
16 changed files with 291 additions and 273 deletions

View file

@ -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,
)

View file

@ -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');

View file

@ -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>
{footer_script require='jquery'}
jQuery("#activate_comments").change(function(){
if ($(this).is(':checked')) {
jQuery("#comments_param_warp").show();
} else {
jQuery("#comments_param_warp").hide();
}
});
{/footer_script}
</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>
<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');
} else {
$('.addFilter').css('display', '');
}
}
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}
<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}
<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) and !isset($ferrors.$type)} style="display:inline"{/if}>
<a href="#" id="sizeEditOpen-{$type}" class="sizeEditOpen">{'edit'|@translate}</a>
</span>
{$type|@translate}
</label>
</td>
</td>
</tr>
<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>
<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>
<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>
<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>
{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}

View file

@ -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;}

View file

@ -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;
}

View file

@ -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

View file

@ -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'))

View file

@ -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';

View file

@ -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';
?>

View file

@ -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; }

View file

@ -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; }

View file

@ -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;}

Binary file not shown.

After

(image error) Size: 69 KiB

Binary file not shown.

After

(image error) Size: 71 KiB

View file

@ -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 {

View file

@ -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;}