fixes #2345 create piwigo standard pages

create new theme standard pages with tpl, css, js and images
update backend to handle pages
add config use_standard_pages
on update set config to false, on install set config to true
add standard pages to no be ingored in git
This commit is contained in:
HWFord
2025-03-18 16:46:41 +01:00
parent d44ac01a48
commit f88472fa9c
23 changed files with 1273 additions and 29 deletions
+23
View File
@@ -1048,6 +1048,29 @@ function log_user($user_id, $remember_me)
{
global $conf, $user;
//New default login and register pages, if users changes languages and succesfully logs in
//we want to update the userpref language stored in a cookie
//TODO check value of cookie
if (isset($_COOKIE['lang']) and $user['language'] != $_COOKIE['lang'])
{
if (!array_key_exists($_COOKIE['lang'], get_languages()))
{
fatal_error('[Hacking attempt] the input parameter "'.$_COOKIE['lang'].'" is not valid');
}
single_update(
USER_INFOS_TABLE,
array('language' => $_COOKIE['lang']),
array('user_id' => $user_id)
);
// We unset the lang cookie, if user has changed their language using interface we don't want to keep setting it back
// to what was chosen using standard pages lang switch
setcookie("lang", "", time() - 3600);
}
if ($remember_me and $conf['authorize_remembering'])
{
$now = time();
+13 -2
View File
@@ -181,10 +181,21 @@ class Template
*/
function set_theme($root, $theme, $path, $load_css=true, $load_local_head=true, $colorscheme='dark')
{
$this->set_template_dir($root.'/'.$theme.'/'.$path);
$themeconf = $this->load_themeconf($root.'/'.$theme);
// We loop over the theme and the parent theme, so if we exclude default,
// standard pages can't get the header to load the html header
if (
'default' != $theme
and in_array(script_basename(), array('identification', 'register', 'password'))
and (($themeconf['use_standard_pages'] ?? false) or conf_get_param('use_standard_pages', false))
)
{
$theme = 'standard_pages';
}
$this->set_template_dir($root.'/'.$theme.'/'.$path);
if (isset($themeconf['parent']) and $themeconf['parent'] != $theme)
{
$this->set_theme(