Контекстные ссылки в движках на Perl - тестируем модуль!
В клиентский модуль SAPE на Perl добавлена поддержка контекстных ссылок. Сам модуль сильно переписан, так что теперь структура классов соответствует структуре модуля на PHP, а название всех ключевых параметров совпадает. Желающих протестировать поддержку контекстных ссылок в модуле на Perl приглашаю в этот топик.
Для обновления модуля необходимо произвести следующие операции.
Для использования контекстных ссылок необходимо сделать следующее.
А вообще - читайте документацию на модуль SAPE для PHP, все параметры и функции в новом модуле SAPE для Perl теперь именуются так же, так что смело пользуйтесь параметрами verbose, multi_site (кстати, а вот и он!) и т.п. Пожалуйста, обо всех проблемах сообщайте в этом топике, а ещё лучше - по аське 23057061. |
Привет!
У меня есть Сайт на ПЕРЛ. Давно жду контекстный ссылок... Что-то сложновато описано... Что, где меняем... Будем пробовать (если получится...) - Дело-то хорошее... :) |
Цитата:
|
Всё, вроде, сделал (не уверен, что верно - проверю)
Но куда вписывать это? Цитата:
|
Код:
$text = $sape_context->replace_in_page_text($text); |
Для меня Это сложно... :(
Подожду, кто ещё поставит и расскажет |
Meneldor, всё ok. Поставил - работает. Спасибо.
Единственное, что бросилось в глаза: # db_root_dir => (необязательно) директория для файлов данных, по умолчанию: $ENV{DOCUMENT_ROOT}/<user> Реально параметр db_root_dir называется db_dir. |
Цитата:
|
Ещё помучился часов 5 методом тыка... Не получилось... Не находит Код на страницах
Хорошо бы на примере описать или То же самое другими словами... Сейчас появилось объявление об этом Коде. Надеюсь народ подтянется и вместе решим свои проблемы... Для Информации: мой движок - Web-APP |
Есть вопросы. Много. Первый
Автор указывает, что Необходимо пользоваться инструкцией для Контента в РНР. Означает ли Это, что Контентный Код под ПЕРЛ надо вставлять ДО тэга < body > ? |
Скачал код, установил.
Для замены текста использовал Код:
$text = $sape_context->replace_in_text_segment($text); Кто скачал код немного раньше, обратите внимание на замечание выше Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Это Код:
"$ENV{DOCUMENT_ROOT}/5кодa8/SAPE.pm" =~ /^(.+)$/; Код:
"$ENV{DOCUMENT_ROOT}/5кодa8/SAPE.pm" =~ /^(.+)$/; Цитата:
Код:
"$ENV{DOCUMENT_ROOT}/5кодa8/SAPE.pm" =~ /^(.+)$/; |
Цитата:
Код:
host => 'mysite.ru' Цитата:
К сожалению, помогать ставить код на все площадки я не могу физически :(. Кто ставил движок на Ваш сайт? Возможно, у Вас есть знакомые Перл-программисты? |
Цитата:
Цитата:
Пишу здесь подробные вопросы, потому что 01. Другим, может, поможет 02. Больше никто не пишет, хотя, наверняка сайтов 95 000: 10 = 9 500 шт в системе, наверняка, имеются. Неужели все удачно поставили? 03. Код для РНР ставят и новички. Поэтому хочется более подробного описания установки кода для контентных ссылок для ПЕРЛ Ни в РНР, ни в ПЕРЛЕ программистом не являюсь, как и, думаю, 90% посетителей этого форума. Просто - ВэбМастер, каких много. ВэбМастер, готовый учиться и, научившись, помогать другим... |
Цитата:
Давайте ещё раз. В каких участках кода Вашего сайта подготавливаются данные для вывода на страницу? Например, из базы данных извлекаются статьи, новости, сообщения форума и т.п., после этого они обычно подготавливаются к выводу (например, производится расстановка тегов и т.п.) и либо выводятся на экран функцией print, либо передаются в качестве параметра шаблонизатору: Код:
# получение данных из базы (пример из доки к DBI) Код:
# получение данных из базы (пример из доки к DBI) Вариант же с $sape_context->replace_in_page будет работать при скриптах такого вида: Код:
# вывод HTTP-заголовков Код:
# вывод HTTP-заголовков |
В частности, движок на Файлах
При добавлении Кода в Хеадер перед print: Цитата:
Цитата:
|
Цитата:
|
в старой версии, если тормозит сервер, то файл == 0
в связи с чем 2 вопроса: 1. почему не сделали в старой функцию if ($response eq "") { exit; } 2. реализовано ли оно в новой версии? |
Цитата:
|
Попытался установить контекстный код, пока безрезультатно. Нажимаю "Контекстные страницы" - заказать переиндексацию, ничего особенно не происходит.
код подключается так: my $sape_context = SAPE::Context->new( @{$self->sape_config} ); $sape_context->replace_in_text_segment( \$self->{Doc}{doc_text} ); в логе происходит warning [Sat Apr 26 18:34:03 2008] page.pl: Use of uninitialized value in substitution (s///) at ../lib/SAPE.pm line 360. [Sat Apr 26 18:34:03 2008] page.pl: Use of uninitialized value in substitution (s///) at ../lib/SAPE.pm line 367. $self->{Doc}{doc_text} при этом содержит основной контент страницы. Еще тут сказано смотреть инструкцию по установке контекста для PHP, но не могу найти нигде эту инструкцию. Ссылку на новый SAPE.pm нашел только тут на форуме. Прямо как Microsoft. |
|
Автору - респект. Давно ждал.
А насколько активно покупают контекстные ссылки сейчас? Робот нашел 464 контекстные страницы, код стоит уже четыре дня, но ни одной ссылки так и не купили. Хотя разного контента на этих страницах довольно много, обычные ссылки продаются на ура. Как можно проверить, нет ли ошибок? |
автору - спасибо.
|
Цитата:
Цитата:
|
Уточнение! Если Вы ранее использовали параметр filename при вызове конструктора SAPE, теперь вместо него используйте параметр db_dir, который содержит путь к директории, в которую будут сложены файлы со ссылками.
|
Автору - огромное спасибо! Все работает замечательно!
|
Вложений: 1
В модуле SAPE.pm была обнаружена проблема: обработчик replace_in_page устанавливался автоматически в любом случае. Это не могло принести вреда, однако выполнялся лишний код и могли сыпаться предупреждения в логи, если используется модуль warnings. Спасибо пользователю =Sten= за обнаружение проблемы, его терпение и помощь в поиске и исправлении бага! Просьба тех, кто тестировал модуль, обновить его на приложенный и сообщить, если возникнут проблемы.
|
Meneldor,
надо всем уведомление послать что модуль желательно заменить. |
Цитата:
|
Meneldor, а есть какой-нибудь скрипт, чтобы вручную это всё не устанавливать, а залить этот скрипт на хост и запустить, и пусть он контекстный код установит сам?
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
я слышал что поисковики для проверки доставляют к адрусу левую инфу типа www.site.ru/?лабуда
тем самым проверяя на измененность страницы. как это можно обойти? если даже создать список разрешенных ('/','/?req=news','/?req=news&list=(?)')... , то как запретить вырезать все "левое" кто то решал подобные проблемы? Добавлено через 20 часов 19 минут нашли решение! Никите спасибо! 1. до запуска кода сапы - генерируем нужный нам $ENV{REQUEST_URI} 2. передаем его собственно модулю сапы SAPE->new( request_uri => $request_uri ); |
С конца января перестали отображаться контекстные ссылки. Старые отображаются, а новые висят в ерроре. Что делать?
Используется модуль на Perl. |
Нет доступа на запись к файлу данных (/words.db)
Сервер Apache 1.3.41 + mod_perl 1.30
После установки нового модуля спонтанно вылетает "SAPE ERROR: Нет доступа на запись к файлу данных (/words.db): пФЛБЪБОП Ч ДПУФХРЕ. Выставите права 777 на папку.", т.е. может 30 раз нормально пройти, потом 30 раз с ошибкой. Права выставлены правильно, к тому же старый (0.9) модуль работает без проблем. Код:
ls -l .. Код:
ls -l Да, кстати, не обозначает ли эта запись "Нет доступа на запись к файлу данных (/words.db)", что модуль пытается открыть файл в корне сервера :eek:? Код:
open my $fh, '>>', $db_file |
Попробуйте передавать в конструктор путь к директории с links.db явно через параметр db_dir - возможно, в связке с mod_perl дефолтное поведение работает криво, не тестировалось.
|
Часовой пояс GMT +3, время: 23:20. |
Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.