Javascript 在Opencart中实现不同的Disqs短名称
我正在使用opencart 1.5.5.1。 在产品页面上,我已经通过一个讨论工具成功地更改了“Review”选项卡!而且效果很好。 但我的网站是意大利语/英语双语,我希望用户能够用他们选择的语言阅读讨论。 因此,我创建了两个不同的disqus id(两个独立的讨论板) 在我的product.tpl上,我必须插入带有如下变量的javascript:Javascript 在Opencart中实现不同的Disqs短名称,javascript,conditional-statements,opencart,disqus,Javascript,Conditional Statements,Opencart,Disqus,我正在使用opencart 1.5.5.1。 在产品页面上,我已经通过一个讨论工具成功地更改了“Review”选项卡!而且效果很好。 但我的网站是意大利语/英语双语,我希望用户能够用他们选择的语言阅读讨论。 因此,我创建了两个不同的disqus id(两个独立的讨论板) 在我的product.tpl上,我必须插入带有如下变量的javascript: <script type="text/javascript"> /* * * CONFIGURATION VARIABLES: EDIT
<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>
或
但是这里我们谈论的是js!
如果出现以下情况,我如何告诉此脚本该语句?
我需要像这样的东西
if $this->language->get('code') == 'it' { var disqus_shortname = 'xxxxxxxxxxitalian'; }
else { var disqus_shortname = 'xxxxxxxxxxenglish'; }
检查您是否在disqus上为您的网站注册了disqus简称 短名 告诉Disqs服务您的论坛的短名称,这是唯一的 在Disqs上注册的网站的标识符。如果未定义,则 将不加载Disqs嵌入 要在页面上加载不同的语言,请使用
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; ?>";
};
var discus_config=function(){
该语言为“”;
};
在控制器中,您必须将语言代码传播到模板(编辑
目录/控制器/产品/产品.php
文件)-添加以下内容:
$this->data['language_code'] = $this->language->get('code');
然后以这种方式编辑模板文件(catalog/view/theme//template/product/product.tpl
):
/***配置变量:粘贴到网页前编辑***/
var discus_shortname='xxxxxxxxx';//魔咒在这里完成了。。。
/***请勿在此行下方编辑***/
(功能(){
var dsq=document.createElement('script');
dsq.type='text/javascript';dsq.async=true;
dsq.src='/'+discus_shortname+'.discus.com/embed.js';
(document.getElementsByTagName('head')[0]| | document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
也许我没有正确解释我的问题。我已经有两个Discus_简称,因为我想把英语和意大利语的讨论分开。因此,我需要做的是创建一个条件,根据会话的语言选择正确的Discus_shortname。我要避免的是在同一个线程上有混合的英语/意大利语评论。感谢你们两位对教程的回复。实际上,我已经实现了我所需要的设置“code”$language=($this->language->get('code')='it')?”它':'恩';'“代码”,然后在脚本中使用它来设置两个discus_短名称。我会给你看代码,但我不能回答我同样的问题…@FabrizioTatti你可以回答你自己的问题,如果你意识到你自己的解决方案,你甚至应该在这里发布并接受它。无论如何,在OpenCart中,条件$lang=($this->language->get('code')=='it'?'it':'en')
与只调用$lang=$this->language->get('code')非常相似代码>。。。
<?php
$language = ( $this->language->get('code') == 'it' )? 'it' : 'en';
?>
<script>
var disqus_config = function () {
this.language = "<?php echo $language; ?>";
};
$this->data['language_code'] = $this->language->get('code');
<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>