Создание мощного движка разброса ссылок на сайты.

Роман18 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
11.01.2007

Основные пункты ТЗ.

Скрипт предназначен для отображения ссылок на страницах сайта.

Страницы сайта делятся на 3 типа:

- главная

- второстепенная (страница на которую имеется ссылка с главной)

- и все остальные - это страницы 3, 4 ... n уровня.

Рассмотрим последовательно все пункты работы со скриптом.

Для вывода ссылок на страницах сайта нам необходимо разместить код вызова ссылки, который должен быть универсален как для страниц с расширением php, так и html. Максимальное количество размещаемых ссылок на страницу напрямую зависит от количества кодов вызова ссылок, то есть сколько кодов разместили на страницу, столько ссылок скрипт и может разместить здесь.

После того как коды вызова ссылок на сайте размещены, мы переходим к добавлению этого сайта в админку и анализу имеющихся страниц с кодом на этом сайте. Проходим авторизацию и переходим в раздел "Сайты", где нажимаем "Добавить сайт", указываем адрес сайта, а так же определяем группу* и тематику сайта** и нажимаем добавить, после чего, паук обходит весь сайт анализируя все июмещиеся страницы на предмет размещения на них кода вызова ссылок. После того, как весь сайт проанализирова, открывается страница со статистикой:

Главная - ок

Второстепенные - 3 шт

site.com/web.html - ok

site.com/cruise.html - ok

site.com/cross.html - error

Иные - 2

site.com/web-е.html - ok

site.com/cruise-у.html - ok

Паук подсчитывает кол. найденных страниц, а так же верность установки кода вызова. В случае, если код вызова не работает, либо не установлен выдаётся ошибка "error", внизу оператору предлагается добавить проанализированный сайт в БД как есть (страница с ошибкой просто отфильтровывается), либо нажать "Проверить заново". После добавления сайта в БД, делается так же копия найденных страниц в папку, хранящуюся в корне анализируемого сайта.

*Группы - все сайты должны классифицироваться по группам, созданным админом.

**Тематика сайта - опять же классификация сайтов, один сайт может состоять в группе А с тематикой 0, второй независимо от того, что так же находится в группе А может иметь тематику 1.

Причина по которой необходимо делать копию найденных страниц пауком в корень на сам сайт. В связи с тем, что сайты развиваются и на них добавляются всё новые и новые страницы, которые не известны нашему скрипту, для этого необходимо реализовать функцию "стучалки". Когда страница на сайте запрашивается кем-либо, будь то робот или пользователь, скрипт должен проверять наличие данной страницы у себя в базе, однако для того, чтобы снизить нагрузку на центральный сервер предлагаю, чтобы он сначала проверял её наличие у себя, в случае отсутствия данной страницы, скрипт "стучится" в центральную базу, и база обновляет на локальном сайте список найденных страниц. Также происходит обновление в центральной базе. То есть если страница один раз "постучалась" в центральную базу, то информация об этом сохраняется на самом сайте, и ей не надо каждый раз стучаться в центральную базу. Всем новым страницам автоматически присваивается ранг страниц 3-ого уровня.

Определение мертвых страниц: некоторые страницы со временем удаляются, поэтому, чтобы не было так, что скрипт разбрасывает ссылки на несуществующие страницы, должен быть разработан механизм, который определяет, что, например, с данной страницы не происходил вызов кода в течении 3-х месяцев, и переносил ее в разряд мертвых, то есть ссылки на нее не должны распределяться. Должна быть возможность просмотреть список мертвых страниц, с возможностью их удаления из БД, а так же их восстановления.

Отображаемые ссылки на сайтах должны храниться на самих сайта, допустим в специально отведённой для них папке. Это позволит разгрузить центральную БД, а также не зависеть от хостинга, каналов связи и прочего. Вопрос постоянного нахождения ссылок на страницах критичен!

Для размещения ссылок на сайты, создаётся профиль под названием доменного имени сайта на который будут вести ссылки. После создания профиля, открываем его, где мы выбираем способ и тип размещения ссылок.

Типы:

главная

второстепенные

иные

Способы:

ручной

полуавтоматический

При выборе определённого типа для размещения ссылок нам будут предлагаться только страницы выбранного нами типа.

Ручной способ предназначен для ручного выбора сайтов, а затем и страниц на которые будут установлены ссылки. Выбрав этот способ сначала нам предлагается выбрать список сайтов на страницы которых необходимо разместить ссылки (за исключением, случаев когда тип размещения Главная), здесь нам должна быть доступна функция отфильтровки по группам, а так же по тематике, а именно интересуют комбинации.

Показать все за исключением:

тематика1 +

тематика2

тематика3

тематика4 +

тематика5

Показать все за исключением:

группа1

группа2 +

группа3 +

После того как нами были выбраны сайты нажимаем "Определить страницы", открывается страница с перечнем доступных страниц на выбранных нами сайтах, напротив каждой из которой имеется количество ранее размещенных на её ссылок.

www.site.com

www.site.com/stranica1.html - 0

www.site.com/stranica2.html - 2

www.site.com/stranica3.html - 3

www.site2.com

www.site2.com/stranica1.html - 1

www.site2.com/stranica2.html - 0

www.site2.com/stranica3.html - 0

Напротив каждой из страниц окошко для отметки галочкой выбранной страницы для размещения ссылок. Внизу должно подсчитываться количество страниц выбранных для размещения ссылок, после того как выбор закончен приступаем к размещению, скрипт должен запросить у нас коды ссылок, которые он должен разбросать на сайты. После того как ссылки были размещены, в профиле должна сохраняться запись о том, какие ссылки и куда они были размещены, открыв который мы могли удалить ссылки с выбранных сайтов, редактировать размещенные ссылки, удалить все ссылки вообще вместе с записью о размещении.

В случае, если ссылка на сайт А (соот. и название профиля А) была размещена на одну из второстепенных страниц сайта Б, то при просмотре либо главных страниц, либо иных для размещения дополнительных ссылок на сайт А, все страницы сайта Б, должны быть выделены красным, так как допускается размещать ТОЛЬКО одну ссылку на ОДИН сайт на одном сайте, независимо от типа страницы.

Полуавтоматический способ несёт лишь одно отличие от ручного. Мы выбираем сначала сайты на страницах которых желаем разместить ссылки, далее при выборе страниц, скрипт показывает нам лишь ТУ страницу на сайте, на которой на данный момент находится меньше всего ссылок, если таких страниц много, то первую из списка. Здесь должен иметь ещё дополнительный фильтр.

Показать страницы на которых:

а) от 1 до 3 ссылок (если на сайте имеется 2 страницы с количество ссылок равное 2, то показать он нам должен лишь одну)

б) только 2 ссылки

Предусмотреть кнопочки "Отметить все", "Снять отметку со всех".

По каждому профилю должна иметься общая статистика вида:

главные - 10 ссылок

второстепенные - 59 ссылок

иные - 139 ссылок