小编Zef*_*ryn的帖子

Magento重定向后丢失消息

我有magento消息的问题.我正在构建自定义模块,理论上应该能够限制对商店某些部分的访问.我创建了一个挂钩controller_action_predispatch事件的观察者, 并检查用户是否可以访问当前请求.如果无法访问操作,观察者会重定向用户并设置错误信息.我想将重定向网址设置为客户来自的网页,以避免点击整个商店.我正在查看HTTP_REFERER并使用它,如果它已设置,否则我将客户重定向到主页.问题是在后一种情况下(主页重定向)一切都很好但是当我根据引用设置url时,我没有在消息框中看到错误消息.

来自观察者的代码($name变量是一个字符串):

Mage::getSingleton('core/session')->addError('Acces to '.$name.' section is denied');
$url = Mage::helper('core/http')->getHttpReferer() ? Mage::helper('core/http')->getHttpReferer()  : Mage::getUrl();
Mage::app()->getResponse()->setRedirect($url);
Run Code Online (Sandbox Code Playgroud)

我发现有趣的是,如果我在观察者文件中进行任何更改并保存它,那么下一个失败并被重定向到referer url的请求会显示错误信息,但随后会丢失消息.

我在想这个问题是在完整的URL和我的本地安装(我正在使用.local域),但所以我尝试添加

$url = str_replace(Mage::getBaseUrl(), '/', $url);
Run Code Online (Sandbox Code Playgroud)

但这没有帮助.

我也尝试使用PHP header()函数重定向,没有任何结果.

所有缓存都被禁用.触发问题的工作流程如下:

  1. 我要去任何可访问的页面(例如/ customer/account)
  2. 点击购物车链接(此帐户的购物车已停用)
  3. 返回/ customer/account并显示错误消息
  4. 再次点击购物车链接
  5. 返回/ customer/account但没有错误消息

任何关于在哪里看的提示都将受到赞赏.

magento

12
推荐指数
2
解决办法
1万
查看次数

Javascript CDATA部分

最近,我正在创建一个模块,将google再营销代码添加到网上商店.我根据文档为不同类型的页面(产品,类别,购物车等)准备了google_tag_params.一切顺利,直到客户使用Google Tag Assistant插件检查了Chrome页面.它显示CDATA部分的警告.起初我不明白他在说什么,因为参数很好,我没有在控制台中收到任何错误.所以我检查了Google Tag助手,令我惊讶的是,它的行为如下.

代码:

<script type="text/javascript">
//<![CDATA[
var google_conversion_id = <?php echo $this->getConversionId();?>;
var google_conversion_label = '<?php echo $this->getConversionLabel();?>';
var google_custom_params = window.google_tag_params;
var google_remarketing_only = <?php echo $this->getRemarketingOnlyFlag();?>;
//]]> 
</script>
Run Code Online (Sandbox Code Playgroud)

它显示警告"缺少CDATA评论",并指向文档https://support.google.com/tagassistant/answer/2978937?ref_topic=2947092#cdata_comments

但改变这个

<script type="text/javascript">
/*<![CDATA[*/
var google_conversion_id = <?php echo $this->getConversionId();?>;
var google_conversion_label = '<?php echo $this->getConversionLabel();?>';
var google_custom_params = window.google_tag_params;
var google_remarketing_only = <?php echo $this->getRemarketingOnlyFlag();?>;
/*]]> */
</script>
Run Code Online (Sandbox Code Playgroud)

使警告消失.

所以我的问题是这个.在任何浏览器中,在线注释和多行注释之间是否有任何区别?这只是谷歌标签助手奇怪的行为,不承认这些评论?

javascript cdata google-tag-manager

6
推荐指数
2
解决办法
2617
查看次数

在Sendgrid中使用节头

我想在Zend应用程序中通过sendgrid发送电子邮件.我从sendgrid文档(smtapi类和swift)复制php代码.

我创建了一个模板,其中的地方应该用%variable%替换.现在我按照此处的定义为sendgrid创建标题:http://docs.sendgrid.com/documentation/api/smtp-api/developers-guide/

结果我看到这样的东西:

{
"to": ["mail1@domain.com", "mail2@domain.com", "mail3@domain.com", "mail4@domain.com", "sfwwnkff@sharklasers.com"], 
"sub": {"%firstname%": ["Benny", "Chaim", "Ephraim", "Yehuda", "will"]}, 
"section": {"%postername%": "John Doe", "%postermail%": "james@doe.com", "%categoryname%": "General", "%threadname%": "Completely new thread", "%post%": "This thread is to inform you about something very important", "%threadurl%": "http:\/\/hb.local\/forums\/general\/thread\/143", "%replyto%": "http:\/\/hb.local\/forums\/general\/thread\/143", "%unsubscribeurl%": "http:\/\/hb.local\/forums\/settings\/", "%subscribeurl%": "http:\/\/hb.local\/forums\/subscribe-thread\/id\/143\/token\/1b20eb7799829e22ba2d48ca0867d3ce"}
}
Run Code Online (Sandbox Code Playgroud)

现在,虽然"sub"中定义的所有数据都发生了变化,但我无法使该部分工作.在最后的电子邮件中,我仍然有%postername%.当我将这些数据移动到sub并为每封电子邮件重复它们时,一切正常.

有谁知道我做错了什么?

部分文档在这里:http://docs.sendgrid.com/documentation/api/smtp-api/developers-guide/section-tags/

php sendgrid

5
推荐指数
1
解决办法
1363
查看次数

标签 统计

cdata ×1

google-tag-manager ×1

javascript ×1

magento ×1

php ×1

sendgrid ×1