Создание скриптов-редиректов

Создание редиректа

Создайте в директории «/application/redirects/» новый файл редиректа, например, «myredirect.php»;

Пример скрипта:

<?php
/**
 * @redirectName Новый редирект
 * @redirectWeight 100
 */
class myredirect_redirect extends AbstractRedirect2
{
    public function go(Stream $stream, Visitor $visitor) 
    {
        // Здесь сам алгоритм редиректа, php-код
        //
        // Основные методы: 
        //   $this->addHeader($string); — добавить заголовок, который будет отправлять через php-функцию header()
        //   $this->setContent($string); — отправляет текст в буфер и позже будет показан в браузере
        //   $this->replaceDestination($stream, $newUrl);  — заменит URL назначения в статистике переходов.
    }
 
    public function goDebug(Stream $stream, Visitor $visitor)
    {	
         return "Redirecting to: " . $stream->getUrlWithParams($visitor);	
    }	
}

Префикс класса должен совпадать с именем файла.

Примечание: Не делайте редиректов прямо в коде, т.е. через header(). Иначе переход не успеет зафиксироваться в статистике.

Пример скрипта

/application/redirects/jsiframe.php

<?php
/**
 * @redirectName JSIFrame
 * @redirectWeight 101
 */
class jsiframe_redirect extends AbstractRedirect2
{
    public function go(Stream $stream, Visitor $visitor)
    {
        $content = '<script type="text/javascript">
        function handle() { top.location="'.$stream->getUrlWithParams($visitor).'"; }
        window.onerror = handle;
        if (top.location.href != window.location.href) {top.location = "'.$stream->getUrlWithParams($visitor).'";}
      </script>';
 
        $this->setContent($content);
    }
 
    public function goDebug(Stream $stream, Visitor $visitor)
    {
         return "JSIFrame redirecting to: " . $stream->getUrlWithParams($visitor);  
    }
}

Список методов $stream

МетодОписание
getUrl URL потока
getUrlWithParams($visitor) URL с проставленными параметрами
getComments Комментарий потока
getGroupId ID группы
getWeight Вес потока
isExitStream Является ли замыкающим потоком

Список методов $visitor

МетодОписание
getIp IP перехода
getIpLong IP в формате ip2long
getCountry Код страны
getRegion Код региона
getBrowser Браузер
getOs Операционная система
getSe Поисковик
getOperator Сотовый оператор
getKeyword Ключевик
getSource Источник
getReferrer Реферер
getDeviceType Тип устройства
getDeviceModel Модель устройства
isBot Является ботом
getParam(name)Параметр запроса
getSubId()Уникальный SubId
getSubId(n)Пользовательский sub_id_n
getExtraParam(n)extra_param_n