代码之家  ›  专栏  ›  技术社区  ›  Phill Pafford

Drupal正在添加自定义Omniture代码,未设置PHP变量

  •  2
  • Phill Pafford  · 技术社区  · 14 年前

    <?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只在登录页上设置,它看起来像是先加载模板页,然后添加页面内容。我可以将该值打印到屏幕上,并在页脚中看到Javascript,这与设置其他PHP变量的预期一致,但是当我尝试在登录页上设置该变量时,Javascript中将显示为空白。

    2 回复  |  直到 14 年前
        1
  •  2
  •   coderintherye    14 年前

    您可以编辑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
  •  1
  •   Phill Pafford    14 年前

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