To moze wygladac tak:
imp_cookies.css
#cookie_law_informations {
text-align: left;
padding: 15px 0 15px 50px;
}
#cookie_law_informations a {
display: inline-block;
margin: 0 0 0 20px;
}
imp_cookies.php
public function hookTop()
{
global $smarty, $cookie;
$bots = array(
'Googlebot',
'Baiduspider',
'ia_archiver',
'R6_FeedFetcher',
'NetcraftSurveyAgent',
'Sogou web spider',
'bingbot',
'Yahoo! Slurp',
'facebookexternalhit',
'PrintfulBot',
'msnbot',
'Twitterbot',
'UnwindFetchor',
'urlresolver',
'Butterfly',
'TweetmemeBot' );
foreach($bots as $bot)
if( stripos( $_SERVER['HTTP_USER_AGENT'], $bot ) !== false )
return;
if($cookie->__isset('cookieAccepted'))
return;
................................
public function hookHeader()
{
if (version_compare(_PS_VERSION_, '1.5', '>'))
{
$this->context->controller->addCSS(($this->_path).'imp_cookies.css', 'all');
}
elseif(version_compare(_PS_VERSION_, '1.4', '>'))
{
Tools::addCSS(($this->_path).'imp_cookies.css', 'all');
}
else return;
}
...................................................................................
imp_cookies.tpl
<script type="text/javascript">
$(function()
{ldelim}
$('#cookie_law_informations').css( {ldelim}marginTop: "-50px"{rdelim}).insertBefore('#page');
$('#cookie_law_informations').show().delay(1000).animate( {ldelim}marginTop: "0px"{rdelim});
$('#cookie_law_informations a.accept').click(function()
{ldelim}
$.ajax({ldelim} url: '{$module_dir}ajax.php', async: false {rdelim});
$('#cookie_law_informations').animate( {ldelim}marginTop: "-50px"{rdelim});
{rdelim});
{rdelim});
</script>
.......................................................
<div id="cookie_law_informations" style="display: none; ................................
.......................................................
ajax.php
<?php
require_once(dirname(__FILE__).'/../../config/config.inc.php');
require_once(dirname(__FILE__).'/../../init.php');
global $cookie;
$cookie->__set('cookieAccepted', true);
$cookie->write();
?>
Biblioteki js, juz nie potrzebujemy, nie bedzie sie gryzla.
Mamy jedno ciasteczko, ktore prawidlowo jest obslugiwane.
Nie mamy zadnych opoznien.
Klucz cookieAccepted mamy na stale w ciasteczku i moze byc wykorzystany przez inne moduly.
Oczywiscie mozemy to zrobic bardziej elegancko:
w klasie zadeklarowac trigger a w konstruktorze sprawdzic booty, czy ciasteczko juz jest ustawione i ustawic odpowiednio trigger. Na podstawie stanu triggera zwracac tpl lub nie, includowac css.