<?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; } } }