首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geoip在店前智能模板中的应用

Geoip在店前智能模板中的应用
EN

Stack Overflow用户
提问于 2013-12-09 17:47:20
回答 3查看 2.4K关注 0票数 0

我需要使用product.tpl中的访问者国家代码。是否有任何带有国家代码的预存储包全局变量,我可以在智能模板中使用?如果没有,我可以把它加在哪里?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-11 07:44:39

要做到这一点,首先转到Preferences>>Geolocation并启用它,还可以下载.dat文件

在此之后,在第238行之前添加controllers >> front >> ProductController.php中的代码

代码语言:javascript
复制
include_once(_PS_GEOIP_DIR_.'geoipcity.inc');
$gi = geoip_open(realpath(_PS_GEOIP_DIR_.'GeoLiteCity.dat'), GEOIP_STANDARD);
$record = geoip_record_by_addr($gi, Tools::getRemoteAddr()); 

在第260行附近的智能分配中添加此代码

代码语言:javascript
复制
'country_name' => $record->country_name //change country_name to code etc

在任何时候都可以在$country_name中使用product.tpl :)

在ps-1.5.6中测试

票数 1
EN

Stack Overflow用户

发布于 2016-02-22 22:34:27

我使用@Raza的代码构建它作为对FrontController的覆盖,目的不仅是在product.tpl中显示它,而且在上显示所有商店页面

  1. 在覆盖>类>控制器>创建文件FrontController.php
  2. 放置以下代码 类geoip_open(realpath(_PS_GEOIP_DIR_.'GeoLiteCity.dat'),扩展了FrontControllerCore {公共函数initContent() {父函数:initContent();include_once(_PS_GEOIP_DIR_.'geoipcity.inc');$gi =initContent GEOIP_STANDARD;$record = geoip_record_by_addr($gi,Tools:getRemoteAddr();$this->context->smarty->assign('country_name',$record->country_name);//将country_name更改为代码etc }

@Raza:在..tpl文件中使用{$country_name}以英语显示国家名称。知不知道如何使用PS的核心翻译到国家的活跃商店语言?

谢谢

票数 0
EN

Stack Overflow用户

发布于 2016-05-10 08:57:41

@nortonOn:您可以尝试使用cookie中的id_lang,这样,它应该以商店语言显示国家名称。应该是:$country->name[intval($this->context->cookie->id_lang)];

我希望它能帮助你:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20477159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档