blob: e86a920f900e77cfc4ebf3da25aac1f472966d42 [file] [log] [blame]
<?php
/**
* *****************************************************************************
* Copyright (c) 2016 Eclipse Foundation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eric Poirier (Eclipse Foundation)- initial API and implementation
* *****************************************************************************
*/
Class Cookies {
private $cookie_name = "eclipse_settings";
private $cookie_domain = "";
/**
* Set the Banner Ad Cookies
*
* @param string $key - Key/Name of the setting
*
* @param null $value - array or string of value
*
* @param null $expiration - expiration date in timestamp
*/
public function setCookies($name, $value = NULL, $expiration = NULL) {
// Return here is no name have been specified
if (empty($name)) {
return FALSE;
}
// Make sure the expiration is a number
if (!is_numeric($expiration)) {
$expiration = strtotime("+365 day");
}
// Json decoded cookies
$cookie_values = $this->getCookie();
// Update or add new $key
$cookie_values[$name]['value'] = $value;
$cookie_values[$name]['expiration'] = $expiration;
// Get the cookie name
$cookie_name = $this->getCookieName();
// Set the path of the cookie to root
// since the cookie should be available
// everywhere on the site.
$cookie_path = "/";
// Set the cookie with the appropriate cookie name, values and path
// Here we set the expiry date of the global cookie to a year
setcookie($cookie_name,json_encode($cookie_values, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT), strtotime("+365 day"), $cookie_path);
}
/**
* Get the Banner Ad cookies
*
* @return array
*/
public function getCookie() {
$cookie = array();
// Get the cookie name
$cookie_name = $this->getCookieName();
// If the cookie is set in the browser
if (isset($_COOKIE[$cookie_name])) {
// decode it and make sure it's an array
// by specifying TRUE as a parameter
$cookie = json_decode($_COOKIE[$cookie_name], TRUE);
}
return $cookie;
}
/**
* Get a specific cookie based on a key
*
* @param string $key
*
* @return array
*/
public function getNameValue($name = "") {
if (empty($name)) {
return array();
}
// Get the cookie
$cookie = $this->getCookie();
if (!isset($cookie[$name])) {
return array();
}
return $cookie[$name];
}
/**
* Get a Cookie Name
*
* @return string
*/
public function getCookieName() {
if (empty($this->cookie_name)) {
$this->setCookieName();
}
return $this->cookie_name;
}
/**
* Set a Cookie name
*
* @param string $name
*/
public function setCookieName($name = "") {
if (!empty($name)) {
$this->cookie_name = $name;
}
}
}