getSession(); $mailto_links = $session->get('com_jem.links', array()); if (!isset($mailto_links[$hash])) { $mailto_links[$hash] = new stdClass; } $mailto_links[$hash]->link = $url; $mailto_links[$hash]->expiry = time(); $session->set('com_jem.links', $mailto_links); return $hash; } public static function cleanHashes($lifetime = 1440) { // Flag for if we've cleaned on this cycle static $cleaned = false; if (!$cleaned) { $past = time() - $lifetime; $app = Factory::getApplication(); $session = $app->getSession(); $mailto_links = $session->get('com_jem.links', array()); foreach ($mailto_links as $index => $link) { if ($link->expiry < $past) { unset($mailto_links[$index]); } } $session->set('com_jem.links', $mailto_links); $cleaned = true; } } public static function validateHash($hash) { $retval = false; $app = Factory::getApplication(); $session = $app->getSession(); self::cleanHashes(); $mailto_links = $session->get('com_jem.links', array()); if (isset($mailto_links[$hash])) { $retval = $mailto_links[$hash]->link; } return $retval; } } ?>