Erweitere Albumsperre um Umschalten und Seitennavigation

This commit is contained in:
Terranom674
2026-08-16 23:40:49 +02:00
parent 427273fd86
commit 72810d031b

View File

@@ -4,20 +4,44 @@ if (!defined('PHPWG_ROOT_PATH'))
die('Hacking attempt!'); die('Hacking attempt!');
} }
function bratonien_tools_get_public_albums() function bratonien_tools_get_album_lock_page($page = 1, $per_page = 10)
{ {
$query = "SELECT id, name, uppercats FROM ".CATEGORIES_TABLE." WHERE status = 'public' ORDER BY global_rank ASC, name ASC"; $per_page = max(1, min(10, (int)$per_page));
return query2array($query); $page = max(1, (int)$page);
$count_row = pwg_db_fetch_assoc(pwg_query('SELECT COUNT(*) AS total FROM '.CATEGORIES_TABLE));
$total = $count_row ? (int)$count_row['total'] : 0;
$pages = max(1, (int)ceil($total / $per_page));
if ($page > $pages)
{
$page = $pages;
} }
function bratonien_tools_lock_album() $offset = ($page - 1) * $per_page;
$query = 'SELECT id, name, uppercats, status FROM '.CATEGORIES_TABLE
.' ORDER BY global_rank ASC, name ASC'
.' LIMIT '.$offset.', '.$per_page;
return array(
'albums' => query2array($query),
'page' => $page,
'pages' => $pages,
'total' => $total,
'has_previous' => $page > 1,
'has_next' => $page < $pages,
'previous_page' => max(1, $page - 1),
'next_page' => min($pages, $page + 1),
);
}
function bratonien_tools_toggle_album_lock()
{ {
global $user; global $user;
$category_id = isset($_POST['lock_category_id']) ? (int)$_POST['lock_category_id'] : 0; $category_id = isset($_POST['lock_category_id']) ? (int)$_POST['lock_category_id'] : 0;
if ($category_id < 1) if ($category_id < 1)
{ {
throw new Exception('Bitte ein öffentliches Album auswählen.'); throw new Exception('Ungültiges Album.');
} }
$query = 'SELECT id, name, status FROM '.CATEGORIES_TABLE.' WHERE id = '.$category_id.' LIMIT 1'; $query = 'SELECT id, name, status FROM '.CATEGORIES_TABLE.' WHERE id = '.$category_id.' LIMIT 1';
@@ -28,20 +52,24 @@ function bratonien_tools_lock_album()
} }
$album = pwg_db_fetch_assoc($result); $album = pwg_db_fetch_assoc($result);
if (!function_exists('set_cat_status'))
{
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
}
if ($album['status'] === 'private') if ($album['status'] === 'private')
{ {
bratonien_tools_ensure_private_album_access($category_id, (int)$user['id']); set_cat_status(array($category_id), 'public');
if (function_exists('invalidate_user_cache')) if (function_exists('invalidate_user_cache'))
{ {
invalidate_user_cache(); invalidate_user_cache();
} }
return array('message' => 'Das Album ist bereits privat. Dein Zugriff wurde sichergestellt.'); return array(
} 'message' => 'Album „'.$album['name'].'“ wurde wieder öffentlich geschaltet.',
);
if (!function_exists('set_cat_status'))
{
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
} }
set_cat_status(array($category_id), 'private'); set_cat_status(array($category_id), 'private');