在Opencart中实现不同的disqus短名称

时间:2013-04-25 02:45:17

标签: javascript conditional-statements opencart disqus

我正在使用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'; }

2 个答案:

答案 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; ?>";
        };

http://help.disqus.com/customer/portal/articles/466249-can-disqus-be-loaded-in-different-languages-per-page-

答案 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>