- Unix based operating system
- PHP with Safe_mode set OFF
- GD Library
- Zend optimizer
- Mysql database
- Image Magick
- Crontab demon
- 1-5 лицензий — $150 USD за лицензию.
- 6-10 лицензий — $125 USD за каждую дополнительную лицензию.
- 11-20 лицензий — $100 USD за каждую дополнительную лицензию.
- Больше 20 лицензий — $75 USD за каждую дополнительную лицензию.
Скрипт можно оплатить с помощью Paxum, Payonner, Webmoney. Свяжитесь с нами по электронной почте или ICQ для уточнения деталей.
Условно-бесплатная – забирает в качестве оплаты за использование 1% кликов, а также несколько урезанная функционально. В настоящее время в ней недоступно удаленное хранение тумб. Скачать файл инсталятора можно передейдя по следующей ссылке: install.zip
1. Введение
StreamRotator — это программный комплекс, предназначенный для автоматизации управления контентом на сиджах, содержащий в себе модули граббера и ротатора. Реализован на php с использованием ZendOptimizer, GdLib, mysql, ImageMagick, cron. Имеет 2 варианта - условно-бесплатный (в качестве оплаты взимается 1% кликов, некоторые ограничения в функциональности) и платный.
Основная задача, которая стояла при разработке скрипта — умение выжать из сайта максимальную продуктивность. Для этого был разработан, воплощен в код и оттестирован ряд уникальных алгоритмов, каждый из которых в отдельности заслуживает патентования, ну а в комплексе... В комплексе они просто изменят Ваше представление о том, как должны расти сайты, какая должна быть продуктивность, какой ским, сколько, в конце концов, Вы можете зарабатывать. Это не просто громкие слова или самореклама. Это мнение тестеров, которые наблюдали за поведением ротатора не один месяц и не на одном десятке своих сиджей.
2. Установка
Загрузите архив http://streamscripts.com/rotator/install.zip, распакуйте, загрузите содержимое на свой сервер в корень домена. Установите на корневую директорию домена права 777. В строке броузера введите http://yourdomain.com/install.php Вы увидите нечто подобное:

