我正在使用opencart 1.5.5.1。 在产品页面上,我已经使用Disqus的讨论工具成功更改了“评论”标签!它很棒。 但我的网站是双语意大利语/英语,我希望用户以他们选择的语言阅读讨论。 所以我创建了两个不同的disqus id(两个独立的讨论板)。
在我的product.tpl上,我必须插入带有变量的javascript:
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'xxxxxxxxxx';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
我想使变量disqus_shortname依赖于会话中给出的语言代码。
只要我明白我可以通过php获取
$this->session->data['language']
或
$this->language->get('code')
但在这里我们谈论的是js! 如何判断该脚本的语句? 我需要像
这样的东西if $this->language->get('code') == 'it' { var disqus_shortname = 'xxxxxxxxxxitalian'; }
else { var disqus_shortname = 'xxxxxxxxxxenglish'; }
答案 0 :(得分:0)
检查您是否在Disqus上为您的网站注册了disqus短名称。
disqus_shortname
告诉Disqus服务您的论坛的简称,这是唯一的 您在Disqus上注册的网站标识符。如果未定义,则 Disqus嵌入不会加载。
要在页面上加载不同的语言,请使用
var disqus_config = function () {
this.language = "ru";
};
代码如:
<?php
$language = ( $this->language->get('code') == 'it' )? 'it' : 'en';
?>
<script>
var disqus_config = function () {
this.language = "<?php echo $language; ?>";
};
答案 1 :(得分:0)
在您的控制器中您必须将语言代码传播到模板(编辑catalog/controller/product/product.php
文件) - 添加:
$this->data['language_code'] = $this->language->get('code');
然后以这种方式编辑模板文件(catalog/view/theme/<YOUR_THEME>/template/product/product.tpl
):
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'xxxxxxxxxx<?php echo $language_code; ?>'; // here the mojo is done...
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script');
dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>