[英]Escape JS and PHP blocks for Smarty 2
稍后编辑:此问题已修复。 看来问题出在钩子放错了地方。
逃避Smarty 2中的JavaScript和PHP块的正确和最佳方法是什么?
我试图:
他们似乎都不起作用。
这是我的代码,需要转义:
<script>
var _ra = _ra || {};
_ra.sendProductInfo = {
"id": "{$product.product_id}",
"name": "{$product.product}",
"url": "{$config.current_url|fn_url}",
"img": "{$product.main_pair.detailed.image_path}",
{if $ra_oldPrice == $product.price or not is_numeric($ra_oldPrice)}
"price": "{if $product.list_price > $product.price}{$product.list_price}{else}{$product.price}{/if}",
"promo": "{if $product.list_price > $product.price}{$product.price}{else}0{/if}",
{else}
"price": "{$ra_oldPrice}",
"promo": "{$product.price}",
{/if}
"brand": false,
"category": [{
"id": "{$catid}",
"name": "{$product.main_category|fn_get_category_name}",
"parent": false,
"breadcrumb": []
}],
"inventory": {
"variations": false,
"stock": "{$product_amount = $product.inventory_amount|default:$product.amount}{if ($product_amount <= 0 || $product_amount < $product.min_qty) && $settings.General.inventory_tracking == "Y"}0{else}1{/if}"
}
};
</script>
请试试:
<script data-no-defer>
var _ra = _ra || {$ldelim}{$rdelim};
_ra.sendProductInfo = {$ldelim}
id: {$product.product_id},
name: '{$product.product|escape:'javascript'}',
url: '{$config.current_url|fn_url}',
img: '{$product.main_pair.detailed.image_path}',
{if $ra_oldPrice == $product.price or not is_numeric($ra_oldPrice)}
price: {if $product.list_price > $product.price}{$product.list_price}{else}{$product.price}{/if},
promo: {if $product.list_price > $product.price}{$product.price}{else}0{/if},
{else}
price: {$ra_oldPrice},
promo: {$product.price},
{/if}
brand: false,
category: [{$ldelim}
id: {$product.main_category},
name : '{$category_name=$product.main_category|fn_get_category_name}{$category_name|escape:'javascript'}',
parent: false,
breadcrumb: []
{$rdelim}],
inventory: {$ldelim}
variations: false,
stock: {$product_amount = $product.inventory_amount|default:$product.amount}{if ($product_amount <= 0 || $product_amount < $product.min_qty) && $settings.General.inventory_tracking == "Y"}0{else}1{/if}
{$rdelim}
{$rdelim};
</script>
$ra_oldPrice
但我想是您在上面分配的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.