Drupal Добавление пользовательского кода Omniture, переменная PHP не установлена - PullRequest
2 голосов
/ 13 октября 2010

Хорошо, у меня есть собственный код 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 устанавливается только на целевой странице, и похоже, что сначала загружается страница шаблона, а затем добавляется содержимое страницы. Я могу напечатать значение на экране, и я вижу Javascript в нижнем колонтитуле, как и ожидалось, с другим набором переменных PHP, но когда я пытаюсь установить переменную на целевой странице, она становится пустой в javascript.

Ответы [ 2 ]

2 голосов
/ 13 октября 2010

Вы можете редактировать файл шаблона page.tpl.php. Если «Целевая страница» является вашей первой страницей, то вы можете сделать что-то немного проще и последовательнее (если в итоге вы измените заголовок).

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

Или по идентификатору узла:

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

Замена 1 на любой идентификатор узла, конечно,

Кроме того, проверьте, есть ли у вас page-front.tpl.php. Если да, то этот файл page-front.tpl.php является шаблоном, который запускается на целевой странице вместо page.tpl.php, и можете добавить свой код в page-front.tpl.php или удалить его, если вам не нужен отдельный шаблон для целевой страницы.

1 голос
/ 13 октября 2010

В итоге я добавил это на страницу шаблона (page.tpl.php) перед кодом Omniture

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