vQmod:如何在 <![CDATA[ 中转义 <![CDATA[
vQmod: How to escape <![CDATA[ inside <![CDATA[
我正在尝试在
catalog/view/theme/*/template/common/footer.tpl
中添加 Google 再营销代码,以便在 Opencart 项目中使用。
我创建了这个 vQmod
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>Add Google Code for Remarketing Tag in footer</id>
<version>1.0</version>
<vqmver required="true">2.4.0</vqmver>
<author>nbran@kanenas.net</author>
<file name="catalog/view/theme/*/template/common/footer.tpl">
<operation>
<search position="before" offset="0">
<![CDATA[</body>]]>
</search>
<add><![CDATA[
<script type="text/javascript">
var google_conversion_id = XXXXXXXXX;
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/XXXXXXXXX/?value=0&guid=ON&script=0"/>
</div>
</noscript>
]]></add>
</operation>
</file>
</modification>
工作 有一个小问题。 Tag Assisant(来自 Google) 抱怨(作为一个小问题)“缺少 CDATA 注释”,意思是这个
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = XXXXXXXXX;
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
/* ]]> */
</script>
其中已经包含 CDATA。
有没有办法在 vQmod 的 CDATA 中 "escape" CDATA?
谢谢!
我将此作为解决方法发布,但几天后我不会接受它,以防万一有人提出建议。
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>Add Google code for remarketing tag in footer</id>
<version>1.0</version>
<vqmver required="true">2.4.0</vqmver>
<author>nbran@kanenas.net</author>
<file name="catalog/view/theme/*/template/common/footer.tpl">
<operation>
<search position="before" offset="0">
<![CDATA[</body>]]>
</search>
<add><![CDATA[
<script type="text/javascript">
/* ]]><![CDATA[ */
var google_conversion_id = XXXXXXXXX;
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
/* ]]><![CDATA[ */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"></script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/XXXXXXXXX/?value=0&guid=ON&script=0"/>
</div>
</noscript>
]]></add>
</operation>
</file>
</modification>
正如@Alexandre Reis Ribeiro 所建议的,您还可以使用 PHP 将 <![CDATA[
组合成字符串。 提示: 在经常使用 <![CDATA[
的大型提要或脚本数组中,一个 clean/sane 方法是先将它们设为变量。否则,你最终可能会调试得一团糟。
简单示例:
$c_s = '<![' . 'CDATA['; // defines start of CDATA
$c_e = ']' . ']>'; // defines end of CDATA
// example XML output may need some CDATA, so use $c_s and $c_e:
$output .= "\t" . '<title type="html">' . $c_s . $title . $c_e . '</title>' . "\r\n";
$output .= "\t" . '<subtitle type="html">' . $c_s . $description . $c_e . '</subtitle>' . "\r\n";
// continue your output/indicies using as much CDATA's as required!
我做了个小动作。不知道这是否正确,但它对我有用:)这是我的代码。
/* ]]<?php echo '>'?> */
我正在尝试在
catalog/view/theme/*/template/common/footer.tpl中添加 Google 再营销代码,以便在 Opencart 项目中使用。
我创建了这个 vQmod
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>Add Google Code for Remarketing Tag in footer</id>
<version>1.0</version>
<vqmver required="true">2.4.0</vqmver>
<author>nbran@kanenas.net</author>
<file name="catalog/view/theme/*/template/common/footer.tpl">
<operation>
<search position="before" offset="0">
<![CDATA[</body>]]>
</search>
<add><![CDATA[
<script type="text/javascript">
var google_conversion_id = XXXXXXXXX;
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/XXXXXXXXX/?value=0&guid=ON&script=0"/>
</div>
</noscript>
]]></add>
</operation>
</file>
</modification>
工作 有一个小问题。 Tag Assisant(来自 Google) 抱怨(作为一个小问题)“缺少 CDATA 注释”,意思是这个
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = XXXXXXXXX;
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
/* ]]> */
</script>
其中已经包含 CDATA。
有没有办法在 vQmod 的 CDATA 中 "escape" CDATA?
谢谢!
我将此作为解决方法发布,但几天后我不会接受它,以防万一有人提出建议。
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>Add Google code for remarketing tag in footer</id>
<version>1.0</version>
<vqmver required="true">2.4.0</vqmver>
<author>nbran@kanenas.net</author>
<file name="catalog/view/theme/*/template/common/footer.tpl">
<operation>
<search position="before" offset="0">
<![CDATA[</body>]]>
</search>
<add><![CDATA[
<script type="text/javascript">
/* ]]><![CDATA[ */
var google_conversion_id = XXXXXXXXX;
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
/* ]]><![CDATA[ */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"></script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/XXXXXXXXX/?value=0&guid=ON&script=0"/>
</div>
</noscript>
]]></add>
</operation>
</file>
</modification>
正如@Alexandre Reis Ribeiro 所建议的,您还可以使用 PHP 将 <![CDATA[
组合成字符串。 提示: 在经常使用 <![CDATA[
的大型提要或脚本数组中,一个 clean/sane 方法是先将它们设为变量。否则,你最终可能会调试得一团糟。
简单示例:
$c_s = '<![' . 'CDATA['; // defines start of CDATA
$c_e = ']' . ']>'; // defines end of CDATA
// example XML output may need some CDATA, so use $c_s and $c_e:
$output .= "\t" . '<title type="html">' . $c_s . $title . $c_e . '</title>' . "\r\n";
$output .= "\t" . '<subtitle type="html">' . $c_s . $description . $c_e . '</subtitle>' . "\r\n";
// continue your output/indicies using as much CDATA's as required!
我做了个小动作。不知道这是否正确,但它对我有用:)这是我的代码。
/* ]]<?php echo '>'?> */