Magento操作Cookie 并且使用观察者&事件来禁用单页面全页缓存(EE FPC)

CookieCompliance:Magento 2 Cookie合规性插件 Cookie合规性 从下面列出的插件中派生出来,以允许用户指定有关由插件设置的cookie的其他详细信息:cookie名称,cookie域,exp。 时间,道路等等。 这样,用户可以通过指定Cookie名称来与同一域上的其他应用程序集成,以确保清除横幅的用户不会在其他应用程序上再次看到它(反之亦然) 原始插件 立即下载

Groupon(http://www.groupon.hk/)的首次访问会弹出一个框让客户输入电子邮件来订阅他们的最新咨询,只要提交表单或者点已经提交的按钮该框就会消失 并且以后访问都不会出现  大家应该见过  最近按照公司的要求需要在magento里面开发类似的效果。 首先明确这其中使用的原理是cookie 那magento该怎么操纵cookie呢 其实在core的model里面有一个cookie类 它简单地封装了php原本的setcookie函数 效果是一样的 只需要用两个functoin来get和set即可 示例代码如下

<?php
/**
* set cookie
* name and value are mandatory; other parameters are optional and can be set as null
* $period = cookie expire date in seconds
*/
Mage::getModel('core/cookie')--->set($name, $value, $period, $path, $domain, $secure, $httponly);
/**
* get cookie with a specific name
* $name = name of the cookie
*/
Mage::getModel('core/cookie')->get($name);
/**
* get all cookies as an array
*/
Mage::getModel('core/cookie')->get();
/**
* delete/remove cookie
* $name is mandatory; other parameters are optional and can be set to null
*/
Mage::getModel('core/cookie')->delete($name, $path, $domain, $secure, $httponly);
?>

其实setcookie在magento里面比较简单 但是后来我发现和我网站本身的EE FPC(企业版全页缓存)会发送冲突 使用了FPC后 页面会在不刷新缓存的情况下永远不会发生变化 (为此我调试了很久才发现有这个问题)那么cookie的功能就无法施展 看来只有在这个页面禁用FPC了 做法是创建自定义Observer和Event来完成。关于观察者事件和模块创建过程 大家可以参考我之前的文章。http://www.blog.youkuaiyun.com/ddjohn

首先在模块的config.xml里面创建自定义的观察者

 <events>
<controller_action_predispatch>
<observers>
<yip_setcookie_disable_groupsale>
<class>Yip_Setcookie_Model_Observer</class>
<method>processPreDispatch</method>
</yip_setcookie_disable_groupsale>
</observers>
</controller_action_predispatch>
</events>

然后Observer.php如下:

<?php
class Yip_Setcookie_Model_Observer
{
/**
* Disable FPC for group sale page
* used for event: controller_action_predispatch
*
* @param Varien_Event_Observer $observer
* @return Yip_Setcookie_Model_Observer
*/
public function processPreDispatch(Varien_Event_Observer $observer)
{
$action = $observer->getEvent()->getControllerAction();
$requestUri = $action->getRequest()->getRequestUri();

// Check to see if $requestUri is equel to group sale page uri
if(strstr($requestUri, "your-page-url"))
{
$request = $action->getRequest();
$cache = Mage::app()->getCacheInstance();

// Tell Magento to 'ban' the use of FPC for this request
$cache->banUse('full_page');
}

return $this;
}
}
这样做便在单个页面禁用了FPC 并且cookie可以使用自如了。cheers!
magento-ee-ce-encryption:Magento模块,为CE实现EE密码哈希 CE的EE密码散列 Magento模块,为CE实现EE密码哈希。 这对于从EE降级为CE的人们很有用。 EE使用与CE不同的哈希算法。 使用此模块,您将能够继续将CE的EE哈希密码使用。 立即下载

相关推荐

数据中心光模块升级实录:从200G QSFP56到400G QSFP-DD的踩坑指南

本文记录了数据中心从200G QSFP56升级至400G QSFP-DD光模块的完整实战经验。文章深入剖析了升级过程中面临的兼容性、链路预算、布线、散热与功耗管理等核心挑战,并提供了具体的解决方案与排坑指南,为高速网络升级提供了宝贵的实践参考。

butter的博客 479

Redis那些事

Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

sunjie12311的博客 188

时空图神经网络实战:T-GCN在交通流量预测中的深度解析

本文深度解析了时空图神经网络T-GCN在交通流量预测中的实战应用。通过结合图卷积网络(GCN)和门控循环单元(GRU),T-GCN有效捕捉交通数据的时空依赖性,相比传统方法降低30%以上预测误差。文章详细介绍了T-GCN的核心技术、工程实践和优化策略,为智能交通系统提供有力工具。

weixin_29038537的博客 268

Redis复习总结

一文在手,redis问题不愁

weixin_45974176的博客 622

告别Keil4!手把手教你用Keil C51 V9.61编译51单片机代码(附最新激活方法)

本文详细介绍了Keil C51 V9.61在51单片机开发中的全栈升级指南,包括编译速度提升、调试器性能优化和现代开发支持等核心优势。通过智能安装方案、项目迁移实战和新特性深度应用,帮助开发者告别Keil4,大幅提升开发效率。附有最新激活方法和实用技巧,适用于嵌入式开发工程师。

weixin_26886855的博客 420

Transformer数学推导——Q38 旋转位置编码(RoPE)的复数形式 对注意力分数的几何影响分析

RoPE 的复数形式为自然语言处理中的位置编码提供了创新且有效的解决方案。通过深入的数学理论分析,明确了其对注意力分数的几何影响及在捕捉位置信息方面的优势。在 LLM 的实际应用中,RoPE 复数形式在多个任务和场景中展现出强大的性能,特别是在处理长序列文本时,能够有效捕捉长距离依赖、缓解位置编码局限性并提升处理效率。然而,RoPE 复数形式也面临计算复杂度高、超参数调整困难和位置信息平衡等挑战。通过合理的优化策略和与其他技术的结合,有望进一步提升其性能。

墨顿随笔 1419

1.Redis支持的数据类型?

1.Redis支持的数据类型? String(字符串) 格式: set key value string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 string类型是Redis最基本的数据类型,一个键最大能存储512MB。 Hash(哈希) 格式: hmset name key1 value1 key2 value2 Redis hash 是一个键值(key=&gt;value)对集合。 Redis hash是一个string类型的field和va

认真! 402

周立功CAN盒二次开发实录:用QT5.1.0解析汽车CAN报文(附数据可视化技巧)

本文详细介绍了基于QT5.1.0和周立功USBCAN-E-U设备进行汽车CAN总线二次开发的实战过程。核心内容包括利用CANdb++数据库解析原始报文并转换为物理值,以及通过QCustomPlot库实现高性能实时数据可视化,为车载诊断与车联网开发提供了一套完整的工程实践方案。

sugar的博客 1058

110道 Redis面试题及答案 (持续更新)

Redis面试题及答案 【最新版】Redis面试题大全,发现网上很多Redis面试题及答案整理都没有答案,所以花了很长时间搜集,本套Redis面试题大全 如果不背 Redis面试题的答案,肯定面试会挂! 这套Redis面试题大全,希望对大家有帮助哈~ 博主已将以下这些面试题整理成了一个面试手册,是PDF版的 1、Redis持久化策略选择 1、如果Redis中的数据完全丢弃也没有关系(如Redis完全用作DB层数据的cache),那么无论是单机,还是主从架构,都可以不进行任何持久化。 2、在单..

架构师专栏 5247

企业固定资产管理的SAP实战:FICO模块配置与折旧范围设置详解

本文深入解析了SAP FICO模块中固定资产会计配置的核心实践,重点阐述了折旧范围的设计哲学与配置逻辑。通过详解折旧表、折旧范围、资产分类及折旧码等关键配置步骤,指导企业如何搭建满足多会计准则(如CAS、IFRS)与税务要求的资产管理体系,实现资产购置、折旧计提与报废清理的自动化与精准化。

wdx01234567的博客 728

Android实现自动输入文本效果 (附完整源码)

Android实现自动输入文本效果 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 416

Redis面试题超详细(2024最新)

Redis面试题超详细(2024最新)

qq_36255346的博客 1413

Android SystemUI——车载CarSystemUI加载(八)

车载 CarSystemUI 是指专门为汽车环境设计的用户界面和用户体验(UI/UX),它通常与 Android Automotive OS 或其他嵌入式操作系统一起工作,为驾驶者和乘客提供安全、直观且高效的交互方式。Android Automotive OS 是 Google 专门为汽车开发的操作系统版本,它基于 Android 平台,并针对车辆内部的使用进行了优化。

小旭的专栏 2175

Redis 分布式锁

使用过 Redis 分布式锁么,它是什么回事? 先拿 setnx 来争抢锁,抢到之后,再用 expire 给锁加一个过期时间防止锁忘记了 释放。 这时候对方会告诉你说你回答得不错,然后接着问如果在 setnx 之后执行 expire 之前进程意外 crash 或者要重启维护了,那会怎么样? 这时候你要给予惊讶的反馈:唉,是喔,这个锁就永远得不到释放了。紧接着你 需要抓一抓自己得脑袋,故作思考片刻,好像接下来的结果是你主动思考出来的, 然后回答:我记得 set 指令有非常复杂的参数,这个应该是可以同时把 se

qq_58849698的博客 130

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Redis

【Redis】持续更新...

w_k_x110的博客 1389

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【数据库】Redis是什么

Redis是什么

516

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【华为OD统一考试B卷 | 200分】 最小传输时延(C++ Java JavaScript )

因为 bgsave 会消耗比较长的时间,不够实时,在停机的时候会导致大量的数据丢失,需要 aof 来配合,在 redis 实例重启时,优先使用 aof 来恢复内存的状态,如果没有 aof 日志,就会使用 rdb 文件来恢复。网络模型,memcache 使用非阻塞的 IO 复用模型,redis 也是使用非阻塞的 IO 复用模型,但是 redis 还提供了一些非 KV 存储之外的排序,聚合功能,复杂的 CPU 计算,会阻塞整个 IO 调度,从这点上由于 redis 提供的功能较多,memcache 更快些。

m0_57042151的博客 240

【Redis缓存中间件必须要掌握的面试知识】

【Redis缓存中间件必须要掌握的面试知识】什么是Redis,Redis有哪些数据类型? Redis应用场景?Redis分布式锁?Redis事务?Redis缓存?分布式缓存?缓存淘汰策略,Redis键值过期策略?Redis双写一致性问题?Redis与Memcached的区别?Redis持久化策略?Redis集群的主从复制模型是怎样的?

Coder_ljw的博客 379

magento 全页缓存

全页缓存能极大的提高网页的响应速率,但magento社区的商用全页缓存工具都很贵,但是有一款免费的叫ezzoom,虽然免费但是功能强大,能够对产品、分类、特定模块进行缓存,还支持页面某些部分的动态加载 同时也因为是免费的,没有技术支持,推荐使用之前一定要研究下它的源码 1、使用方法 跟普通模块安装没啥区别,唯一不同的是安装后需要的网站入口文件index.php中的Mage::run(

clh604的专栏 2160

缓存之整页缓存

缓存介绍   缓存的功能是大型网站设计的一个很重要的部分,也是ASP.Net提供了的重要特性之一         缓存技术的优点是将用户访问频繁的数据以及需要耗费大量系统资源的数据储备在服务器内存中, 类似于一个临时的仓库,当用户请求使用这些数据时,系统直接将内存中的数据返回给用户, 避免在数据库中查询,从而大大提高应用程序的性能                  但是当用户第一次发送

寂寞的一只狗的博客 1109

php redis 实现全页缓存系统

php redis 实现全页缓存系统 之前的一个项目说的一个功能,需要在后台预先存入某个页面信息放到数据库,比如app的注册协议,用户协议,这种.然后在写成一个php页面,app在调用接口的时候访问这个页面.当时我就发现一个问题,这些协议往往几个月才会修改一次,而每一次用户查看这些协议的时候,nginx都会重新从数据库读取文件,速度会很慢慢了. 如下图m_about.php是我生成的数据页, ...

南浦 4172

面试大咖说:如何保证 redis 中的数据都是热点数据?

案例: MySQL 里有 2000w 数据,redis 中只存 20w 的数据,redis如何保障缓存中存放的是热点数据;另外再给大家普及一下redis使用场景。 TODO: 1、如何保证 redis中的数据都是热点数据? redis有数据过期时间时间,以及数据容量达到阈值时,根据置换策略,淘汰指定的数据。 2、Redis 有哪些适合的场景? 1)会话缓存(Session Cache) 最常用的一种使用 Redis 的情景是会话缓存(session cache)。用 Red...

撸起袖子加油干 4142

Redis系列(二)--缓存设计(整表缓存以及排行榜缓存方案实现)

抱歉,其实这篇应该几天前就出的,不过在这个项目中的lucene加载出bug了(虽然还没解决,但缓存的先记录下来,发出给大家)。今天是两个缓存方案的介绍,排行榜缓存以及整表缓存!!!

Jack__Frost的博客 1万+

Redis知识总结

Redis介绍 Redis 本质上一个 Key/Value 数据库,与 Memcached类似的 NoSQL 型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是 string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的数据类型都具有push/pop、 add/remove、执行服务端的并集、交集、

会飞的狼 717

使用redis实现页面缓存

我们要缓存的就是形式如下面的url http://test.com/shwoItem?item=itemX 设计方案 第一个域,是zset类型的------key是viewed:userSessionid 存放的是商品id与用户查看此商品时的timestamp 第二个域,是zset类型的------可以是viewed: member是商品id(全局范围内),score是商品

程序员小董的专栏 1万+
上一篇: 关于prototype和使用多个JQuery插件的冲突问题
下一篇: Call to a member function addToChildGroup() on a non-object in app/code/core/Mage/Core/Block/Abstrac
ddjohn
博客等级 码龄17年 36粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值