mirror of
https://github.com/Piwigo/Piwigo.git
synced 2025-04-26 11:19:55 +03:00
parent
5f1bc8e394
commit
8399d80254
7 changed files with 317 additions and 3 deletions
61
admin.php
61
admin.php
|
@ -338,6 +338,66 @@ if (
|
||||||
invalidate_user_cache();
|
invalidate_user_cache();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$show_whats_new = false;
|
||||||
|
|
||||||
|
$whats_new_major_version = get_branch_from_version(PHPWG_VERSION);
|
||||||
|
|
||||||
|
if (userprefs_get_param('show_whats_new_'.$whats_new_major_version, true) and pwg_is_dbconf_writeable())
|
||||||
|
{
|
||||||
|
if ($user['registration_date'] > $conf['last_major_update'])
|
||||||
|
{
|
||||||
|
userprefs_update_param('show_whats_new_'.$whats_new_major_version, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// purge old whats_new_*
|
||||||
|
if (isset($user['preferences']))
|
||||||
|
{
|
||||||
|
$userprefs_params_to_delete = array();
|
||||||
|
|
||||||
|
foreach (array_keys($user['preferences']) as $pref_param)
|
||||||
|
{
|
||||||
|
if (preg_match('/^whats_new_/', $pref_param))
|
||||||
|
{
|
||||||
|
$userprefs_params_to_delete[] = $pref_param;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($userprefs_params_to_delete) > 0)
|
||||||
|
{
|
||||||
|
userprefs_delete_param($userprefs_params_to_delete);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$show_whats_new = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$release_note_url = PHPWG_URL.'/releases/'.$whats_new_major_version.'.0.0';
|
||||||
|
|
||||||
|
$whats_new_imgs = array(
|
||||||
|
'1' =>'https://ressources.piwigo.com/uploads/c/v/7/cv7jpz6hf8//2024/11/07/20241107171642-58ded6af.png',
|
||||||
|
'2' =>'https://ressources.piwigo.com/uploads/c/v/7/cv7jpz6hf8//2024/11/07/20241107171642-9d651969.png',
|
||||||
|
'3' =>'https://ressources.piwigo.com/uploads/c/v/7/cv7jpz6hf8//2024/11/07/20241107171643-d659d017.png',
|
||||||
|
'4' =>'https://ressources.piwigo.com/uploads/c/v/7/cv7jpz6hf8//2024/11/07/20241107171642-1109101f.png',
|
||||||
|
);
|
||||||
|
|
||||||
|
$display_bell = false;
|
||||||
|
if (strtotime($conf['last_major_update']) > strtotime('1 month ago'))
|
||||||
|
{
|
||||||
|
$display_bell = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$template->assign(
|
||||||
|
array(
|
||||||
|
'SHOW_WHATS_NEW' => $show_whats_new,
|
||||||
|
'WHATS_NEW_MAJOR_VERSION' => $whats_new_major_version,
|
||||||
|
'RELEASE_NOTE_URL' => $release_note_url,
|
||||||
|
'WHATS_NEW_IMGS' => $whats_new_imgs,
|
||||||
|
'DISPLAY_BELL' => $display_bell,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | Include specific page |
|
// | Include specific page |
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
|
@ -363,4 +423,5 @@ flush_page_messages();
|
||||||
$template->pparse('admin');
|
$template->pparse('admin');
|
||||||
|
|
||||||
include(PHPWG_ROOT_PATH.'include/page_tail.php');
|
include(PHPWG_ROOT_PATH.'include/page_tail.php');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -863,4 +863,25 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important;
|
||||||
|
|
||||||
.cat-move-order-popin input[name=recursiveAutoOrder]:hover {
|
.cat-move-order-popin input[name=recursiveAutoOrder]:hover {
|
||||||
background-color: #ffc17e;
|
background-color: #ffc17e;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new_popin{
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close_whats_new{
|
||||||
|
color:white
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new h3{
|
||||||
|
color: #3C3C3C;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new button{
|
||||||
|
background-color: #ECECEC;
|
||||||
|
color: #3C3C3C;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new button:hover{
|
||||||
|
background-color:#FFA646;
|
||||||
}
|
}
|
|
@ -17,7 +17,14 @@
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<a class="externalLink tiptip piwigo-logo" href="{$PHPWG_URL}" title="{'Visit Piwigo project website'|translate}"><img src="admin/themes/default/images/piwigo-grey.svg"></a>
|
<div>
|
||||||
|
<a class="externalLink tiptip piwigo-logo" href="{$PHPWG_URL}" title="{'Visit Piwigo project website'|translate}"><img src="admin/themes/default/images/piwigo-grey.svg"></a>
|
||||||
|
{if isset($DISPLAY_BELL) and $DISPLAY_BELL}
|
||||||
|
<span id="whats_new_notification" class="icon-blue tiptip" onclick="show_user_whats_new()" title="{'What\'s new in version %s'|translate:$WHATS_NEW_MAJOR_VERSION}">
|
||||||
|
<i class="icon-bell"></i>
|
||||||
|
</span>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
<div id="pageInfos">
|
<div id="pageInfos">
|
||||||
{if isset($debug.TIME) }
|
{if isset($debug.TIME) }
|
||||||
{'Page generated in'|translate} {$debug.TIME} ({$debug.NB_QUERIES} {'SQL queries in'|translate} {$debug.SQL_TIME}) -
|
{'Page generated in'|translate} {$debug.TIME} ({$debug.NB_QUERIES} {'SQL queries in'|translate} {$debug.SQL_TIME}) -
|
||||||
|
@ -30,6 +37,44 @@
|
||||||
</div>{* <!-- footer --> *}
|
</div>{* <!-- footer --> *}
|
||||||
</div>{* <!-- the_page --> *}
|
</div>{* <!-- the_page --> *}
|
||||||
|
|
||||||
|
<div id="whats_new">
|
||||||
|
<div id="whats_new_popin">
|
||||||
|
<a class="icon-cancel close_whats_new" onClick="hide_user_whats_new()"></a>
|
||||||
|
<h3>{'What\'s new in version %s'|translate:$WHATS_NEW_MAJOR_VERSION}</h3>
|
||||||
|
<div>
|
||||||
|
<div class="whats_new_block_container">
|
||||||
|
<div class="whats_new_block icon-yellow">
|
||||||
|
<h4>{'A new interface for user management'|translate}</h4>
|
||||||
|
<img src="{$WHATS_NEW_IMGS.1}">
|
||||||
|
</div>
|
||||||
|
<div class="whats_new_block icon-green">
|
||||||
|
<h4>{'Brand new features : Activities logs and PDF reader'|translate}</h4>
|
||||||
|
<img src="{$WHATS_NEW_IMGS.2}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="whats_new_block_container">
|
||||||
|
<div class="whats_new_block icon-blue">
|
||||||
|
<h4>{'Enhanced interface for batch manager and album selector'|translate}</h4>
|
||||||
|
<img src="{$WHATS_NEW_IMGS.3}">
|
||||||
|
</div>
|
||||||
|
<div class="whats_new_block icon-purple">
|
||||||
|
<h4>{'Even more filters for the gallery search engine'|translate}</h4>
|
||||||
|
<img src="{$WHATS_NEW_IMGS.4}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="whats_new_buttons">
|
||||||
|
<button onClick="hide_user_whats_new()"><i class="icon-thumbs-up"></i> {'Ok, got it!'|translate}</button>
|
||||||
|
<a class="buttonLike" href="{$RELEASE_NOTE_URL}" target="_blank"><i class="icon-book"></i> {'Read the release note'|translate}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
{combine_script id='jquery.tipTip' load='footer' path='themes/default/js/plugins/jquery.tipTip.minified.js'}
|
{combine_script id='jquery.tipTip' load='footer' path='themes/default/js/plugins/jquery.tipTip.minified.js'}
|
||||||
{footer_script require='jquery.tipTip'}
|
{footer_script require='jquery.tipTip'}
|
||||||
|
@ -43,6 +88,30 @@ jQuery('a.externalLink').click(function() {
|
||||||
window.open(jQuery(this).attr("href"));
|
window.open(jQuery(this).attr("href"));
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function hide_user_whats_new() {
|
||||||
|
$.ajax({
|
||||||
|
url: "ws.php?format=json&method=pwg.users.preferences.set",
|
||||||
|
type: "POST",
|
||||||
|
dataType: "JSON",
|
||||||
|
data: {
|
||||||
|
param: 'show_whats_new_{$WHATS_NEW_MAJOR_VERSION}',
|
||||||
|
value: false,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
$('#whats_new').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
function show_user_whats_new() {
|
||||||
|
$('#whats_new').show();
|
||||||
|
}
|
||||||
|
|
||||||
|
{if isset($SHOW_WHATS_NEW) && $SHOW_WHATS_NEW}
|
||||||
|
show_user_whats_new()
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{/footer_script}
|
{/footer_script}
|
||||||
|
|
||||||
<!-- BEGIN get_combined -->
|
<!-- BEGIN get_combined -->
|
||||||
|
|
|
@ -7555,4 +7555,134 @@ color:#FF7B00;
|
||||||
.promote-content .left-side img {
|
.promote-content .left-side img {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Css for whats new popin */
|
||||||
|
#whats_new{
|
||||||
|
display: none;
|
||||||
|
position: fixed;
|
||||||
|
z-index: 100;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
background-color: rgba(0, 0, 0, 0.7);
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new_popin{
|
||||||
|
width: 40%;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
text-align: left;
|
||||||
|
padding: 30px;
|
||||||
|
border-radius: 10px;
|
||||||
|
max-height:90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close_whats_new{
|
||||||
|
position: absolute;
|
||||||
|
right: -40px;
|
||||||
|
top: -40px;
|
||||||
|
font-size: 30px;
|
||||||
|
transition: all 125ms ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new h3{
|
||||||
|
font-size: 19px;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 25.87px;
|
||||||
|
text-align: center;
|
||||||
|
background-color:transparent;
|
||||||
|
margin-top:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new h4{
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 20.43px;
|
||||||
|
text-align: left;
|
||||||
|
margin:0;
|
||||||
|
margin-bottom:15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new .whats_new_block_container{
|
||||||
|
display:flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new .whats_new_block{
|
||||||
|
border-radius:13px;
|
||||||
|
padding:15px;
|
||||||
|
padding-bottom:0px;
|
||||||
|
display:flex;
|
||||||
|
flex-direction:column;
|
||||||
|
justify-content:space-between;
|
||||||
|
margin:7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new .whats_new_block:hover{
|
||||||
|
scale:115%;
|
||||||
|
transition:.6s;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new .whats_new_block.icon-yellow:hover{
|
||||||
|
transform-origin: top left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new .whats_new_block.icon-green:hover{
|
||||||
|
transform-origin: top right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new .whats_new_block.icon-blue:hover{
|
||||||
|
transform-origin: bottom left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new .whats_new_block.icon-purple:hover{
|
||||||
|
transform-origin: bottom right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new .whats_new_block.icon-yellow,
|
||||||
|
#whats_new .whats_new_block.icon-purple{
|
||||||
|
width:40%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new .whats_new_block.icon-green,
|
||||||
|
.whats_new_block.icon-blue{
|
||||||
|
width:60%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#whats_new .whats_new_block img{
|
||||||
|
width:100%;
|
||||||
|
height:auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new .whats_new_buttons{
|
||||||
|
display:flex;
|
||||||
|
margin-top:15px;
|
||||||
|
justify-content:space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new button{
|
||||||
|
padding: 9px 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: normal;
|
||||||
|
border:none;
|
||||||
|
cursor:pointer;
|
||||||
|
transition: all 125ms ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new_notification{
|
||||||
|
border-radius: 15px;
|
||||||
|
top: 2px;
|
||||||
|
position: absolute;
|
||||||
|
right: 42px;
|
||||||
|
padding: 1px;
|
||||||
|
cursor: pointer;
|
||||||
|
box-shadow: 0px 4px 4px 0px #00000040;
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
|
@ -2306,4 +2306,25 @@ ul.jqtree-tree li.jqtree-ghost span.jqtree-line {
|
||||||
|
|
||||||
.first-letter-capitalize::first-letter {
|
.first-letter-capitalize::first-letter {
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new_popin{
|
||||||
|
background-color: #3C3C3C;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close_whats_new{
|
||||||
|
color:#3C3C3C;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new h3{
|
||||||
|
color: #CCCCCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new button{
|
||||||
|
background-color:#2E2E2E;
|
||||||
|
color:#777777;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whats_new button:hover{
|
||||||
|
background-color:#1B1B1B;
|
||||||
}
|
}
|
|
@ -166,6 +166,12 @@ elseif ($conf['piwigo_installed_version'] != PHPWG_VERSION)
|
||||||
conf_update_param('piwigo_installed_version', PHPWG_VERSION);
|
conf_update_param('piwigo_installed_version', PHPWG_VERSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isset($conf['last_major_update']))
|
||||||
|
{
|
||||||
|
list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();'));
|
||||||
|
conf_update_param('last_major_update', $dbnow, true);
|
||||||
|
}
|
||||||
|
|
||||||
// 2022-02-25 due to escape on "rank" (becoming a mysql keyword in version 8), the $conf['order_by'] might
|
// 2022-02-25 due to escape on "rank" (becoming a mysql keyword in version 8), the $conf['order_by'] might
|
||||||
// use a "rank", even if admin/configuration.php should have removed it. We must remove it.
|
// use a "rank", even if admin/configuration.php should have removed it. We must remove it.
|
||||||
// TODO remove this data update as soon as 2025 arrives
|
// TODO remove this data update as soon as 2025 arrives
|
||||||
|
@ -222,6 +228,8 @@ load_language('common.lang');
|
||||||
if ( is_admin() || (defined('IN_ADMIN') and IN_ADMIN) )
|
if ( is_admin() || (defined('IN_ADMIN') and IN_ADMIN) )
|
||||||
{
|
{
|
||||||
load_language('admin.lang');
|
load_language('admin.lang');
|
||||||
|
// Add language for temporary strings for new popup, from piwigo 15
|
||||||
|
load_language('whats_new_'.get_branch_from_version(PHPWG_VERSION).'.lang');
|
||||||
}
|
}
|
||||||
trigger_notify('loading_lang');
|
trigger_notify('loading_lang');
|
||||||
load_language('lang', PHPWG_ROOT_PATH.PWG_LOCAL_DIR, array('no_fallback'=>true, 'local'=>true) );
|
load_language('lang', PHPWG_ROOT_PATH.PWG_LOCAL_DIR, array('no_fallback'=>true, 'local'=>true) );
|
||||||
|
|
|
@ -486,6 +486,8 @@ else
|
||||||
|
|
||||||
$user = build_user(1, true);
|
$user = build_user(1, true);
|
||||||
log_user($user['id'], false);
|
log_user($user['id'], false);
|
||||||
|
|
||||||
|
$user['preferences']['show_whats_new_'.get_branch(PHPWG_VERSION)] = false;
|
||||||
|
|
||||||
// newsletter subscription
|
// newsletter subscription
|
||||||
if ($is_newsletter_subscribe)
|
if ($is_newsletter_subscribe)
|
||||||
|
@ -497,9 +499,11 @@ else
|
||||||
array('origin' => 'installation')
|
array('origin' => 'installation')
|
||||||
);
|
);
|
||||||
|
|
||||||
userprefs_update_param('show_newsletter_subscription', false);
|
$user['preferences']['show_newsletter_subscription'] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
userprefs_save();
|
||||||
|
|
||||||
// email notification
|
// email notification
|
||||||
if (isset($_POST['send_credentials_by_mail']))
|
if (isset($_POST['send_credentials_by_mail']))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue