Паспорт

Ссылки
Описание модуля Визард 
Описание системы 
О системе и её преимуществах
Интерфейс оптимизатора
Интерфейс вебмастера
Извещения
Полезные советы
Sape Rank (SR)
Вывод средств на Visa QIWI Wallet 
Вывод денежных средств из SAPE на Ваш кошелек 
Время, необходимое для вывода денежных средств
Причина недельной задержки первой выплаты
Исключения при задержке первой выплаты, если средства нужны срочно
ЮMoney - Счет в системе заблокирован. Данная операция для счета запрещена.
Зарабатывайте вместе с Serpzilla.
Earn with SerpZilla.
Вопросы по выводу денег из SAPE на кошелек 
Для чего нужна эта недельная задержка для первой выплаты?
Бывают ли какие-то исключения по задержке первой выплаты? Мне очень нужны деньги прямо сейчас!
Когда будет оплачена моя заявка на вывод?
Банковская карта 
Вывод средств в GetUniq 
Словарь SAPE (термины и определения) 
Если помимо обычных ссылок Вы хотите продавать ссылки из контента (контекстные ссылки) 
Активация подарочных сертификатов 
Активация подарочных сертификатов
Вопросы Оптимизатора 
Сквозные ссылки
Поиск контекстных ссылок
Sape Rank (SR)
Ошибки при работе с интерфейсом SAPE
Как начать работу с SAPE? (пошаговая инструкция для начинающего оптимизатора)
Финансовые вопросы
Рассылка уведомлений
Изменение кошелька, почты, пароля, телефона
Опечатки во время регистрации
Вопрос по Проекту
Перенос проекта/площадки на другой аккаунт
Вопросы Вебмастера 
Сквозные ссылки
Sape Rank (SR)
Вопрос по сайту (площадке), который Вы намерены добавить в систему
Вопрос по сайту (площадке), который уже есть в системе
Изменение кошелька, почты, пароля, телефона
Сайт не прошел модерацию
Финансовые вопросы
Нет начислений по площадке, ссылки в статусе ERROR
Регистрационные данные и договора
Тизерные ссылки 
Тизерные ссылки и их преимущества для вебмастеров
Тизерные ссылки и их преимущества для оптимизаторов
Подключение и работа с тизерами для вебмастеров
Подключение и работа с тизерами для оптимизаторов
Установка тизерного кода для DLE
Запрос на установку тизерного кода нашим специалистом
Сквозные ссылки 
Сквозные ссылки и их преимущества для вебмастеров
Сквозные ссылки и их преимущества для оптимизаторов
Подключение и работа со сквозными ссылками для вебмастеров
Подключение и работа со сквозными ссылками для оптимизаторов
Задать вопрос о сквозных ссылках
API XML-RPC 
О нашем API
Смена способа авторизации - переход на токены
Расширенный список категорий и поиск по языкам страниц
Задать вопрос
Задать вопроc (FAQ изучен, но ни один из типовых вопросов не подошел) 
Финансовые вопросы 
Как пополнить баланс?
По каким правилам начисляются деньги мне на аккаунт?
Проблемы с зачислением средств на баланс
Партнерская программа
У нашей компании с начала следующего отчетного периода (года) меняется форма налогообложения. Должны ли мы вас уведомить об этом?
Вопросы по отчетным документам
Вопросы по пополнению баланса банковской картой
Дополнительные условия партнерской программы
Платежный сервис PayMaster
English support 
Quick start in Sape
Adding URLs to the project
Addition of texts
Purchase
Search results
Work with applications
Contextual links
Ask us anything (didn't find answer for my question)
How to change your password?
How to change your email? (for publishers)
How to change your email? (for advertisers)
Transfer sites and projects
Плагины 
Установка кода на CMS Wordpress с помощью плагина
Установка кода на CMS Joomla с помощью плагина
Установка кода на CMS DLE с помощью плагина
Установка кода на CMS Drupal с помощью плагина
Акции и промокоды 
Быстрые ответы на часто задаваемые вопросы 
Документы
Пополнение баланса
Вопросы от юридических лиц
Вывод средств
Вопросы по сайтам
Покупка ссылок
Проблемы с получением писем или SMS
Почему расторгнут договор?
Как у вас можно заработать?
Ограничение по длине наименования услуги в веб-версии приложения "Мой налог"
Почему не начисляются деньги по партнерской программе?
Когда будет перенесен проект?
Как изменить налоговый статус аккаунта?
Как перенести деньги на другой аккаунт?
Не зачислились деньги по акции приведи друга
На что заблокированы деньги на балансе?
Почему на балансе доступно 0?
Можно ли предоставить ограниченный доступ к аккаунту?

PR

Статьи

Wizard

Аудит

Обучение

Rtb

Traffic

Repometr

Справка - Ссылки

Вопрос по сайту (площадке), который Вы намерены добавить в систему

все пункты уровня
свернуть пункты уровня
Инструкции по установке кода Sape на различные платформы (PHP, Perl и др.) и движки (WordPress, DLE, Joomla и др.)
Возникла ошибка при выполнении запроса.
Повторить  Закрыть
 
 
все пункты уровня
свернуть пункты уровня
Официальный клиент Perl - установка кода на сайт с поддержкой Perl
Возникла ошибка при выполнении запроса.
Повторить  Закрыть
 
 

Официальный клиент Perl - установка кода на сайт с поддержкой Perl

Описанные ниже способы вывода ссылок доступны начиная с версии клиенткого кода 1.2.3

Необходимое окружение

Для работы Perl-модуля требуется наличие следующих сторонних модулей, доступных в библиотеке CPAN или в виде пакетов для большинства ОС:

  • JSON (также рекомендуется JSON::XS)
  • LWP::UserAgent
  • MIME::Base64

Установка из CPAN:

perl -MCPAN -e shell

cpan> install JSON
cpan> install JSON::XS
cpan> install LWP::UserAgent
cpan> install MIME::Base64

Установка из пакетов Debian:

apt-get install libjson-perl libjson-xs-perl libmime-base64-perl libwww-perl

Подключение модуля (обязательный шаг)

Для подключения модуля SAPE необходимо разместить в исходном коде вашего сайта следующий Perl-код:

"$ENV{DOCUMENT_ROOT}/ХЕШ_ПОЛЬЗОВАТЕЛЯ/SAPE.pm" =~ /^(.+)$/;
require $1;

Сразу после этого становятся доступны классы SAPE::Client и SAPE::Context, отвечающие за вывод, соответственно, гипертекстовых ссылок (в том числе в блочном формате) и контекстных ссылок.

Внимение! Если ваш сайт имеет большое количество страниц и/или ссылок, то для эффективной работы клиентского кода и избежания замедления работы сайта нужно установить CPAN-модуль JSON::XS на сервере. В противном случае страницы могут формироваться долго и сайт может выпасть в ERROR.

Вывод гипертекстовых ссылок

Для работы с гипертекстовыми ссылками используется класс SAPE::Client:

my $sape = new SAPE::Client;

Список допустимых аргументов конструктора класса (все аргуменыты необязательыне):

my $sape = new SAPE::Client (
   user => '', # хэш пользователя, по умолчанию определяется из пути к модулю
   host => '', # имя хоста сайта, по умолчанию $ENV{HTTP_HOST}
   request_uri => '', # адрес запрашиваемой страницы, по умолчанию $ENV{REQUEST_URI}
   multi_site => 1, # включить поддержку нескольких сайтов в одной директории
   verbose => 1, # выводить ошибки в HTML-код
   charset => '', # кодировка: windows-1251 (по умолчанию), utf8, koi8-r и т.д.
   socket_timeout => 6, # таймаут при получении данных от сервера SAPE
   force_show_code => 1, # всегда показывать код SAPE (иначе видно только роботу)
   db_dir => '', # директория для файлов данных, по умолчанию директория с модулем
   ignore_case => 1, # регистронезависимый режим работы - на свой страх и риск!
   show_counter_separately => 1, # показывать ли JS-код отдельно от ссылок
);

 

Примечание: если домен вашего сайта содержит нелатинские символы, то укажите в параметре host домен в punycode. Например, для домена сайт.рф нужно указать значение xn--80aswg.xn--p1ai

Вывод ссылок в обычном формате

Для получения простого (не блочного) списка ссылок следует вызывать метод return_links():

my $links = $sape->return_links; # сохранить HTML-код ссылок в переменную $links
                                 # для использования, например, в шаблонизаторе

или, к примеру:

print $sape->return_links; # вывести HTML-код ссылок

Список допустимых аргументов метода return_links (все аргументы необязательные):

$sape->return_links(
   $n, # число выводимых ссылок, undef - все ссылки
   as_block => 1, # вызвать return_block_links с теми же параметрами
);

Пример 1: вывод всех ссылок

$sape->return_links(undef); # то же, что и $sape->return_links, - вывести все ссылки

Пример 2: вывод нескольких ссылок

$sape->return_links(1); # вернуть только 1 ссылку
$sape->return_links(3); # вернуть ещё 3 ссылки
$sape->return_links; # вернуть оставшиеся ссылки

Пример 3: вывод ссылок в блочном формате (см. ниже)

$sape->return_links(undef, as_block => 1); # аналог вызова метода return_block_links

Вывод ссылок в блочном формате

Внимание! Если вы уже используете вывод ссылок с помощью старого формата вызова, то изменять код вызова необязательно – достаточно лишь обновить модуль SAPE.pm и изменить настройки сайта, включив блочный формат вывода.

Для вывода ссылок в блочном виде используется метод return_block_links() (вызывается автоматически из return_links(), если в настройках сайта установлено блочное отображение или передан параметр as_block => 1).
Список допустимых аргументов метода return_block_links() (все аргументы необязательные):

$sape->return_block_links(
   $n, # число выводимых ссылок, undef - все ссылки
   block_no_css => 1, # запретить автоматический вывод CSS в коде страницы
   block_orientation => 1, # ориентация блока: 1 - горизонтальная, 0 - вертикальная
   block_width => 'auto', # ширина блока в CSS: 'auto', '[?]px', '[?]%' и т.д.
);

Пример 4: вывод всех ссылок в блочном формате

$sape->return_block_links; # все ссылки в виде одного блока

Пример 5: вывод ссылок в нескольких блоках

$sape->return_block_links(1); # вернуть только 1 ссылку в первом блоке
$sape->return_block_links; # вернуть оставшиеся ссылки во втором блоке

Пример 6: вывод блока ссылок с изменёнными параметрами

$sape->return_block_links(2, block_orientation => 0, block_width => '120px');
     # вернуть блок из 2 ссылок вертикальной ориентации шириной 120 пикселей

Вывод контекстных ссылок

Для работы с контекстными ссылками используется класс SAPE::Context:

my $sape_ctx = new SAPE::Context;

Список допустимых аргументов конструктора класса – тот же, что и у SAPE::Client.

Ссылки в конкретном фрагменте текста

Для вывода контекстных ссылок в определённом фрагменте текста следует вызывать метод replace_in_text_segment(), передавая в качестве параметра либо ссылку (ref) на переменную с текстом (оптимально для экономии памяти, замена будет произведена прямо внутри переменной), либо просто переменную с текстом (в этом случае текст с заменой будет возвращён в качестве результата вызова функции):

$sape_ctx->replace_in_text_segment(\$text); # все изменения - внутри переменной

или

$new = $sape_ctx->replace_in_text_segment($text); # изменения - в новую переменную

Рекомендуется использовать первый способ, если есть такая возможность.

Ссылки в коде страницы

Для вывода контекстных ссылок в пределах всей страницы, в том числе в нескольких местах на странице, следует вручную расставить в исходном коде страницы теги <sape_index> ... </sape_index>, заключив в них фрагменты страницы для вывода ссылок, либо ссылки будут выводиться внутри тега <body> ... </body>.

Существует два режима работы метода replace_in_page(), используемого для вывода ссылок.
 

1. Рекомендуется! Вызов метода с параметром аналогично вызову replace_in_text_segment() (ссылка на переменную для экономии памяти или просто переменная). Поиск тегов <sape_index> или <body> и вывод ссылок происходит в тексте, переданном в качестве параметра.

$sape_ctx->replace_in_page(\$html); # все изменения - внутри переменной

или

$new = $sape_ctx->replace_in_page($html); # изменения - в новую переменную

Разница между методами replace_in_text_segment() и replace_in_page() в том, что в первый передаются фрагменты текста для установки контекстных ссылок в них, а во второй – полностью HTML-документ с блоками <sape_index> ... </sape_index> или <body> ... </body>, причём автоматический вывод счётчика производится только в функции replace_in_page() (см. ниже).

2. Только для сайтов с CGI. Вызов метода без параметров. Переопределяется системная Perl-функция print, весь выводимый в ходе работы кода вашего сайта контент накапливается в буфере, происходит размещение ссылок внутри буфера и их вывод системными средствами.

$sape_ctx->replace_in_page; # переопределить print
print $html; # вывод кода страницы со ссылками - после окончания работы скрипта

Этот формат вызова реализован по аналогии с официальным клиентским кодом для платформы PHP, однако с ограничениями:

  • не работает в mod_perl,
  • может не работать в FastCGI,
  • выводит полученный текст только по окончании работы скрипта, а не порциями, – этот режим не рекомендуется и реализован лишь для совместимости с модулем на PHP.

Вывод обязательного JavaScript-контента

Оба класса – SAPE::Client и SAPE::Context – поддерживают автоматический или принудительный вывод JavaScript-контента, поставляемого Sape (cчётчик Sape для подсчёта SapeRank, пользовательские счётчики). По умолчанию код JS выводится вместе со ссылками в методах класса SAPE::Client и только в методе replace_in_page() класса SAPE::Context. Однако если передан параметр show_counter_separately => 1 в конструктор класса, то счётчик необходимо выводить явным вызовом функции return_counter():

$counter_html = $sape->return_counter; # код счётчика - в переменной $counter_html

или

$counter_html = $sape_ctx->return_counter; # аналогично

Обратная связь

Если у вас возникли проблемы при установке или использовании клиентского кода, то напишите нам об этом при помощи формы ниже, указав последовательность ваших действий и суть проблемы.

Задать вопрос разработчику клиентского кода можно напрямую на нашем форуме.

Зарегистрируйтесь, чтобы иметь возможность отправить запрос.