Drupal 7 - вывести текст в зависимости от значения в URL

Категория: Drupal
Дата публикации: 27 октября, 2015 - 19:37
Последнее изменение: 27 октября, 2015 - 19:43

Задача: выводить текст в зависимости от значения параметра в URL. Обычно в контекстой рекламе используется параметр utm_source, и ссылки имеют вид: http://domain.ru/?utm_source=anytext, который обозначает источник посетителя или кампанию контекстой рекламы. Это позволяет отслеживать источники трафика, строить статистику и много еще чего.
Например, мы хотим в зависимости от источника трафика изменять номер телефона (могут быть проблемы с ПС).

Решение:
Создаем модуль, и в его содержимое вставляем:

<?php

function phoneutm()
{

$varphones = array(
'default' => 'default text',
'url1' => 'text 1',
'url2' => 'text 2',
);
if (isset($_GET['utm_source']))
{
$utm = $_GET['utm_source'];
if (isset($varphones[$utm]))
{
$defphone = $varphones[$utm];
setcookie('utm_cookie', $utm, time() + 60 * 60 * 24 * 365, '/');
}
}
  else
if (isset($_COOKIE['utm_cookie']))
{
$utm = $_COOKIE['utm_cookie'];
if (isset($varphones[$utm]))
{
$defphone = $varphones[$utm];
}
}
  else
{
$defphone = $varphones['default'];
}

if ($defphone)
{
$phone = $defphone;
}

return $phone;
}

В том месте, где нужно вывести строку, выводим ее функцией:

if (function_exists('phoneutm'))
{
echo phoneutm();
}

Какой именно номер будет выводится, записывается посетителю в куки, поэтому при обновлении страницы или переходе в пределах сайта все это будет работать.

Добавить комментарий