Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Все блоки для отрисовки рекламы лежат тут:
- http://kagda.ru/i/ed01318ed390_16-07-2018-11:01:34_ed01.png
- Сделать уровень абстракции - класс, будем вызывать всегда его при отрисовке, передавая в него
- путь в twig шаблону.
- Ответственность класса проверить разрешена ли реклама для отрисовки на этой странице.
- Если класс выясняет, что нельзя, то выводится пустота. Если можно, то отрисовывается шаблон.
- Задача - разобраться как этот класс вкрутить в twig (если никак, то протащить из контроллера).
- Хранение ссылок - если бы не было regex, то можно было бы хранить хеш ссылку. И по хешу сделать поиск.
- Есть * в конце, которая может расшириться очень далеко. Т.е. расширять вручную и перебирать все варинты дело гиблое.
- Надо хранить оригинальные ссылки.
- Хранится будет как - { 'someLink' : '1|0' }
- сама ссылка isExpandable(действует ли ссылка как префикс)
- На этапе разбора файла срезаем * в конце, и если была * ,то помечаем как достаточно совпадения префикса , чтобы заблокировать.
- И флаг isExpandable = 1.
- Пример:
- На входе ссылка:
- https://omsk.barahla.net/kuplyu-prodam/zapchasti-aksessuary/25429228_prodam-avtozapchasti-b-u-shevrole-podveska-na-deu-shevrole-rychag-stoyka-balka.html
- Делаем поиск по точному совпаднию ссылки ( new AdsShowManager($link))->getIsBlockedBySingleLink()
- класс ищет такой ключ в redis - если нет. возвращает true|false.
- Нужно сделать проверку по префиксам. Получаем из redis все префиксы у которых стоит isExpandable = 1
- И в цикле инспектируем ссылку текущую. Объект будет представлять такой метод
- ( new AdsShowManager($link))->getIsBlockedByPrefix()
- Итого. getIsBlockedBySingleLink, getIsBlockedByPrefix - можно приватными сделать.
- getIsBlocked() - сделать публичным и его дергать. Сам getIsBlocked уже дергает методы проверки
- по точному совпадению и по prefix.
- Можно добавить ещё метод, который будет логировать все заблокированные ссылки по результатам работы программы
- (вероятно было бы полезно для отладки).
- Это если делать динамически.
- ~~~~~~~~~~~~~~~~~~~~~~~~~
- А можно проанализировав ссылки, поставить в БД монго атрибут hideAds в 1 и не делать анализ в рантайме.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement