You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

63 lines
1.7 KiB

<?php
/**
* @brief inits the categories from cookies and URL params
*
* @param $db: a PDO connection to the database
*
* @warning session_start() MUST have been called before calling this function
*/
function initCategories($db)
{
if(!isset($_SESSION['categorieStatus']))
{
//init all categories
$categories = getCategories($db);
foreach($categories as $cat)
$_SESSION['categorieStatus'][$cat['cat_id']] = true;
//loading from preferences
loadCategoriesFromCookie();
}
}
/**
* @brief loads the categories preferences from the cookie
*/
function loadCategoriesFromCookie()
{
if(isset($_COOKIE['categorieStatus']))
{
$categories = unserialize($_COOKIE['categorieStatus']);
if(is_array($categories))
for($i = 0; $i < count($categories); ++$i)
if(is_bool($categories[$i]))
$_SESSION[$i] = $categories[$i];
}
}
/**
* @brief saves the categories preferences from $_POST to $_SESSION
*
* @warning $_SESSION['categorieStatus] MUST have been populated before calling this function
*/
function saveCategoriesPostToSession()
{
foreach($_SESSION['categorieStatus'] as $cat_id => $cat_value)
{
$catPostName = 'cat_'.$cat_id;
if(isset($_POST[$catPostName]))
$_SESSION['categorieStatus'][$cat_id] = ($_POST[$catPostName] == 'on');
else
$_SESSION['categorieStatus'][$cat_id] = false;
}
}
/**
* @brief saves the categories preferences from $_SESSION to a cookie
*/
function saveCategoriesSessionToCookie()
{
setcookie('categorieStatus', serialize($_SESSION['categorieStatus']), strtotime('+6 months'), null, null, false, true);
}
?>