Привет. Есть интернет-магазин на Opencart (1.5.6.4), у него есть мобильное приложение, есть рекламная html-страница с двумя ссылками - "скачивание этих приложений" и "продолжить просмотр на сайте". Каким образом можно подключить эту рекламную страницу так, что бы она на мобильниках (на малом экране) показывалась перед показом главной страницы сайта (с временем жизни куков на повторный показ через сутки например), а на десктопной (на больших экранах) версии сайта не показывалась совсем.
@Evgenylebedevv это будет мешать посетителям. Особенно тем кто из под iOS в Safari через приватный режим ходит. Тут достаточно в opencart найти код который скажем так отвечает за главную страницу или в которой можно её определить. Потом дело техники, ставим cookie adsplash 1 и срок жизни 24 часа, если их нету и выводим рекламную страницу, если cookie есть, то не выводим рекламную страницу. Как пройдут сутки, cookie удалится и снова будут видеть рекламную страницу. --- Добавлено --- @Scogzhe рекламируй свои услуги в разделе free-lance или в подписи. В этой теме автор не упоминал, что ждёт исполнителей за деньги.
+1 - простое решение - приложение будет рекламмироваться для всех посетителей - не будет мешать посетителям одни плюсы ^_^
@Evgenylebedevv я имел ввиду, что можно создать cookie с именем adsplash и значением 1, через PHP можно установить cookie и срок жизни указать. https://php.ru/manual/function.setcookie.html
а почему бы не использовать медиа запросы ? автор почитай это http://htmlbook.ru/css/value/media может тебе подойдёт такое решение
Пошел таким путем: Для определения с какого устройства зашел пользователь - был использован php class Mobile_Detect.php (https://github.com/s...a/Mobile-Detect) 1. файл mobile_detect.php залил в папку system/library 2. в файле system/startup.php подключил mobile_detect.php PHP: require_once(DIR_SYSTEM . 'library/Mobile_Detect.php'); $detect = new Mobile_Detect(); define('isMobile', $detect->isMobile(), false); define('isTablet', $detect->isTablet(), false); 4. Залил целевую рекламную страницу (mobile-app.php) на сервер. 3. в контроллере header.php вставил: PHP: if(isMobile) { require('mobile-app.php'); exit; } else { echo "not"; exit; } Все работает, но теперь нужно логику допилить. Вообще конструкция должна быть, что-то типа если девайс - телефон, то читаем куку, если куки нет или прошло более суток, то устанавливаем куку/обновляем время жизни куки и отображаем целевую страницу, если девайс - десктоп, то устанавливаем/обновляем куку и отображаем домашнюю/другую страницу сайта. Будет так работать?
Да так то понятно, что надо тут куки прописывать.. может есть у кого уже что-то похожее, поделитесь, а? --- Добавлено --- Капитан очевидность?
@Evgenylebedevv, там страница зачем? создал блок задать изначалоьно display: none; а если разрешение устройства малое, display: absolute;
Хорошо, а если посетитель не хочет устанавливать приложение и хочет продолжить просмотр на сайте, переходит по ссылке которая ведет опять на эту же страницу, и что опять видит этот блок с рекламой?
Как сделать так, что бы для мобильного с кукой завершилось выполнение данного скрипта и просто загрузилась страница сайта? PHP: if(isMobile) { if(isset($_COOKIE['mobile-app']) && $_COOKIE['mobile-app'] == 'true' && isMobile){ ??????? //Если есть куки, то рекламу не показываем, а показываем обычную стр.сайта. }elseif(isMobile){ setcookie('mobile-app', 'true', time() + 60 * 60 * 24 * 1, '/'); //Если куки нет, но с мобильного то задаем куку на сутки require('mobile-app.php'); // и показываем страницу рекламы exit; }else{ echo "Что-то пошло не так"; exit; } }else{ cotiniue; }
есть подозрение, что используется какая-то библиотека по определению девайса (где-то видел такую и, как ни странно, функция называлась также). Исходя из этого подозреваю, что там должна быть именно функция
@mr.akv, я ему намекал на то что у него условие всегда истинно. А где сейчас у тебя проблема, что именно не получается?
не, всё норм тут. Он определяет константу сначала PHP: define('isMobile', $detect->isMobile(), false); вроде бы $detect->isMobile() должен возвращать тру или фолс
@Evgenylebedevv, кстати, смотри, как мы немножко запутались с твоей константой. А знаешь почему? Потому что константы принято писать большими буквами