%% GLOBAL变量在自定义Bigcommerce模板中不起作用

时间:2014-11-22 03:18:39

标签: bigcommerce

我想自定义产品模板,但不是针对所有情况,因此我创建了一个新的模板布局文件。

我尝试过这两种方式,但两种方式都不起作用,遇到同样的问题,%% GLOBAL变量无效。

使用Product.html作为基础,我创建了_Product.html并将%% Panel.ProductDetails %%更改为我的自定义ProductDetails文件%% Panel._ProductDetails %%,我在此阶段根本没有自定义。然后我更改测试产品以使用该模板。查看产品时,会产生控制台错误,并且页面无法正常显示。第一个控制台错误的原因是语法错误,其中脚本变量被设置为%% GLOBAL变量。查看页面源代码,结果如下:

<script type="text/javascript">//<![CDATA[
var ThumbURLs = new Array();
var ProductImageDescriptions = new Array();
var CurrentProdThumbImage = ;
var ShowVariationThumb =false;
var ProductThumbWidth = ;
var ProductThumbHeight =  ;
var ProductMaxZoomWidth = ;
var ProductMaxZoomHeight =  ;
var ProductTinyWidth = ;
var ProductTinyHeight =  ;

模板

<script type="text/javascript">//<![CDATA[
var ThumbURLs = new Array();
var ProductImageDescriptions = new Array();
var CurrentProdThumbImage = %%GLOBAL_CurrentProdThumbImage%%;
var ShowVariationThumb =false;
var ProductThumbWidth = %%GLOBAL_ProductThumbWidth%%;
var ProductThumbHeight =  %%GLOBAL_ProductThumbHeight%%;
var ProductMaxZoomWidth = %%GLOBAL_ProductMaxZoomWidth%%;
var ProductMaxZoomHeight =  %%GLOBAL_ProductMaxZoomHeight%%;
var ProductTinyWidth = %%GLOBAL_ProductMaxTinyWidth%%;
var ProductTinyHeight =  %%GLOBAL_ProductMaxTinyHeight%%;

奇怪的是,在它上方有%%全局变量可以正常工作。

<script type="text/javascript" src="%%GLOBAL_CdnAppPath%%/javascript/jquery/plugins/jCarousel/jCarousel.js?%%GLOBAL_JSCacheToken%%"></script>

被正确地解释为

<script type="text/javascript" src="http://cdn3.bigcommerce.com/r-8a870c678fbffbf4184af752aed70da3f3454036/javascript/jquery/plugins/jCarousel/jCarousel.js?"></script>

我尝试的第二种方法是将所有内容都包含在顶级模板中。我没有链接到%% Panel._ProductDetails %%,而是将该面板的内容插入_Product.html,但这也遇到了完全相同的问题。

有谁知道为什么这些选项都不起作用,以及我如何实现我的目标?

2 个答案:

答案 0 :(得分:2)

在使用这些变量之前,您必须调用Panel.ProductDetails。

即使您使用的是自定义产品详细信息替代面板,也需要先参考标准产品。那么你的全局变量就可以了。

答案 1 :(得分:1)

这是因为BigCommerce系统中的GLOBALS只会打印BigCommerce开发团队允许的值。这可能是一种痛苦,特别是对于你所追求的价值观,你想要做的事情是完全合理的。

但是,此时我建议您在http://ideas.bigcommerce.com向开发人员了解此信息。

我不能说这是否会很快改变,因为在某些领域禁止GLOBALS的主要原因是为了安全,尽管你所追求的是有用的,我不明白为什么他们不是启用。谁知道,开发商可能会让我们感到惊讶。