在openart中实现不同的磁盘短名称

Implement different disqus shortnames in Opencart

本文关键字:磁盘 openart 实现      更新时间:2023-09-26

我使用openart 1.5.5.1。在产品页面上,我已经成功地用Disqus的讨论工具更改了"评论"选项卡!而且效果很好。但是我的网站是意大利语/英语双语的,我希望用户用他们选择的语言阅读讨论。所以我创建了两个不同的disquid(两个独立的讨论板)。

在我的产品。我必须插入他们的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?我需要像

这样的东西
if $this->language->get('code') == 'it' { var disqus_shortname = 'xxxxxxxxxxitalian'; }
else { var disqus_shortname = 'xxxxxxxxxxenglish'; }

检查您是否在disqus上为您的网站注册了disqus短名称

disqus_shortname

告诉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-

在您的控制器中,您必须将语言代码传播到模板(编辑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>