Вопрос на засыпку (для маньяков)

Главные вкладки

Аватар пользователя Vsemdovolen Vsemdovolen 11 января 2018 в 18:31

2
А вот у меня такой вопрос для гуру.
Реально ли сделать вот такую ботву.

Задача:
1) Имеется некое количество партнеров с ссылкой на их сайты.
2) Для них создаются страницы или личные кабинеты, где они указывают все о себе, в том числе все контакты и малое описание.
3) Выводится вьювсом в список этих партнеров.
4) Однако публикация этих страниц происходит только при соблюдении парочки условий:

  • Принимает условия договора. Там галочка например, шо он готов гладко бриться и больше не пинать соседскую собаку
  • Партнер разместил у себя на сайте, на главной странице этот кодик с ссылкой на наш сайт.

5) Если партнер убирает ссылку или код (типа баннера "партнер такой то сети" с картинкой), в списке он пропадает автоматом.

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

Комментарии

Аватар пользователя Vsemdovolen Vsemdovolen 11 января 2018 в 18:37

ну нет. Просто мы например договариваемся с некой группой лиц об обмене ссылками и работе по одним правилам. Он говорит да, а через неделю включает заднюю. Пиарю его как честного, но на самом деле парень снимает сливки в виде клиентов и мне в обратку не шлет ссылкой. Я то не узнаю об этом, что он съехал с темы.

Аватар пользователя Vsemdovolen Vsemdovolen 11 января 2018 в 18:40

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

Аватар пользователя Vsemdovolen Vsemdovolen 11 января 2018 в 18:54

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

Аватар пользователя bumble bumble 11 января 2018 в 18:58

1 булька, соответствующая статусу размещения, не доступная пользователю и меняющаяся по результатам проверки.
Если использовать родные свойства или поля - не нужно писать доп хендлер для фильтрации вьюхи.

Аватар пользователя Vsemdovolen Vsemdovolen 11 января 2018 в 19:00

Так проверка не должна быть ручной. Все автоматизировано чтоб было. Уж не знаю возможно ли. Типа как вставляем счетчик яндекса или гугла. Нет кода на сайте - нет статистики в личном кабинете метрики. Только он просто выпадает из общего списка. В реальном времени чтоб можно было видеть сколько у тебя партнеров.

Аватар пользователя bumble bumble 11 января 2018 в 19:03

Счетчик посылает запросы с вашего сайта на сервер. В Вашем случае, нужно делать проверку наличия информации в коде страницы (читайте мой коммент выше).

Аватар пользователя Andruxa Andruxa 11 января 2018 в 22:43

bumble wrote:

От file_get_contents и preg_match по крону, до построения "умных" алгоритмов парсинга. Зависит от тонкостей.

Я б в ответку клоакинг бы устроил - боту по ip отдавал бы ссылку, а остальным - нет

Аватар пользователя Phantom63rus Phantom63rus 11 января 2018 в 22:14

Я бы накостылил следующим образом:
1. В типе материала скрытое поле, на котором указан адрес страницы, где обратная ссылка.
2. Скрипт, который лезет в табличку друпала и:
- качает страничку где должна быть ссылка
- парсит
- если не находит, то в базе снимает публикацию
3. Скрипт в крон.

Решение костыльное, но позволит не городить огород в самом друпале.

Аватар пользователя Vsemdovolen Vsemdovolen 12 января 2018 в 10:05

Данный вариант хорош если затея ограничивается только ссылкой. Это лишь часть задачи. Там должно еще одно событие происходить. Срабатывание одного из модулей. Не возникнет проблем?

Аватар пользователя gun_dose gun_dose 11 января 2018 в 23:46

Для нахождения ссылки достаточно простого strpos по коду страницы. Другое дело, что могут скрыть ссылку через css, а это уже только руками (глазами) проверяется. Именно поэтому лучше меняться не ссылками, а баннерами. Скрипт баннера будет просто кидать пинг на друпал, а друпал в ответку раз в день парсит страничку на наличие скрипта. Так можно точно удостовериться, что скрипт не только присутствует в коде страницы, но и работает.

Аватар пользователя Vsemdovolen Vsemdovolen 12 января 2018 в 10:02

Пусть это баннер. Мне важно, чтобы проверка была автоматической. Но на сколько понял у партнера есть возможность обойти. И на сколько этот скрипт трудный в создании?

Аватар пользователя gun_dose gun_dose 12 января 2018 в 10:11

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

Аватар пользователя ХулиGUN ХулиGUN 12 января 2018 в 0:18

Решение для баннера - one pixel img
То есть ты отдаёшь партнёру ссылку на свой баннер, который картинкой, но отдаёшь эту картинку не на прямую, а через свой роут, который обновляет поле в профиле партнёра, что он "честный" и время "проверки" и только потом отдаёт в респонс саму картинку (роут может быть динамическим, чтоб можно было детектить от какого партнёра "пришли") по желанию можно в крон поставить проверку по партнёрам, которые давно не "обновлялись"

Аватар пользователя Vsemdovolen Vsemdovolen 12 января 2018 в 10:23

Усложним задачу.
Человек не только должен разместить обратную ссылку на своем сайте в виде баннера, ссылки, но и пройти предварительное тестирование через модуль Quiz, который не работает пока)) https://drupal.ru/node/135705
Объясню идею в целом.
Некий парень, умеет например хорошо красить тачки. Имеет сайт. Хочет пройти добровольную сертификацию на знание технологии покраски, появившись в общем списке добровольно прошедших сертификацию.
То есть. Он проходит тест на знание технологии онлайн, размещает у себя ссылку на мой сайт и только тогда высвечивается в общем списке сертифицированных.
Какое из вышеперечисленных решений подойдут?

Аватар пользователя Phantom63rus Phantom63rus 12 января 2018 в 17:39

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

Мораль сей басни такова: не пытайтесь решать административные проблемы техническими путями.

Аватар пользователя ХулиGUN ХулиGUN 12 января 2018 в 13:00
1

Vsemdovolen wrote:

Что то не нашел такого модуля one pixel img

Это не модуль, а технология.
Заключается в том, что создаётся картинка размером в 1 пиксель где в аттрибуте src указывается ссылка на обработчик. То есть при загрузке страницы браузер попытается загрузить данную картинку, следовательно сделает запрос на ваш сайт и роут на вашем сайте обработает данный запрос. Обычно использовалась в почте для детектилки прочитанности письма

В конкретно вашем случае это может быть не 1 пиксель, а нормальная картинка баннера.