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