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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Этот формат вызова реализован по аналогии с официальным клиентским кодом для платформы 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() :

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

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

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

📎📎📎📎📎📎📎📎📎📎