Нашему проекту strongwine.ru требуется программист. Сайт на HOST CMS. Требуется человек который оперативно будет вносить правки, исправления, установку новых модулей и т.д. - сообща с нашим СЕО-программистом. Сайт новый, поэтому на первом этапе работы должно ...
Модули WordPress/PrestaShop - доступ по IP из нужных регионов
Требуется сделать два php-модуля для WordPress и PrestaShop со следующим функционалом и логикой работы:
1. По умолчанию мы не даем доступ всем новым пользователям на сайт.
2. Всех, кто не прошел проверку, переадресуем на другой URL, установленный в настройках модулей.
3. Некоторым пользователям, IP которых определяется как IP из разрешенных регионов РФ (субъектов Российской Федерации), мы предоставляем доступ к сайтам.
4. В обоих случаях мы записываем результаты проверки в сессию и куки, и IP-больше не проверяем, пользуемся результатами проверки при первом заходе на сайт.
5. Проверку IP-адреса нужно делать GET-запросом, например:
http://ipgeobase.ru:7020/geo?ip=83.149.35.6
Данный сервис дает ответ в формате XML:
83.149.32.0 - 83.149.35.255
RU
Екатеринбург
Свердловская область
Уральский федеральный округ
56.837814
60.596844
6. Результат ответа сервиса не нужно парсить с помощью подключаемых XML-библиотек, чтобы не тормозить сайт. Нас интересует лишь строковая переменная между тегами .... К примеру «Свердловская область». Получаем переменную при помощи регулярного выражения.
7. Далее при помощи SQL-запроса, узнаем – есть ли в таблице «regions» в поле «ipgeobaseru» запись совпадающая с данной строковой переменной. Если такая запись есть и в полях «accessPS» (для модуля PrestaShop) и «accessWP» (для модуля WordPress) содержится значение «1», то пользователя пускаем на сайт, проверок IP-больше не делаем, используя механизмы сессии и куки. Время жизни куки не более 1 месяца.
Если регион – пустой, то доступ запрещаем и переадресуем на URL, см. п.2.
8. Уточнения
8.1. Таблица «regions» было сделана ранее для нашей CRM и название регионов уже было прописано в поле «regionName». Так как у сервиса «http://ipgeobase.ru:7020/geo?ip=» нет кодов/ID регионов и соответствующей таблицы регионов, а значение выдается сразу текстом, то мы добавили в таблицу «regions» дополнительное поле «ipgeobaseru» и названия регионов CTRL+C, CTRL+V скопировали из http://ipgeobase.ru/cgi-bin/region_list.cgi - «Алфавитный указатель регионов Российской Федерации». Таким образом решилась проблема части регионов, к примеру, у нас в базе была просто «Адыгея», а ipgeobase.ru будет выдавать в XML-ответе «Республика Адыгея», аналогично решилась проблема с сокращениями «Ненецкий АО», стал «Ненецкий автономный округ». Поэтому текстовый поиск по региону должен работать на 99%, так как названия субъектов РФ уже взяты и занесены в таблицу с сайта ipgeobase.ru.
8.2. Для наших сайтов будут использоваться версии движков сайтов самые последние – WordPress 4.3.1 и PrestaShop 1.6.1.1. Для отладки кода их можно взять с официальных сайтов: https://ru.wordpress.org/ и https://www.prestashop.com/. Нужна будет краткая инструкция по установке.
8.3. Столь странные требования к блокировке предъявляются в связи с тем, что в тех регионах РФ, которые мы блокируем, продажа нашего продукта идет через дилеров. И конечные клиенты, в регионах в которых работают наши дилеры со своей ценовой политикой, не должны видеть даже цены, которые мы предлагаем в регионах «без дилеров».
8.4. Модули не имеют отображения во фронт-офисе сайтов. Зато в бек-офисах WordPress и PrestaShop должна быть страница с настройками модулей – регионы РФ с включенным флажками для разрешенных регионов (настройки хранятся в таблице БД «regions»), включение/выключение работы модуля, URL-переадресации, включение/выключение ведения лога, поля БД где нужно смотреть разрешен ли доступ («accessPS», «accessWP» или может быть потом будут другие поля). Настройки модулей, кроме регионов, хранятся в текстовом файле в папке модуля.
8.5 Ведется лог работы проверки IP в формате:
Дата-время| IP | регион | от куда пришел и другие подробности, которые могут помочь удалить от туда ссылку. Ещё поля - на ваше усмотрение.
8.6. Нужно процедурное программирование (ООП замедляет PHP, на наш взгляд). Должны быть комментарии к функциям и ключевым блокам кода. При делении кода на функции нужно предусмотреть возможность дальнейшего расширения – написания модулей к другим движкам.
Заявки фрилансеров
Похожие заказы
- Системы управления (CMS)1 заявкаЗакрыт9 лет назад
Здравствуйте. Нужно внести правки на сайт. Админка амиро кмс. Подробности в тз https://yadi.sk/d/4eDXXuFPjNXjj
Системы управления (CMS)2 заявкиЗакрыт9 лет назадТребуется установить cms, прикрутить к ней шаблонный дизайн. CMS аргументированно выбираете вы сами, дизайн выберем вместе. Наполнять сайт не надо. Заливаем на хостинг, проверяем работоспособность. Будущий сайт должен быть похож на ...
Системы управления (CMS)1 исполнительЗавершен9 лет назадЗдравствуйте. Необходимо: - Перенести сайт на другой хостинг (nic.ru). Сейчас после переноса - Fatal Erorr - Создать контактную форму "Заказ обратного звонка". Макет есть.
Системы управления (CMS)1 исполнительЗавершен10 лет назадСоздать сайт на CMS PhpFox 3 на основе существующего дизайна (psd) Сроки, стоимость, условия работы обговариваются.
Системы управления (CMS)1 заявкаЗакрыт9 лет назадЗдравствуйте! Необходим человек, разбирающийся в Modx Evo. Сайт - ekortvl.ru На сайте не корректно отображаются url - стоит переменная ?q= перед каждым урл. ...
Системы управления (CMS)1 исполнительЗавершен9 лет назадНеобходимо перенести тему wordpress с одного сайта на другой, стандартным способом шаблон встает криво.
Системы управления (CMS)7 заявокЗакрыт9 лет назадЗдравствуйте. на сайте http://krekhovetskyi.net/ под рубриками есть типы: "Аниме", "Мультфильмы", "Фильмы", "Сериалы". нужно добавить еще два - это "Мультсериалы" и "Аниме-сериалы". вставить нужно сразу ...
Системы управления (CMS)1 исполнительЗавершен9 лет назадЕсть макет в html. Требуется установка его на вордпресс. Желательно сегодня. Пишите сроки и стоимость работы. Макет состоит из 1 страницы (адаптивный), для вордпресс нужно предусмотреть наличие колонки справа для второстепенных. ...
Системы управления (CMS)1 исполнительЗавершен10 лет назадДоброго дня! Есть сайт на wordpress. Вроде проведены работы по оптимизации (минификация, кэш и т.п.). Но что-то не так со скоростью все равно - время ответа от сервера по 2 секунды. Сайт ...
Системы управления (CMS)4 заявкиЗакрыт9 лет назад