2012-04-10 116 views
0

我正在Joomla(1.5.14)/ Virtuemart(1.1.3)网站上工作,并且由于无法在类别描述中使用PHP,我遇到了实施一些AdWords代码片段的问题Virtuemart地区。需要帮助隐藏一些代码

这就是我想达到的。

我有AdWords主主“的index.php”文件片段的网站如下:

<?php if ($HideAdWords != "yes") : ?> 

<!-- Google Code for Every user Remarketing List --> 
<script type="text/javascript"> 
/* <![CDATA[ */ 
var google_conversion_id = ###; 
var google_conversion_language = "en"; 
var google_conversion_format = "3"; 
var google_conversion_color = "666666"; 
var google_conversion_label = "###"; 
var google_conversion_value = 0; 
/* ]]> */ 
</script> 
<?php if ($_SERVER['HTTPS']) { ?> 
<script type="text/javascript" src="https://www.googleadservices.com/pagead/conversion.js"> 
<?php } else { ?> 
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js"> 
<?php }?> 

</script> 
<noscript> 
<div style="display:inline;"> 
<!--<img height="1" width="1" style="border-style:none;" alt="" src="###"/>--> 
</div> 
</noscript> 

<?php endif; ?> 

在某些页面上我包括用下面的PHP代码段沿不同的AdWords代码,希望浏览此页面时从网页删除原始代码片段:

<?php 
$HideAdWords = "yes"; 
?> 

这没有做什么,我想它但是在大部分的网页我需要申请这个我无法使用PHP,当进入将PHP保存到Virtuemart中的类别描述中它评论任何PHP代码,并使其无用。

我试过尽可能多的搜索,并尝试了Joomla/Virtuemart特定的网站/论坛。我设法让JavaScript在这些类别描述领域工作,所以我想知道是否我可以用JavaScript复制这种效果,或者你们可以想出更好的解决方案?

我希望我已经清楚,任何帮助将非常感激。

亲切的问候。

*编辑:固定非特定标题。

+0

难道你不能只在javascript中编写if(hideAdWords)'--block?您只需要访问变量并将其传递给JavaScript,不知何故。 – Basti 2012-04-10 02:01:28

回答

1

如果你想这样做在JavaScript中,在您的主页使用这个片段:

<script> 
(function() { 
    if(window.hideAdWords) return; 
    var google_conversion_id = "###", 
     google_conversion_language = "en", 
     google_conversion_format = "3", 
     google_conversion_color = "666666", 
     google_conversion_label = "###", 
     google_conversion_value = 0; 

    document.write(unescape("%3Cscript%20type%3D%22text/javascript%22%20src%3D%22//www.googleadservices.com/pagead/conversion.js%22%3E%3C/script%3E")); 
}()); 
</script> 

那么你的PHP只需写出来:

<script> 
    hideAdWords = <?php print ($HideAdWords == "yes" ? 'true':'false'); ?>; 
</script> 

如果不能保证hideAdWords行将被打印在功能块之前,您可以更改功能块,以便将其封装在页面加载完成时触发的事件处理程序中(本示例使用jQuery,但是你可以轻松做到用的addEventListener调用同样的事情):

<script> 
jQuery(function() { 
    if(window.hideAdWords) return; 
    var google_conversion_id = "###", 
     google_conversion_language = "en", 
     google_conversion_format = "3", 
     google_conversion_color = "666666", 
     google_conversion_label = "###", 
     google_conversion_value = 0; 

    document.write(unescape("%3Cscript%20type%3D%22text/javascript%22%20src%3D%22//www.googleadservices.com/pagead/conversion.js%22%3E%3C/script%3E")); 
}); 
</script> 

鉴于SSL之间的唯一区别和HTTP网址是架构,你可以删除协议,并以双斜线开始的URL只使用HTTP或HTTPS通过访问当前页面。

+0

谢谢你试图帮助你是一个救星!但是,当我完全按照您的要求复制它时,我无法完成它的工作,但它仍然会打印在页面上。 看起来像这样: http://img600.imageshack.us/img600/9100/16238576.jpg – iamlolz 2012-04-10 07:21:43

+0

您是否将google_conversion_id和google_conversion_label值更改为真实值?如果他们真的应该是三个哈希值,那么他们需要用引号括起来(如上所述) – steveukx 2012-04-10 08:07:47

+0

糟糕的是,我不知道我是如何错过的,但它仍然不幸发生。 http://img687.imageshack.us/img687/5091/46287193.jpg – iamlolz 2012-04-10 10:07:10

1

嗯,你能做到这一点的JS,你可以在JS使用:


//js part included in php file that loads as common file to all, like footer or header 
var hideAdWords = "<?php if ($HideAdWords) { echo "yes"; } else { echo "no"; } ?> 

现在你的JS变量hideAdWords可以有“是”或“否”。你可以使用它作为js变量。 您是不是要找类似的东西

+0

这听起来像它可能工作,但由于我的无用和缺乏JS的知识,我无法弄清楚你的意思是如何实现它。 – iamlolz 2012-04-10 05:49:53

0

您看过一些针对Virtuemart的Google Analytics扩展吗?

BIT Virtuemart Google Analytics

Google Analytics for Virtuemart

我与他们没有经验,但他们似乎有很多选择。

+0

感谢您发表。我确实看过那些,但是这个网站目前正在迁移到3DCart,所以我刚刚做了一个快速修复,因为我不认为我的3DCart会有同样的问题,但时间会证明这一点。 – iamlolz 2012-04-10 22:53:44