|
|
|
@ -0,0 +1,63 @@ |
|
|
|
<?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); |
|
|
|
} |
|
|
|
?>
|