- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго всем.
Дмитрий Роот, ведущий программист проекта "Диптаун" ( www.deeptown.org ), написал полноценный модуль для отображения ссылок Sape для сайтов, работающих на Ruby on Rails (и не только).
1. Информация.
Данный модуль портирован из "официального" perl-модуля sape.
Модуль в первую очередь предназначен для использования с фреймворком Ruby on Rails, но его можно использовать и в обычном CGI приложении. В отличии от существующих на данный момент решений, этот модуль полностью написан на Ruby и не требует запуска PHP приложения. Это должно работать значительно быстрее.
2. Быстрый старт на Ruby on Rails
- поместите файл sape.rb в директорию /lib Вашего проекта;
- в корне проекта создайте каталог sape, в нем - подкаталог с идентификатором пользователя sape (длинное шестнадцатеричное число) и убедитесь, что сервер имеет право записи в этот каталог. В нем будет храниться кеш ссылок;
- в app/controllers/application.rb (в класс ApplicationController) добавьте
следующий код:
before_filter :sape_init
def sape_init
@sape = Sape.from_request('123abc...идентификатор пользователя', request)
end
Первый параметр функции from_request - это тот же идентификатор пользователя sape. Для чистоты кода его стоит вынести в файл конфигурации;
- в ERB-шаблоне в том месте, где должны выводиться ссылки (скорее всего это будет шаблон из layouts) вставьте код
<%= @sape.links %>
Эта функция также может принимать в качестве параметра количество ссылок для отображения, например
<%= @sape.links(3) %>
По-умолчанию выводятся все оставшиеся в очереди ссылки. По правилам sape, последний вызов этой функции должен быть без параметров (чтобы гарантировать, что все необходимые ссылки отображены). За дополнительной информацией обращайтесь к руководствам sape.
В случае, если возникнет какая-то ошибка, ее описание будет отображено в виде HTML-комментария в том месте, где должны быть ссылки.
3. Список функций
Модуль экспортирует единственный класс - Sape - который отвечает за отображение ссылок sape и обновление списка этих ссылок с сервера sape.
Его использование состоит из двух этапов - инициализация и получение текста ссылок.
Инициализация производится одним из двух конструкторов:
- Sape.from_env(user_id, [options])
- Sape.from_request(user_id, request, [options])
Первый параметр обоих методов - это идентификатор пользователя sape.
Метод from_env инициализирует объект при помощи переменных среды, устанавливаемых сервером. Он предназначен для использования в CGI приложениях.
Для Rails предпочтительнее использовать второй метод - from_request, который вторым параметром принимает объект AbstractRequest.
Последний параметр - это необязательный хеш опций, которые могут включать:
:host -- имя хоста (например, myserver.com)
:uri -- URI запроса (например, /some/script.rb)
:remote_ip -- IP адрес, с которого произведен запрос;
:filename -- имя файла кеша ссылок. Этот файл должен быть доступен для записи скриптом.
Умолчания:
- для Rails - "#{RAILS_ROOT}/sape/#{user_id}/links.db"
- для CGI - "#{ENV['DOCUMENT_ROOT']}/#{user_id}/links.db"
:charset -- кодировка, в которой требуется отображать ссылки. По-умолчанию, utf-8;
:server -- адрес сервера sape, с которого обновлять ссылки;
:timeout -- период обновления ссылок в секундах (по-умолчанию 1 час).
Вы также можете указать nil - в этом случае ссылки не будут автоматически обновляться с сервера. См. ниже.
За отображение ссылок отвечают два метода:
- links( [count] )
- get_links( [count] )
Оба метода принимают в качестве параметра количество ссылок для отображения и возвращают HTML-текст ссылок. Параметр не является обязательным; по-умолчанию возвращаются все ссылки.
Отличие этих функций заключается в способе обработки ошибок.
Функция links в случае возникновения ошибки возвращает текст HTML-комментария следующего вида:
<!-- SAPE.ru error: ... error description ... -->
Функция get_links в случае возникновения ошибки кидает исключение.
4. Ручное обновление ссылок
При использовании sape существует одна небольшая проблема. Она заключается в том, что обновление ссылок с сервера sape - это долгая процедура. Сервер sape может быть перегружен или недоступен по каким-то причинам; в этом случае обновление кеша ссылок может затянуться на несколько секунд (до срабатывания таймаута соединения).
Если такое поведение недопустимо - можно обновлять кеш ссылок вручную, т.е. отдельным скриптом.
Чтобы отключить автоматическое обновление, передайте параметр :timeout => nil в последнем параметре конструктора, например:
@sape = Sape.from_request(SAPE_USER_ID, request, :timeout => nil)
Обновить ссылки вручную можно вызовом метода update() класса Sape.
Осталось только написать небольшой скрипт, который будет создавать объект Sape и вызвать его метод update, и добавить этот скрипт в расписание cron (например, в /etc/cron/cron.hourly).
5. Информация об авторе
Автор модуля - Дмитрий Роот
E-mail адрес droot@deeptown.org
Пожалуйста, сообщайте обо всех ошибках и дополнениях на данный e-mail адрес.
6. Если кто-то захочет каким-то материальным способом поблагодарить разработчика, это можно сделать переводом любой суммы на Webmoney-кошелек: Z819056126132 , или зарегистрировавшись в системе по ссылке: http://www.sape.ru/r.2f99c56437.php.
Наш модуль распространяется бесплатно, по принципу "As Is" ("как есть"), его работоспособность успешно протестирована, и он работает на нескольких RoR-сайтах.
Сам файл модуля, а так же файл readme.txt с инструкцией по установке, и файл READMEUTF8 (в кодировке UTF-8) находятся в аттаче.
Удачи и успеха, кому пригодится.
Теперь ссылки в Сапе может продавать даже LinkFeed.ru! 😂
А вообще молодцы :)
Хоть я и очень сомневаюсь в большой востребованности. Ещё не встречал, чтоб для ГСов задействовали Руби :)
dkameleon, ну, ведь не только ГС-ы сапу на себя вешают, но и нормальные :)
Для них в первую очередь скрипт и предназначен.
dkameleon, ну, ведь не только ГС-ы сапу на себя вешают, но и нормальные
угу. знаю разработку подключения под Lotus Domino. если что обращайтесь - подскажу контакт.
А под Руби один коллега полгода назад все разрабатывал, так и не знаю сделал он или нет. скину ему топик в аську.