2012-04-10 136 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