【问题标题】:Drupal Adding custom Omniture code, PHP variable not being setDrupal 添加自定义 Omniture 代码,未设置 PHP 变量
【发布时间】:2010-10-13 17:35:44
【问题描述】:

好的,我有一些自定义 Omniture 代码需要添加到 Drupal 站点。一切都很好,因为我已将 Javascript 代码添加到主题模板页面。代码按预期显示在所有页面上,但我有几个 PHP 变量需要在 Javascript 中打印,但这些变量将变为空白。

<?php

    $omniture_event = "test this works as expected";

    $omniture =<<<OMNITURE
<script language="JavaScript"><!--

s.events="{$omniture_event}"
s.landing="{$omniture_landing}"

OMNITURE;

    echo $omniture;

?>

但 $omniture_landing 仅在登录页面上设置,看起来模板页面首先被加载,然后页面内容被添加。我可以将值打印到屏幕上,并且在页脚中看到了与其他 PHP 变量集一样的 Javascript,但是当我尝试在登录页面上设置变量时,它在 javascript 中显示为空白。

【问题讨论】:

    标签: php javascript drupal adobe-analytics


    【解决方案1】:

    您可以编辑您的 page.tpl.php 模板文件。如果“登陆页面”是您的首页,那么您可以做一些更容易和更一致的事情(如果您最终更改标题)。

    if($is_front) { 
      $omniture_landing = 'Yeah we have landed!!!'; 
    }
    

    或按节点ID:

    if($node->nid == '1') { 
      $omniture_landing = 'Yeah we have landed!!!'; 
    } 
    

    当然,用任何节点 ID 替换 1

    另外,检查您是否有 page-front.tpl.php 如果有,那么该文件 page-front.tpl.php 是在登录页面上运行的模板,而不是 page.tpl.php,您可以将您的代码添加到 page-front.tpl.php,如果您不需要单独的登录页面模板,则可以将其删除。

    【讨论】:

    • 使用您下面评论中的解决方案
    【解决方案2】:

    我最终在 Omniture 代码之前将其添加到模板页面 (page.tpl.php)

    if($node->title == 'Landing Page Title') {
        $omniture_landing = 'Yeah we have landed!!!';
    } else {
        $omniture_landing = '';
    }
    

    【讨论】:

    • 我明白了,如果“登陆页面”是您的首页,那么您可以做一些更简单、更一致的事情(如果您最终更改标题)。 if($is_front) { $omniture_landing = '是的,我们已经登陆了!!!'; }...
    • 或者至少我会这样做 if($node->nid == '1') { $omniture_landing = '是的,我们已经登陆了!!!'; } 当然,用任何节点 ID 替换 1。无论如何,很高兴你想通了,感谢你的支持。
    • 使用节点 ID 代替字符串不是一个坏主意,thnx。请编辑您的答案以包含此选项,以便我可以选择它作为接受的答案
    猜你喜欢
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 2014-09-10
    • 2014-04-06
    相关资源
    最近更新 更多