Joomla 4. Компонент K2 и форк K2ForJ4 (18 янв 2024)

Если вас, как и меня, достало выслушивать (вычитывать) бесконечные обещания разработчика K2 опубликовать версию компонента K2 под Joomla 4 (без чего невозможно реализовать апгрейд from Joomla 3 to Joomla 4) - воспользуйтесь форком K2ForJ4. Который в данный момент установлен и без каких-либо проблем работает на этом веб-сайте.

VisitorParser.js

Больше
7 года 3 мес. назад - 7 года 3 мес. назад #1 от Aleksej
Aleksej создал тему: VisitorParser.js
Два скрипта, использованные, соответственно, в демках статей Геолокация по ip. VisitorParser.js и VisitorParser.js on Google maps .

Code:
<style type="text/css"> code {color: red;} </style> <ul id="info"></ul> <script src="visitor-parser.js"></script> <script> var visitor = new visitorParser(); var info = visitor.getInfo(); var html = ''; if(info.geo.ip != ''){ html += '<li><b>Your IP address</b><br><code>' + info.geo.ip + '</code>'; html += (info.geo.city != '' || info.geo.country != '' ? ' tells visitorParser.js that you are from' : ''); html += (info.geo.city != '' ? ' around <code>' + info.geo.city + '</code>,' : ''); html += (info.geo.country != '' ? ' <code>' + info.geo.country + '</code>' : ''); html += (info.geo.provider != '' ? ' using the provider <code>' + info.geo.provider + '</code>' : ''); html += '.</li>'; } html += '<li><b>Date of last visit</b><br>This seems to be your 2nd visit to the visitorParser.js website. Your last visit was on <code>' + info.ua.date + '</code>. Nice to see you again!</li>'; if(info.ua.referring.url != ''){ html += '<li><b>Referring website</b><br>You have been referred to this website by <code>' + info.ua.referring.host + '</code>.</li>'; } if(info.ua.processor.name != '' || info.ua.platform.name != ''){ html += '<li><b>Platform or operating system</b><br>'; html += 'On <code>' + (info.ua.platform.name != '' ? info.ua.platform.name : 'n/a') + ' ' + (info.ua.platform.version != undefined ? info.ua.platform.version : '') + '</code> with processor <code>' + (info.ua.processor.name != '' ? info.ua.processor.name : 'n/a') + '</code>.'; html += '</li>'; } html += '<li><b>Browser, engine and resolution</b><br>You seem to be using <code>' + (info.ua.browser.name != '' ? info.ua.browser.name : 'n/a') + ' ' + (info.ua.browser.version != undefined ? info.ua.browser.version : '') + '</code> and engine <code>' + (info.ua.engine.name != '' ? info.ua.engine.name : 'n/a') + ' ' + (info.ua.engine.version != undefined ? info.ua.engine.version : '') + '</code> with a resolution of <code>' + info.ua.resolution.width + '</code>x<code>' + info.ua.resolution.height + '</code> pixels.</li>'; if(info.ua.mobile.name != ''){ html += '<li><b>Mobile device</b><br>'; html += 'You are using a <code>' + info.ua.mobile.name + ' ' + (info.ua.mobile.version != undefined ? info.ua.mobile.version : '') + '</code>.'; html += '</li>'; } document.getElementById('info').innerHTML = html; </script>

Code:
<html> <head> <title>Info by ip</title> <meta name="viewport" content="initial-scale=1.0"> <meta charset="utf-8"> <style> html, body { height: 100%; margin: 0; padding: 0; } #map { width: 100%; height: 500px; } </style> <script src="visitor-parser.js"></script> <script> var visitor = new visitorParser(); var info = visitor.getInfo(); </script> </head> <body> <div id="map"></div> <script> function initMap() { var point = {lat: info.geo.lat, lng: info.geo.lon}; var map = new google.maps.Map(document.getElementById('map'), { zoom: 3, center: point }); var contentString = '<p>' + info.geo.ip + '</p>' + '<p>' + info.geo.provider + '</p>' + '<p>' + info.geo.city + '</p>' +'<p>' +info.geo.country + '</p>'; var infowindow = new google.maps.InfoWindow({ content: contentString }); var marker = new google.maps.Marker({ position: point, map: map, }); marker.addListener('click', function() { infowindow.open(map, marker); }); infowindow.open(map,marker); } </script> <script src="https://maps.googleapis.com/maps/api/js?key=GOOGLE_MAPS_API_KEY&callback=initMap" async defer></script> </body> </html>

P.S. Разумеется, если будете использовать в качестве модуля странички, все html, body и head оптимально исключить. :)
Последнее редактирование: 7 года 3 мес. назад пользователем Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Dev banner 1
Больше
7 года 3 мес. назад #2 от grease monkey
grease monkey ответил в теме VisitorParser.js
как добиться чтобы на google-картах информационное окно маркера было сразу раскрыто (чтоб не кликать по маркеру) ?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
7 года 3 мес. назад #3 от serge
serge ответил в теме VisitorParser.js

grease monkey пишет: как добиться чтобы на google-картах информационное окно маркера было сразу раскрыто (чтоб не кликать по маркеру) ?



В документации Google Maps JavaScript API отсутствует описание этой возможности. Каждый выходит из положения как может. В данном примере вместо дефолтного:

Code:
var marker = new google.maps.Marker({ position: point, map: map, }); marker.addListener('click', function() { infowindow.open(map, marker); }); }


использована такая вставка:

Code:
var marker = new google.maps.Marker({ position: point, map: map, }); marker.addListener('click', function() { infowindow.open(map, marker); }); infowindow.open(map,marker); }

А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
7 года 1 мес. назад #4 от Sutasu
Sutasu ответил в теме VisitorParser.js
Здравствуйте!
Не подскажите, есть ли возможность на основе данного скрипта прописать редирект в .htaccess с основного домена на региональные поддомены (в нашем примере msk.mysite.ru и spb.mysite.ru) по ip входящего пользователя? Geoip у нашего хостинга не подключено, поэтому ищем какие-то пути решения, параллельно изучая html и js :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
7 года 1 мес. назад - 7 года 1 мес. назад #5 от serge
serge ответил в теме VisitorParser.js
Здравствуйте, Sutasu. Да можно, конечно... все можно при желании. Только вряд ли нужно, это ведь js, и выполняется он на компе пользователя, а не на сервере. Поэтому не нужно городить огород, воспользуйтесь, скажем, MaxMind или Sypex Geo (лучше MaxMind, второй месяц нет обновлений базы для Sypex Geo, и в этом смысле американский сервис представляется более надежным). Или любая другая база геоданных, коим несть числа. Одним словом, используйте для вашей цели API, написанное на php, а не джаваскрипты. В разделе IP Geolocation гляньте примеры кода.

А я смогу! - А поглядим! - А я упрямый!
Последнее редактирование: 7 года 1 мес. назад пользователем serge.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
7 года 1 мес. назад #6 от Aleksej
Aleksej ответил в теме VisitorParser.js

serge пишет: Только вряд ли нужно, это ведь js, и выполняется он на компе пользователя, а не на сервере.


Серый, а это не ты ли готовый js показывал для перенаправления трафика? :)
Т.е. он был "готовый", на тот момент, надо пояснить... с тех пор MaxMind в бесплатной версии более не предоставляет халявный js в Сети.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
7 года 1 мес. назад #7 от serge
serge ответил в теме VisitorParser.js
Я, это был я... только давно это было, да и "прописать редирект в .htaccess" с помощью подобного скрипта невозможно.

А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Работает на Kunena форум