Mysql host, mysql user, mysql password, mysql database — параметры подключения к базе данных mysql, которая будет использоваться ротатором.
Mysql utility location and mysqldump utility location — расположение утилит базы данных- mysql и mysqldump соответственно. Используются при создании или резервных копий и при восстановлении. Уточните расположение этих утилит у своего администратора.
IM convert utility location — расположение утилиты convert из пакета утилит ImageMagick. Уточните у своего администратора.
PHP location — расположение интерпретатора php. Не используется в работе, но необходимо для правильного написания задания cron-а. Уточните у своего администратора.
Script directory — каталог в котором будет находиться скрипт ротатора.
Примечание. Инсталлятор пытается сам определить конфигурацию сервера и заполнить значения для параметров mysql utility location, mysqldump utility location, IM convert utility location, PHP location, поэтому не удивляйтесь, если в этих полях будут проставлены пути. Если вы все правильно заполнили, то после нажатия кнопки«install» вы увидите список установленных файлов, и перечень созданных таблиц базы данных. В самом низу будет что-то типа:
all right!
delete install.php
change password in admin zone (default password: adminpass)
make cronjob:
* * * * * cd /home/yourdomain/streamrotator; /usr/local/bin/php -q cron.php 1>/dev/null 2>/dev/null
Создайте задания для крона, установите старые права на корневую директорию домена (обычно 755), удалите install.php и переходите в админку.
3. Быстрый старт
Как запустить ротатор потратив на это минимум времени? Рецепт нашего фастфуда:
1. В разделе settings заполняем поля:
email – почтовый ящик на который будут приходить сообщения об ошибках ротатора;
niche – ниша сайта (можно выбрать несколько);
new password and confirm new password – пропишите тут новый пароль.
Нажимаем «save changes». Более подробное описание этих и других настроек вы сможете прочитать в соответствующем разделе этого руководства.
2. Создаем один или несколько ротаторов. Ротатор - это совокупность позиций на морде сиджа под тумбы/дески характеризующаяся одинаковыми параметрами такими как высота/ширина. Возможно не лучшее определение, но думаю, если вы читаете это руководство то понимаете о чем идет речь:) В разделе «rotators» вы сможете создавать, редактировать и удалять ротаторы. Создайте необходимые вам ротаторы. Типы ротаторов:
images (pics+movies) – в этот тип будут попадать пиксовые и мувисные галереи;
images (pics) – только галереи содержащие картинки;
images (movies) – только галереи содержащие мувики;
descs – тип ротатора для десков.
Для чего нужно 3 типа пиксовых ротаторов. Рассмотрим пример - мы хотим, чтобы на морде было 2 блока тумб - на первом только пиксовые гали, на втором только мувисные. Но проблема в том, что у спонсора пиксовые и мувисные fhg идут вразброс. Для того чтобы не сортировать fhg вручную мы просто создаем 2 ротатора и присвоим им соответствующий тип. У первого будет «images (pics)» у второго «images (movies)». Таким образом, во время граба в первый ротатор будут попадать только пиксовые fhg, во второй только мувисные.
3. Настройки качества создаваемых тумб. Вообще говоря, этот пункт можно пропустить. Дело в том, что настройки по умолчанию выставлены оптимально (на мой взгляд), и удовлетворят большинство пользователей ротатора. Если у вас все-таки возникло желание изменить что-то в этих параметрах, загляните в раздел crop profiles part. Описание этого режима вы найдете в соответствующем разделе этого руководства.
4. Создайте в разделе affiliate manager записи для своих спонсоров и платников. При импорте галерей их можно привязать к соответствующему платнику. Это можно сделать и позже, но процесс потребует больше времени.
5. В разделе import вводим список наших галерей, выбираем ротатор, профайл кропа (если мы его задавали) и нажимаем «add to grab list».
6. Осталось только создать шаблон морды и состыковать его с сриптом сиджа. Об этом можно узнать в соответствующем разделе мануала.
Теперь скрипт загружен работой и у вас есть время более подробно изучить StreamRotator.
4. Общие принципы функционирования StreamRotator-а
Граббер. Берем список спонсорских fhg, импортируем его в ротатор. В фоновом режиме начинает работать граббер. Он загружает галереи, выдергивает из них ссылки на картинки (или превьюшки мувиков) и делает из них тумбы, используя ранее заданные crop profiles (в которых задаются такие параметры как яркость, насыщенность, нанесение мувисного логотипа и еще куча всяких полезных вещей).
Граббер имеет 3 режима работы: полный автомат (auto), полуавтомат (semiauto), и ручной режим нарезки тумб (manual). В первом случае галереи для грабинга выбираются вразнобой, также и картинка для создания тумбы выбирается случайная, т.е. вновь отграбленные тумбы будут самыми разнообразными. Они сразу попадают в ротацию. Во втором режиме гали грабятся тоже автоматически, но в ротацию попадают только тумбы, отобранные вами. Для гали можно выбрать как одну, так и несколько тумб. Там же вы можете выставить повышенный приоритет тестирования тумб, которые на ваш взгляд будут наиболее популярными (это ускорит рост продуктивности на ранней стадии жизни сайта), вручную откропить тумбы, требующие коррекции, отредактировать url и desc, поменять ротатор галереи. Выбор отграбленных тумб и добавление их в ротацию осуществляется в режиме grab list, там же можно посмотреть и галереи, которые не были срагблены по тем или иным причинам (например, из-за отсутствия конетнта на гале) - их можно удалить из списка или переграбить заново.
Ротатор во время работы высчитывает для каждой тумбы показатель rank - по сути это ctr тумбы с поправкой на кликабельность ячеек в которых эта тумба показывалась. Тумбы с самым высоким rank-ом показываются на самых лучших позициях. Уникальной особенностью StreamRotator-а является то, что для вычисления кликабельности ячеек не нужен специальный обучающий режим - все коэффициенты высчитываются в фоновом режиме без потери трафика. Более того, при первой генерации морды скрипт пытается выставить коэффициенты в зависимости от положения ячейки таким образом, чтобы в дальнейшем изменения этого коэффициента были минимальными. В дальнейшем эти показатели очень плавно подстраиваются под существующую статистику кликабельности ячеек.
В процессе ротации, после того как все тумбы для определенной гали показались как минимум N-раз (парамет new thumbs lifetime в настройках), в ротации остается только лучшая тумба а все остальные удаляются. Это довольно длительный процесс, но в результате скрипт сможет выжать из контента максимальный эффект. Кстати хоть этот процесс и продолжительный, он вполне безболезненный, так как на морде присутствует только небольшое количество тестируемых тумб (параметр new thumbs percent в настройках), все остальные - 'лучшие из лучших'.
Еще одной отличительной особенностью скрипта является то, что на статистку ротатора не влияют подозрительные на чит клики/показы, например действия посетителей с выключенными cookie или js, посетители из нежелательных стран также не будут влиять на статистику. Все параметры, по которым вычисляется чит, я не буду расписывать, скажу лишь, что они аналогичны механизмам, применяемым в cj-скриптах.
Ну а теперь пару слов о самом эффективном механизме StreamRotator-а, который позволяет очень существенно поднять проду на сайте. Это механизм показа новых тумб для неуникальных посетителей. Проще говоря, если посетитель побывал на вашем сайте, перешел на какого-то вашего трейдера, и вернулся окольным путем обратно, то ему будут показаны совершенно новые тумбы. Несомненно, у него будет большая мотивация посмотреть что скрывается за этими новыми тумбами, чем если бы он увидел тот же сайт с тем же контентом. Или, если ваш сайт окажется в букмарках, то посетитель при каждом посещении будет видеть все новый и новый контент. Этакая иллюзия очень быстро обновляемой tgp. Какие преимущества это дает, думаю объяснять не надо. Опытный вебмастер в этом месте возразит, что такая схема работы будет крайне ресурсоемкой, и... будет неправ :) Во-первых, для уникальных посетите
лей всегда будет показываться статика, которая генерируется через определенные промежутки времени, как это обычно делается в скриптах подобного рода. Морда с новыми тумбами будет генерироваться "на лету" только для неуникальных посетителей, процент которых обычно колеблется в пределах 10-15%. Более того, эти дополнительные морды для неуников тоже кешируються, и если есть необходимый "свежий" фейс в кеше, то он не будет генерироваться! Во-вторых, морда генерируется не из шаблона заданного в админке, и из некоего полуфабриката, "промежуточного слоя", заточенного под быстрые выборки и быстрое формирование морды сиджа. В-третьих, движок скрипта в своей работе активно использует heap-таблицы mysql. Этот тип таблиц mysql-сервер хранит в оперативной памяти и запросы к ним выполняются на несколько порядков быстрее, чем к обычным таблицам. По итогам тестов, среднее время in-а (при котором формируются и новые морды для неуников) составляет всего несколько сотых долей секунды. Что является очень неплохим результатом.
Скорость обновления морды. Скорость зависит от состояния статистики по тумбам. Если статистики мало, морда обновляется каждую минуту. Если статистики много - 1 раз в 20 минут. Для непопулярных нишевых страниц обновление может происходить еще реже. Такая гибкость позволяет, во-первых, молниеносно выбирать наиболее кликабельные тумбы и соответственно поднимать проду на минимальном трафике, а во-вторых, максимально щадяще относиться к ресурсам сервера на "набравшем обороты" сидже.
Особенности использования heap-таблиц. Маленькая справка - в отличие от всех остальных видов таблиц mysql, heap-таблицы существуют только в памяти компьютера. Это позволяет работать с ними на несколько порядков быстрее, чем с обычными данными. Обратная сторона медали - при сбое сервера myslq их содержание теряется. Для того чтобы обезопасить себя от несчастных случаев скрипт время от времени делает копию этих данных. Периодичность бакапа - каждые 5 минут. Кроме того, каждую минуту делается проверка, если произошла потеря heap-таблиц, они восстанавливаются из бакапа. В случае сбоя овнер информируеться о типе ошибки на email. Таким образом, в худшем случае мы потеряем статистику за последние 5 минут. Хотя следует заметить, что при правильной настройке сервера mysql он будет работать безпроблемно годами. Подобная организации хранения данных позволяет в иметь в базе данных десятки и сотни тысяч тумб, и выдерживать трафик сотни тысяч посетителей в сутки на сервере средней производительности.
Система распределения нагрузки между стримами на сервере. На сервере формируется общая для всех ротаторов очередь. При попытке выполнить задание крона для определенного экземпляра стрима, скрипт проверяет свое место в очереди заданий (здесь и далее под "заданием крона" подразумевается срипт ротатора, который отрабатывает каждую минуту, результат работы которого - генерация морды, граббинг галерей, формирование тумб (кроппинг), обновление статистики и другие сервисные функции). Если место в очереди меньше или равно 5, то задание выполняется, и после этого ротатор становится в хвост очереди. Более того, есть еще одна очередь для процедур граба/кроппинга галерей, которые, как известно, генерируют самую большую нагрузку на сервер. По умолчанию на сервере не будет одновременно выполняться более 5 заданий крона и 1 кроппинга/граббинга. Эти параметры для мощных серверов можно увеличить. Делается это двумя переменными в php.ini streamrotator_max_crons and streamrotator_max_grabs максимальное разрешенное количество одновременно запущенных заданий крона стримротатра и граба соответственно. Например, сделав следующую запись в php.ini:
streamrotator_max_crons=7
streamrotator_max_grabs=2
Вы получите 7 (или менее) запускаемых каждую минуту заданий крона стрима и 2 (или менее) выполняемых заданий кропа/граба. Если в php.ini ничего не прописано, то стримротатор считает, что streamrotator_max_crons=5 и streamrotator_max_grabs=1.
Теперь немного о том что, представляет из себя очередь кронов физически. Каждая позиция очереди – этой файлик нулевой длинны, имя которого представляет из себя «streamXXXXXX…..», где «XXXX.....» хаотичный набор цифр и букв. Длина имени файла 42-43 символа. Находятся эти файлы в директории /tmp сервера. Если по каким-то причинам такой директории на сервере нет (например, window-хостинг), в php.ini нужно прописать переменную streamrotator_order_dir и указать в ней директорию, доступную для всех юзеров сервера. Иногда возникает необходимость почистить очередь кронов стрима, для этого достаточно просто удалить эти файлы с сервера. Процедура безболезненна, очередь будет сформирована при следующем запуске кронов ротаторов. Необходимость в ней возникает крайне редко, например при удалении ротаторов с сервера – для того чтобы «выкинуть» из очереди те стримы, которые мы удалили. «Потерянные» файлы очереди стримов будут автоматически удалены из очереди через 3 часа, поэтому и чистить их особой необходимости нет.
Просмотреть логи запуска крона Вы можете, кликнув в админке по ссылке времени «Last cronjob started at:» Тут будет время старта крона данного стрима, время, затраченного на генерацию морды и обновление статистики (stat), время, потраченное на граб и кропинг (grab), время, отведенное на аплоад тумб на удаленный сервер (для платной версии - ftp), и прочие операции (other). Тут же можно посмотреть параметры streamotator_max_crons and streamrotator_max_grabs. Кликнув по ссылке «Show Order» вы увидите очереди кронов (первый столбец) и грабов (второй столбец). Красным подсвечно место в очереди текущего экземпляра стрима.
5. Home
Новости и апдейты.
6. Affiliate Manager
Раздел поможет "разложить по полочкам" информацию о платниках чьи галереи используются в ротаторе, а также дает возможность воспользоваться кое-какими связанными с этим полезными возможностями. Каждая галерея может быть привязана к какому-либо платнику, а платник, в свою очередь - к спонсору.
Сверху расположен выпадающий список для установки фильтра по спонсорам, им удобно пользоваться, когда спонсоров много.
default crop profile кроппрофайл грабинга, который будет сам выставляться в импорте при выборе платника. Это не значит, что галереи спонсора можно грабить только с этим кроппрофайлом, но жизнь немного облегчает;
Max face % максимальный процент галь, который стрим будет выводить на морде. Играет роль предохранителя от излишней загруженности морды галями одного платника/спонсора. Пример - если выставить этот параметр в 20%, то скрипт не будет искусственно повышать количество галь платника на морде, если по рейтингу таких галь должно быть 10%. С другой стороны, если платник популярен, и галь на морде раньше было 30%, то теперь стрим заполнит морду только на 20%. Это не жесткое условие, оно носит рекомендательный характер и в ряде случаев может не выполняться, но стрим будет стараться :) Следует также заметить, что применение этих настроек может отразится на продуктивности сайта, так как мы нарушаем оптимальное расположение тумб на морде. Использовать можно, но осторожно;
Skim String позволяет вносить в url аута сиджа какую-либо дополнительную строку с помощью тега #SKIM_STRING# субтемплейтов. Это может быть не обязательно ским. Просто в том месте субтемплейта, где стоит этот тег, при формировании страницы скрипт выставит значение этого поля. Простой пример для atl3. Имеем субтемплейт вида: <a href="streamrotator/out.php?l=#POS#&u=cgi-bin/at3/out.cgi?#SKIM_STRING#&u=#GAL#">
для одного спонсора выставляем параметр Skim String s=100& для остальных платников оставляем это поле пустым. В итоге получаем ским для галерей этого спонсора равным 100%, для всех остальных - ским, заданный по умолчанию в настройках cj-скрипта.
Колонка galleries - количество галерей данного спонсора, участвующих в показах (active) и общее количество галерей (total).
Чекбоксы желтых колонок таблицы спонсоров предназначены для массэдита галерей платника. Ставим галочку в колонке нужного нам действия, нажимаем update и готово.
TПоследняя розовая колонка позволяет удалить спонсора, при этом гали, которые были привязаны к этому спонсору, не удаляются.
Привязать новые гали к какому либо спонсору можно при импорте. Галереи, не имеющие платника, можно привязывать через multiedit в разделе Stats.
А теперь о самом интересном – колонке rss. Многие спонсоры предоставляет среди прочих промотулзов так называемые rss-ленты со списком своих свежих fhg. Используются они в основном для блогов, но и для нас могут быть полезны. Для каждого из адвертов спонсоры генерируют уникальные rss-ленты с его id. Нажав кнопку edit в колонке rss, мы имеем возможность добавить неограниченное количество url-ов rss-ов нашего спонсора и задать нехитрые правила импорта fhg (reader name, crop profile, rotator) Теперь каждые 6 часов стрим будет заглядывать в спонсорский rss-feed, тянуть оттуда список новых fhg, и импортировать их себе. Как вы наверняка уже поняли, при появлении у спонсора новых галь он будет выкладывать их в свои рассылки, и соответственно в кратчайшие сроки новинки будут добавятся в ваш ротатор, о чем вы получите извещение на email. Не вечный двигатель для сайта, но уже что-то.
К сожалению, никаких стандартов что и как выкладывать в rss-ы, нет. Каждый спонсор сует туда то, что считает нужным. Например описания галерей, могут находиться
как в самом теле сообщения, так и в заголовке, или вообще в ссылках. Для того, чтобы выбрать источник десков, в рассылке существует поле descs source, в большинстве случаев все прекрасно работает с auto, но все-таки выполнять test перед добавлением ридера не повредит.
Очень часто у спонсора существует масса fhg с одинаковым контентом, но выполненных в разном дизайне. Если при ручном импорте еще можно напрячься и отобрать уникальные галереи, то контролировать то что приходит в rss-рассылках невозможно. Эту проблему решает парамет Check Doubles в настройках скрипта. При грабе стрим будет осуществлять необходимые проверки и не допускать появления дубликатов. Дубли ищутся в рамках ротатора. Фича крайне полезна сама по себе, а в связке с rss-ридером просто незаменима. Настоятельно рекомендую обратить на нее внимание.
7. Import
Импорт списка галь в базу данных ротатора. При импорте вы можете указать платник, к которому будет «привязана» галя, ротатор (можно добавить как во все ротаторы сразу, так и в какой-то один), профайл кропинга, а также формат строк для импортируемого списка. Непосредственно в строках импорта вы можете указать url галереи, ее описание (description), путь(пути) к тумбам, количество картинок и мувиков в галерее. Если при импорте указаны одно или два последних поля (pics count and movies count), то граббер не будет анализировать наличие контента в html-е, а сразу возьмет необходимые числа из импорта. Это необходимо в первую очередь мастерам, использующим свои галереи нестандартного формата, которые не "по зубам" грабберу. Галочка «Remember» позволит запоминать формат импорта и не вводить его заново в дальнейшем.
Кроме того, в ротатор можно загрузить уже готовые тумбы. Сделать это можно 4-мя способами:
1. В разделе MULTI IMPORT ри импорте галерей через разделители указать один или несколько урлов к тумбам. Например:
http://galleries.com/1;desc_1;http://galleries.com/1_1.jpg; http://galleries.com/1_2.jpg;http://galleries.com/1_3.jpg
где:
gallery url; description; thumb path; thumb path; thumb path
2. В MULTI IMPORT для поля Thumb Path вместо пути к одиночной тумбе указать массив путей неограниченной длины к тумбам, разделенным «|» и заключенным в фигурные скобки. Пример:
http://galleries.com/1;desc_1;{http://galleries.com/1_1.jpg| http://galleries.com/1_2.jpg| http://galleries.com/1_3.jpg}
где:gallery url; description; thumb path
Это позволит экспортировать/импортировать галереи со всеми тумбами, вне зависимости, от их количества.
3. Тоже самое, только вместо урлов тумб, указываем путь к ним на сервере. Путь может быть как относительно директории ротатора, так и полный путь на сервере.
4. Через раздел SINGLE IMPORT Тут все стандартно, пояснений думаю не требуеться.
Следует обратить внимание, что при импорте готовых тумб, их формат (ширина и высота) должны совпадать (до пикселя) с форматом ротатора, в который производится импорт. При их несовпадении стрим попытается сграбить галерею в штатном режиме. При импорте готовых тумб скрипт проверяет их уникальность, проще говоря, не получится одну и туже тумбу добавить в одну галю второй раз.
Импортировать в качестве своих тумб можно и gif-файлы. На морде они (gif-ы) будут отображаться с расширением jpg, но несмотря на это, все равно будут анимированными.
8. Grab List
Сразу после импорта гали попадают в этот раздел. Также здесь будет список галерей, которые ротатор не смог сграбить, например при невозможности открыть url, корректно его пропарсить и т.д. Причина будет указана рядом с сообщением об ошибке. Сюда же попадают предупреждения. Пример - ротатор имеет тип images (pics), а галя содержит только мувики. В ротацию такая галя не попадает, так как не соответствует типу ротатора, в то же время ошибки при граббинге не было. Когда ротатор находится в полуавтоматическом режиме semiauto то в этом разделе будут показаны все гали, которые находятся в состоянияхready или grabbing. Grabbing галерея сейчас граббится. Ready все тумбы уже готовы, но в ротацию не отправлены. Чтобы отобрать лучшие тумбы и пустить их "в оборот", выберите все Ready и нажмите «Select Thumbs&Add to Rotation». Точно также можно удалить (delete) или перекропить заново (reset state) выбранные галереи.
О режиме выбора тумб для отправки в ротацию в режиме semiauto необходимо рассказать подробно. Во-первых, для тумб, которые по вашему мнению являются наиболее удачными кандидатурами на топовые позиции, можно выставить повышенный приоритет для тестирования (т.е. тестироваться они будут в первую очередь) – для этого нужно 2 раза кликнуть на тумбе, чтобы рамка вокруг нее стала красной. Использование этой возможности, как правило, дает более быстрый рост продуктивности на ранних стадиях жизни сайта. Во-вторых, под каждой картинкой есть желтая кнопка «Manual Recrop» при нажатии на которую можно подкорректировать нарезанную автоматом тумбу. «Manual Recrop» позволяет избегать трудоемкого режима manual, но в тоже время максимально контролировать качество тумб. В-третьих, можно подкорректировать урл, деск, и изменить ротатор гали.
Если ни одна из тумб не была выбрана, галерея приобретает статус Warning, Wrong Content status.
При выставленном grabber mode=manual в grab list-е появляется кнопка "manual crop" назначение которой, думаю, понятно.
9. Rotators
Раздел для создания, редактирования, удаления, а также просмотра статистики ротаторов. Ротатор имеет 4 вида:
images (pics+movies) — в этот тип попадут и писксовые и мувисные гали;
images (pics) — только пиксовые гали;
images (movies) — только мувисные гали;
desc — все гали, имеющие описание (description).
Такое разделение ротаторов на виды позволяет не сортировать смесь из мувисных и пиксовых спонсорских fhg вручную для каждого из ротаторов. Мы просто задаем тип ротатора и граббер сам определит, какой контент содержится на гале и нужно ли ее (галю) добавлять в ротатор. В этом разделе также можно увидеть сколько в каждом ротаторе галерей (количество использующихся в ротации и общее) и тумб.
Примечание. Интерфейс админки не позволит удалять и редактировать ротаторы, содержащие галереи или используемые в шаблоне.
10. Templates
Шаблон морды. Тут, наверное, будет проще увидеть пример готового шаблона :) Сделать это можно по ссылке "Example". В шаблоне Вы увидите тэги типа #SUB_N#, где N - это номер субтемлейта (их описание расположено ниже). В субтемплейтах можно (и нужно) использовать следующие выражения:
#POS# — обязательное значение для параметра "l" в ауте ротатора;
#GAL# — url галереи;
#ENCODED_GAL# — кодированный url галереи. На морде можно использовать одновременно и кодированные и некодированные url-ы. Например в alt-е показывать реальный url, а в href-е кодированный;
#PICS# — количество картинок у галереи;
#MOVS# — количество мувиков у галереи;
#THUMB# — относительный путь к тумбе относительно директории ротатора или ссылка на удаленное место хранения тумбы при активированном ftp-модуле;
#LOCAL_THUMB# — относительный путь к тумбе относительно директории ротатора. На морде можно использовать одновременно и #THUMBS# и #LOCAL_THUMB#. Например в верхнем блоке выводить тумбы с локального быстрого сервера, на котором работает ротатор, а нижние с более медленного и с более дешевыми каналами сервера :)
#DESC# — description галереи.
#DESC_XXX# — description галереи, длинна вывода которого ограничена XXX символами (например #DESC_70#).
#LINK_ID# порядковый номер ссылки на морде. Некоторые cj-скрипты (из известных мне ats и ftt) в своей системе античита используют анализ статистики кликов на морде сайта. Для этого каждая ссылка должна иметь уникальный идентификатор, для чего и служит этот тэг.
Кнопка redraw all faces - регенерирует все все морды.
Колонка positions в субтемплейтах - сколько раз он вызывается из темплейта (обычно это количество тумб субтемплейта на морде).
Чекбоксreset face cellsобнуляет статсистику по кликательности ячеек морды. Рекомендую устанавливать его при изменении количества тумб в шаблоне.
Немного о формате аута ротатора. В общем виде он должен иметь следующее представление: {directory of the rotator}/out.php?l=#POS#&u={out_of_trade_script}.
При клике на ссылку на морде посетитель попадает на аут ротатора, который обрабатывает этот клик, а потом уже редиректит на аут cj-а, который уже по своему усмотрению распределяет клик дальше.
Внимание, важно! Для скриптов, реализованных на php, нужно использовать только тэг #ENCODED_GAL# с типом кодирования (см. settings) urlencode или urlencode + base64encode. Это необходимо для того, чтобы не терялись «хвосты» url-ов после символа &. Для скриптов, реализованных на cgi, можно использовать тэг #GAL# или #ENCODED_GAL# с типом кодирования base64_encode.
Ну и напоследок - как подсоединить ротатор к срипту сиджа. Для этого нужно просто добавить одну небольшую строчку в тот раздел cj-скрипта, в котором должен находиться шаблон морды. Если такого раздела нет, то строчку прописываем в индексный файл. Вот собственно строчка для индексов и скриптов на php:
<?php include("{directory of the rotator}/in.php");?>
А вот эта - для .shtml файлов:
<!--#include virtual="{directory of the rotator}/in.php"--?>
Ротатор поддерживает многостраничность. Вы можете создать неограниченное количество шаблонов морд (выпадающий список слева над текстом шаблона). Инклуд нишевых морд выглядит следующим образом:
php файлы:
<?php $facename='__page_title__';include('streamrotator/in.php');?>
.shtml files:
<!--#include virtual="streamrotator/in.php?facename=__page_title__"-->
Есть специальная опция и для инклуда топов:
#INCLUDE_{name of the top file}#
Следует учесть что путь к файлу топа следует указывать от корня домена.Для того чтобы заинклудить
содержание любой странички, вместо имени файла топа приписываем url этой странички, например:
#INCLUDE_http://mydomain.com/somepage.php#
Ин ротатора имеет одну небольшую но иногда полезную фичу - если слать трафик на урл типа http://mydomain.com?updatestat=off, то этот трафик не будет влиять на статистику ротатора. Для чего это может понадобиться. Например, мы разгоняем сидж с помощью ненишевого подлива, который может существенно повлиять на картину популярности тумб. Для того чтобы этого не происходило и стоит применять такой маневр.
11. Stat
Статистика по галереям. Доступны самые разнообразные параметры для выборки статистики и сортировки. В статистике показывается наиболее популярная тумба галереи. Если необходимо посмотреть остальные тумбы, кликните на картинку. Галереи в состоянии disable подсвечены серым цветом; галереи, в которых уже определена лучшая тумба - розовым цветом. Здесь же вы сможете удалить галереи, изменить статус, а также отправить галерею на переграб. Кроме того, здесь есть замечательная кнопка MULTIEDIT с помощью которой вы можете сделать массовую замену определенной последовательности символов в url-е или desc-е на другую (для замены всех урлов/десков в поле replace укажите *), поменять ротатор или платник галерей. По желанию эти манипуляции вы можете произвести либо со всеми галереями отфильтрованными в stats (all filtered galleries), либо только с теми, возле которых проставлены чекбоксы (only selected galleries).
12. Trash
Это "корзина". Основное предназначение - не допускать повторного импорта ранее удаленных галерей. Разумеется, корзину можно очищать как полностью, так и выборочно, а также восстанавливать галереи (они будут сграбблены заново).
13. Export
Позволяет сделать экспорт базы данных галерей/тумб в различных форматах, заданных пользователем, удовлетворяющих условиям выставленных фильтров. Поля экспорта требуют некоторых пояснений:
Gallery URL — урл галереи;
Description — описание;
Thumb Path — путь к тумбе. Таких полей в формате экспорта может быть несколько, тумбы будут выведены в порядке убывания популярности;
Thumbs Array перечень всех тумб галереи, разделенных символом «|» и заключенных в фигурные скобки;
Pics Count and Movies Count количество картинок и мувиков на галерее;
Added дата добавления галереи в ротатор.
14. Settings
Раздел MYSQL SETTINGS - параметры подключения к серверу mysql, а также пути к утилитам. Эти поля заполняются во время инсталляции скрипта и обычно менять их надобности не возникает.
grabber mode — режим работы ротатора auto, semiauto, manual или stopped:
auto – автоматическое создание тумб и добавление в ротацию;
semiauto – автоматическое создание тумб, их ручной отбор (и при необходимости ручная коррекция), добавление в ротацию;
manual – полностью ручной граб;
stopped – граббер не работает.
IM convert utility location — путь к утилите convert из пакета утилит imagemagick.
Check Doubles проверка на уникальность контента. Очень часто у спонсора существует масса fhg с одинаковым контентом, но выполненных в разном дизайне. Если при ручном импорте еще можно напрячься и отобрать уникальные галереи, то контролировать то, что приходит в rss-рассылках, невозможно. Эту проблему решает парамет check doubles. При грабе стрим будет осуществлять необходимые проверки и не допускать появления дубликатов. Дубли ищутся в рамках ротатора.
new thumbs lifetime — после того как каждая тумба для какой-либо галереи покажется new thumbs lifetime раз, скрипт выберет для дальнейшего использования лучшую, остальные будут удалены.
new thumbs percent — процент от общего количества мест на морде, на которых будут тестироваться новые тумбы.
max clicks counted — максимальное количество кликов, которое может быть засчитано для уника в течение одной сессии. По действию аналогичен такому же параметру в системе античит защиты cj-скриптов.
ctr recalculation period — количество последних показов, по которым рассчитывается ctr и rank тумб. Этот параметр позволяет более оперативно реагировать на изменения статистики тумб и не держать в топе тумбы, которые раньше были очень популярны, а сейчас по тем или иным причинам перестали быть таковыми. Хочу отметить, что статистика не просто сбрасывается после ctr recalculation period количества показов, а перессчитывается плавно, без скачков.
unique lifetime — время уникальности посетителя. Если посетитель не был на сайте время большее чем unique lifetime, то ротатор будет считать его новым посетителем. Напомню, что неуникальным посетителям ротатор подсовывает морды с другими тумбами. Как только рав становится опять уником он опять увидит на морде лучшие по статистике тумбы. Это достаточно любопытный параметр, и у автора есть небольшая теория по поводу его использования :) Рассмотрим 3 варианта:
Вариант 1. Период уникальности равен 0. Это значит, что каждый раз посетитель, попадая на сайт, будет считаться уникальным, так как разница между текущим временем и временем последнего посещения больше 0. Так работают подавляющее большинство ротаторов.
Вариант 2. Период уникальности 24 часа. Как показали эксперименты, это наиболее эффективная политика в плане максимально быстрого разгона сайта. Но не самая лучшая, в плане долгосрочной перспективы. Попытаюсь объяснить свою точку зрения. Посетитель во время серфинга по сайтам с некоторой степенью вероятности может вернуться на ваш сидж. Он видит новые тумбы, кликает снова, дрок доволен, прода растет. Допустим что сайт попал к нему в букмарки. Вернувшись на сайт через несколько дней (время > 24 часа) он будет опять уником и увидит опять морду с самыми лучшими тумбами. Так как тумбы лучшие из лучших, то кликать он будет замечательно, но в букмарках скорее всего при таком раскладе наш сайт не задержится - так как контент серфер будет видеть постоянно один и тот же.
Вариант 3. Период уникальности 30 дней. В этом случае посетитель каждый раз попадая на сайт будет видеть все новые и новые тумбы. Не самые лучшие, но всегда новые. Прода в этом случае будет не максимальной, но и вероятность жить в букмарках выше.
Все это похоже на стратегию со скимом: выше ск
им -больше букмарков, медленнее разгон; ниже ским - быстрее разгон, меньше букмарков.
script folder — Директория ротатора. По сути, это префикс используемый при формировании url-а для локальной тумбы. Нигде больше этот параметр не используется. Если у вас на морде пустые места, хотя в статистике тумбы отображаются нормально, то начните поиск ошибки с этого параметра.
Ignore Traffic From список «забаненных» стран. Посетители из выбранных стран будут видеть сайт также как остальные, за исключением того, что показы морд и клики не будут влиять на статистику ротатора. Для выбора более чем одной записи используйте CTRL. На сервере должен быть установлен модуль GEOIP для apache. Небольшой нюанс – если Вашего ip (из под которого вы видите админку) нет в базе GEOIP, то стрим будет информировать «GEOIP is not supported» , несмотря на то, что GEOIP установлен и нормально работает. К сожалению, средствами php невозможно корректно определить наличие или отсутствие этого модуля.
Show Galleries with the Same URL показывать ли на морде одновременно галереи с одинаковыми url-ами. Параметр по-умолчанию - OFF. Это логично и правильно. Но иногда возникают ситуации, когда этот момент нужно обойти, для этого и существует данный параметр.
Frequency of Backup Creation частота создания полных автоматических бэкапов.
Keep on Server Copies сколько копий автоматически создаваемых бэкапов необходимо хранить на сервере.
FTP SETTINGS. (Только для платной версии) Раздел настроек для удаленного хранения тумб. Используя эти параметры можно реализовать схему, когда сидж и ротатор будут установлены на одном сервере, а тумбы хранятся на другом. Сам процесс выглядит следующим образом. По расписанию запускается скрипт который проверяет, существуют ли галереи для которых произошел отбор лучшей тумбы, но которая еще не скопирована на удаленный сервер. Если такая тумба найдена, она отправляется на ftp и в базе данных делается соответствующая запись. При выборе другого ftp-сервера или другого каталога на уже используемом сервере все записи о месте размещения удаленных тумб удаляются и соответственно на морде используются локальные версии тумб. До тех пор пока они не загрузятся на новое место. Такая организация работы позволяет прописать параметры ftp сервера в любое время (не обязательно перед грабом галерей), а также изменять удаленное место хранения без копирования директории с тумбами на новое место вручную - скрипт выполнит все ваши прихоти на лету и не допустит, чтобы на морде были пустые места.
use ftp module. «Yes» - модуль удаленного хранения тумб включен, «No» - соответственно выключен.
ftp server, ftp user, ftp password, ftp folder(s). параметры подключения к ftp-серверу, а также путь по которому будут храниться наши тумбы.
remote url prefix — url, по которому сервер будет брать тумбы с удаленного сервера. Если Вы имеете несколько синонимов (разные url-ы, но ссылающиеся на одно и тоже место сервера), то их можно перечислить через запятую. Как известно, браузер имеет лимит на количество одновременных подключений к одному ip (домену). Когда тумбы раскиданы на несколько ip-адресов, мы «обманываем» браузер, и он открывает гораздо больше подключений. Происходит параллельная загрузка графики. Для этого нужно сделать несколько ip/субдоменов (далее просто ip) синонимов для ip вашего ftp (того, что прописан в remote url prefix). Нужно это для того, чтобы тумбы можно было загрузить на удаленный фтп один раз, после чего их было бы видно с нескольких url-ов синонимов. Например у меня есть _ip1_ для модуля фтп, на который стрим аплоадит тумбы. Тумба видна по урлу http://__ip1__/folder/1.jpg.
Так вот, нужно сделать так, чтобы эта же самая тумба была видна так:
http://__ip2__/folder/1.jpg
http://__ip3__/folder/1.jpg
http://__ip4__
/folder/1.jpg
http://__ip5__/folder/1.jpg
и т.д. Как это сделать - обращайтесь, пожалуйста, к админам.
После всего этого достаточно прописать в remote url prefix через запятую все ваши префиксы. В нашем примере: http://__ip1__/folder/,http://__ip2__/folder/,http://__ip3__/folder/,http://__ip4__/folder/,http://__ip5__/folder/
max files in subfolder — максимальное количество файлов в директории на ftp-сервере.
«test ftp settings» Запускает тест ftp сервера. Происходит подключение к серверу, переход в необходимую директорию, создание тестовой директории, копирование тестового файла на сервер, попытка получить этот файл через http-протокол, сравнение с исходным файлом. Если на одном из этапов теста происходит ошибка необходимо еще раз проверить параметры.
url encoding type — Тип кодирования урла при выводе тэга #ENCODED_GAL# (раздел Template). Для скриптов, реализованных на php, нужно использовать только тэг #ENCODED_GAL# темплейта с типом кодирования urlencode или urlencode + base64encode. Это необходимо для того, чтобы не терялись «хвосты» url-ов после символа &. Для скриптов, реализованных на cgi, можно использовать тэг #GAL#, либо #ENCODED_GAL# с типом кодирования base64_encode.
email — Сюда будут высылаться сообщения об ошибках mysql-сервера если таковые будут.
niche — В условно-бесплатной версии, скрипт отдает 1% кликов в качестве оплаты за использование. Выберите пожалуйста нишу сайта для того чтобы этот 1% попадал на ресурс с той же нишей что и ваш сидж. Для платной версии параметр не имеет смысла.
licension key — Номер ключа для платной версии. При приобретении лицензии вы получите сигнатуру которую нужно будет ввести в это поле.
new password и Confirm new password — новый пароль и подтверждение.
15. Сrop Profiles
Создание, редактирование и удаление профайлов для кропинга (процесса создания тумб). Для чего это все нужно. Например, на галереях какого-либо спонсора имеется логотип, который вы ну никак не хотите видеть на своих тумбах. У другого спонсора на fhg хронически темные фотографии, у третьего не хватает контраста. Есть два способа решения проблемы:
Вариант 1 (классический). Выбираем спонсора, подкручиваем под него параметры, грабим галереи, переходим ко второму спонсору.
Вариант 2 (StreamRotator). Создаем под каждого спонсора индивидуальный crop profile и при импорте галерей указываемый соответствующий профайл. Дешево, надежно и сердито. Ну и на будущее пригодится, если партнерка регулярно выкладывает новые fhg. Нажмите «Create new profile» для создания нового профайла или edit для редактирования уже существующего. Далее введите url «подопытной» галереи и дождитесь когда появятся уменьшенные копии картинок. Выберите одну из них и погрузитесь в изучение нашего мега-редактора :) Выглядит он так:

