10.07.2014, 17:34 | #1 |
Сотрудник Sape
Регистрация: 22.07.2009
Сообщений: 248
Вес репутации: 814
|
Официальный клиент Perl - установка кода на сайт с поддержкой Perl
Скачать клиент можно отсюда или со страницы добавления новой площадки в систему.
Изменения в новой версии 1. добавлена поддержка блочных ссылок 2. улучшена поддержка контекстных ссылок 3. добавлена возможность вывода счётчика Sape (для подсчёта SapeRank) Внимание! Если ваш сайт имеет большое количество страниц и/или ссылок, то для эффективной работы клиентского кода и избежания замедления работы сайта нужно установить CPAN-модуль JSON::XS на сервере. В противном случае страницы могут формироваться долго и сайт может выпасть в ERROR. Внимание, описанные ниже способы вывода ссылок доступны начиная с версии клиенткого кода 1.2.3 Подключение модуля (обязательный шаг) Для подключения модуля SAPE необходимо разместить в исходном коде вашего сайта следующий Perl-код: Код:
"$ENV{DOCUMENT_ROOT}/ХЕШ_ПОЛЬЗОВАТЕЛЯ/SAPE.pm" =~ /^(.+)$/; require $1; Сразу после этого становятся доступны классы SAPE::Client и SAPE::Context, отвечающие за вывод, соответственно, гипертекстовых ссылок (в том числе в блочном формате) и контекстных ссылок. Вывод гипертекстовых ссылок Для работы с гипертекстовыми ссылками используется класс SAPE::Client:1 Код:
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-код отдельно от ссылок ); Для получения простого (не блочного) списка ссылок следует вызывать метод return_links(): Код:
my $links = $sape->return_links; # сохранить HTML-код ссылок в переменную $links # для использования, например, в шаблонизаторе Код:
print $sape->return_links; # вывести HTML-код ссылок Код:
$sape->return_links( $n, # число выводимых ссылок, undef - все ссылки as_block => 1, # вызвать return_block_links с теми же параметрами ); Код:
$sape->return_links(undef); # то же, что и $sape->return_links, - вывести все ссылки Код:
$sape->return_links(1); # вернуть только 1 ссылку $sape->return_links(3); # вернуть ещё 3 ссылки $sape->return_links; # вернуть оставшиеся ссылки Код:
$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', '[?]%' и т.д. ); Код:
$sape->return_block_links; # все ссылки в виде одного блока Код:
$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; Ссылки в конкретном фрагменте текста Для вывода контекстных ссылок в определённом фрагменте текста следует вызывать метод 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); # изменения - в новую переменную 2. Только для сайтов с CGI. Вызов метода без параметров. Переопределяется системная Perl-функция print, весь выводимый в ходе работы кода вашего сайта контент накапливается в буфере, происходит размещение ссылок внутри буфера и их вывод системными средствами. Код:
$sape_ctx->replace_in_page; # переопределить print print $html; # вывод кода страницы со ссылками - после окончания работы скрипта
Вывод обязательного 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; # аналогично Последний раз редактировалось Mysterious Stranger; 14.07.2014 в 14:22. |
14.07.2014, 22:37 | #4 |
Специалист
Регистрация: 23.11.2006
Адрес: Москва
Сообщений: 121
Вес репутации: 221
|
|
27.08.2014, 20:38 | #10 |
Специалист
Регистрация: 23.11.2006
Адрес: Москва
Сообщений: 121
Вес репутации: 221
|
Скайп - оперативнее всего. Телефон не поможет - наверняка нужно будет куски кода смотреть. Напишите в почту, давайте через неё попробуем. meneldor@metallibrary.ru
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Неблокирующий клиент на Perl или для nginx? | alexbyk | Установка кода на различные движки | 13 | 29.03.2012 20:09 |
Установка кода на perl | Klopopryg | Установка кода на различные движки | 19 | 23.11.2009 23:16 |
установка кода на 2 сайта (PERL) - 10$ | Henpyxa | Установка кода на различные движки | 0 | 26.02.2008 13:42 |
Установка нового кода на страницы с SSI или Perl возможна? | tmatm | Контекстные ссылки и все, что с ними связано | 15 | 03.02.2008 21:08 |
Установка Perl и PHP-кода сапы на один сайт | Kerk | Вопросы по работе системы | 1 | 11.07.2007 12:53 |
Часовой пояс GMT +3, время: 22:05.