2

好的,我有一些自定义 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 中显示为空白。

4

2 回答 2

2

您可以编辑您的 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 或如果您不需要单独的登录页面模板,则将其删除。

于 2010-10-13T19:00:55.123 回答
1

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

if($node->title == 'Landing Page Title') {
    $omniture_landing = 'Yeah we have landed!!!';
} else {
    $omniture_landing = '';
}
于 2010-10-13T19:06:52.597 回答