В левой части мы видим увеличенную картинку (original image area). Справа внизу (current thumb) - тумбу с примененными фильтрами и настройками кропа. В поле last thumb будет изображена тумба с предпоследними настройками. Т.е. изменив какой-либо параметр вы сразу увидите изменение и сможете наглядно сравнить с тем что было. Изменение параметров и наблюдение за результатами очень познавательное занятие и думаю, вы проведете в этом редакторе массу времени. Теперь о самих параметрах кропа:
Top shave, bottom shave, left shave, right shave — значения для предварительной обрезки исходной картинки в пикселах. Эти значения нужно использовать для вырезания регулярных логотипов на картинках;
Normalize color — нормализация цвета, в 95% делает картинку более привлекательной, но изредка «промахивается»;
Shine filter — фильтр добавляет блики на светлых частях изображения;
Dark filter — фильтр осветляет чрезмерно темные места изображения;
Enhance filter — сглаживает мелкие дефекты изображения;
Brightness — яркость;
Unsharp – аналог unsharp mask из photoshop-а, делает изображение резче;
Saturation — насыщенность;
Contrast — контраст;
Thumbs Amount Which Doesn’t Coincide Sides количество тумб, которое стрим будет создавать из исходной картинки при несовпадении отношения высота/ширина с таким отношением ротатора. Например, исходная картинка имеет ширину больше высоты (300x200, а-ля мувисный формат). Ротатор, в котором находится эта галя, имеет размер 150x200 – т.е. вытянута в высоту. При Thumbs Amount Which Doesn’t Coincide Sizes равным 3, из картинки будет создано 3 тумбы – с центральной, левой и правой части; при этом параметре равном 1 – одна тумба из центральной части; при 0 – тумб из этой картинки не будет нарезаться вообще. При совпадении форматов, данный параметр crop profile игнорируется, тумба нарезается из картинки всегда одна, из средней ее части. Более того, такие тумбы будут иметь повышенный приоритет при первоначальном тестировании на морде сайта;
Movie logos — логотипы которые будут наноситься на мувисные тумбы. Можно выбрать несколько (используя CTRL), в этом случае при создании тумб будет выбираться случайный логотип. В окне предпросмотра на тумбе будет первый из выбранных логотипов. Для того что бы убрать наложение логотипов на мувисные тумбы, снимите с помощью CTRL выбор со всех файлов логотипов;
Logos positions — расположение логотипа для мувисных тумб. Аналогично movie logos можно выбирать несколько значений;
Quality — качество jpeg.
После установки удовлетворительных значений параметра кропа введите имя
нового (или измените имя редактируемого) ротатора и нажмите «save».
16. Backup
Менеджер резервных копий. Создание, восстановление, удаление резервных копий.
17. Update
Эта замечательная ссылка позволяет обновить скрипты и таблицы баз данных до последней версии. Все происходит очень удобно, быстро и без лишних вопросов. Пару слов о безопасности. Перед апдейтом скрипт проверяет целостность и соответствие контрольным суммам обновляемых файлов и структуры базы данных на сервере. Как вычисляются контрольные суммы я никогда никому не скажу, подобрать их невозможно, взломать алгоритм расчета теоретически возможно, но практически крайне сложно. Кроме всего вышеперечисленного, перед каждым апдейтом автоматически создается бакап и в случае какого-либо сбоя скрипт апдейтера автоматически произведет восстановление из резервной копии.
18. Script State
Если существуют подозрения в некорректной настройке серверного ПО или что-то работает не так – первым делом переходим в этот раздел. Скрипт проведет анализ всего необходимого для своей работы ПО, настроек php, состояния таблиц mysql, ссылочной целостности базы данных, проверит физическое наличие файлов тумб на хосте, а также (для платной версии) - на удаленном сервере ftp. При повреждении таблиц базы данных стрим попытается их исправить. При отсутствии файлов тумб на сервере соответствующие гали будут отправлены на перекроп. Отсутствующие тумбы на удаленном хосте будут залиты туда повторно. Другими словами – все, что скрипт может исправить самостоятельно, он исправит. После всех проверок будет выведен подробный вердикт о пригодности существования Стрима на этом хосте. Разумется, при наличии каких-либо отклонений от нормы, необходимо поставить суппорт хостинга в известность о существующих проблемах.
19. Logout
Выход из админки.