Prehod na novo geoip2 knjiznico za detekcijo lokacije, prenesen modul geoip v admin/survey/modules
This commit is contained in:
parent
eff6fca973
commit
5c25bcfe53
@ -1,226 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Modul za dolocanje lokacije na podlagi IP-ja
|
||||
*
|
||||
* Zaenkrat se uporablja GeoIP z GeoLiteCity knjiznico
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class SurveyGeoIP{
|
||||
|
||||
var $anketa; # id ankete
|
||||
var $data = array(); # tabela z ip analizo lokacij
|
||||
var $countryDB = false;
|
||||
var $countriesLocationsData = array();
|
||||
|
||||
function __construct($anketa){
|
||||
global $site_url;
|
||||
|
||||
// Ce imamo anketo
|
||||
if ((int)$anketa > 0){
|
||||
$this->anketa = $anketa;
|
||||
}
|
||||
|
||||
//check if we have data for countries
|
||||
$sql = sisplet_query("SELECT COUNT(*) AS cnt FROM countries_locations", 'obj');
|
||||
if($sql->cnt>0)
|
||||
$this->countryDB = true;
|
||||
}
|
||||
|
||||
|
||||
public function displayData(){
|
||||
global $lang;
|
||||
|
||||
/*ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
error_reporting(E_ALL);*/
|
||||
|
||||
// Zakesiramo podatke o lokacijah
|
||||
$this->calculateLocations();
|
||||
//var_dump($this->data);
|
||||
|
||||
|
||||
// Opozorilo o nenatancnosti
|
||||
echo '<p class="bold">'.$lang['srv_geoip_warning'].'</p>';
|
||||
|
||||
|
||||
echo '<div>';
|
||||
echo '<div class="floatLeft">';
|
||||
|
||||
// Izpis tabele frekvenc
|
||||
echo '<table class="geoip_table">';
|
||||
|
||||
// Prva vrstica
|
||||
echo '<tr>';
|
||||
echo '<th>'.$lang['srv_geoip_country'].'</th>';
|
||||
echo '<th>'.$lang['srv_geoip_city'].'</th>';
|
||||
echo '<th>'.$lang['srv_geoip_freq'].'</th>';
|
||||
echo '<th>%</th>';
|
||||
echo '</tr>';
|
||||
|
||||
// Vrstice s podatki
|
||||
if(isset($this->data['all']))
|
||||
foreach($this->data['all'] as $country => $country_freq){
|
||||
if($country !== 'all'){
|
||||
|
||||
// Frekvenca po drzavi
|
||||
$country_percent = ($this->data['freq'] > 0) ? round($country_freq['freq'] / $this->data['freq'], 3) * 100 : 0;
|
||||
echo '<tr class="country">';
|
||||
echo '<td>'.($country == '' ? '<i>'.$lang['srv_geoip_unknown'].'<i>' : mb_convert_encoding($country, "UTF-8", "ISO-8859-1")).'</td>';
|
||||
$cities = mb_convert_encoding($this->data['all'][$country]['cities'], "UTF-8", "ISO-8859-1");
|
||||
echo '<td>'.(isset($country_freq['showMap']) ? '<a class="fMap rawData" title="'.$lang['srv_view_data_on_map'].'" href="javascript:void(0);" onclick=\'passMapDataRaw('.json_encode($cities).');\'><img src="img_0/Google_Maps_Icon.png" height="24" width="24" /></a></td>' : '');
|
||||
echo '<td>'.$country_freq['freq'].'</td>';
|
||||
echo '<td>'.$country_percent.' %</td>';
|
||||
echo '</tr>';
|
||||
|
||||
// Se frekvence po mestih
|
||||
foreach($this->data['all'][$country]['cities'] as $city => $city_data){
|
||||
|
||||
$city_percent = ($this->data['freq'] > 0) ? round($city_data['cnt'] / $this->data['freq'], 3) * 100 : 0;
|
||||
echo '<tr class="city">';
|
||||
echo '<td></td>';
|
||||
echo '<td>'.($city == '' ? '<i>'.$lang['srv_geoip_unknown'].'<i>' : mb_convert_encoding($city, "UTF-8", "ISO-8859-1")).'</td>';
|
||||
echo '<td>'.$city_data['cnt'].'</td>';
|
||||
echo '<td>'.$city_percent.' %</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
// Zadnja vrstica
|
||||
echo '<tr class="country">';
|
||||
echo '<td>'.$lang['hour_total'].'</td>';
|
||||
echo '<td></td>';
|
||||
echo '<td>'.$this->data['freq'].'</td>';
|
||||
echo '<td>100%</td>';
|
||||
echo '</tr>';
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
|
||||
//google maps on right of table
|
||||
if(count($this->countriesLocationsData)>0){
|
||||
echo '<div class="floatLeft" style="margin: 15px 0px 0px 50px;">';
|
||||
if(count($this->countriesLocationsData)>1)
|
||||
$this->displayNavigationMaps();
|
||||
echo '<div id="map_ip" style="width: 800px; height:500px;border-style: solid;border-width: 1px;border-color: #b4b3b3;"></div>';
|
||||
echo '</div>';
|
||||
|
||||
$cities = mb_convert_encoding($this->data['all']['all']['cities'], "UTF-8", "ISO-8859-1");
|
||||
echo '<script type="text/javascript">passMapDataRaw('.json_encode($cities).');googleMapsAPIProcedura(initializeMapGeneralForIPs);</script>';
|
||||
}
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
|
||||
// Loop cez response in zackesiramo ip-je in lokacije
|
||||
private function calculateLocations(){
|
||||
|
||||
$sql = sisplet_query("SELECT ip, preview, testdata, last_status, lurker
|
||||
FROM srv_user
|
||||
WHERE ank_id='".$this->anketa."' AND testdata='0' AND preview='0' AND deleted='0'");
|
||||
while($row = mysqli_fetch_array($sql)){
|
||||
|
||||
// Ce locimo glede na status
|
||||
//$index = $row['last_status'].'_'.$row['lurker'];
|
||||
$index = 'all';
|
||||
|
||||
// Shranimo vse podatke za ip
|
||||
$location_data = geoip_record_by_name($row['ip']);
|
||||
$this->data['ip'][$row['ip']] = $location_data;
|
||||
|
||||
// Frekvence po drzavah
|
||||
if(isset($this->data[$index][$location_data['country_name']]['freq'])){
|
||||
$this->data[$index][$location_data['country_name']]['freq']++;
|
||||
if($location_data['country_name']!='')
|
||||
$this->countriesLocationsData[$location_data['country_name']]['cnt']++;
|
||||
}
|
||||
else{
|
||||
$this->data[$index][$location_data['country_name']]['freq'] = 1;
|
||||
//store coordinates for country
|
||||
if($this->countryDB && $location_data['country_name']!=''){
|
||||
$sqlc = sisplet_query("SELECT latitude, longitude FROM countries_locations WHERE country_code='".$location_data['country_code']."'", 'obj');
|
||||
$this->countriesLocationsData[$location_data['country_name']]['cnt'] = 1;
|
||||
$this->countriesLocationsData[$location_data['country_name']]['lat'] = $sqlc->latitude;
|
||||
$this->countriesLocationsData[$location_data['country_name']]['lng'] = $sqlc->longitude;
|
||||
}
|
||||
}
|
||||
|
||||
// Frekvence po mestih
|
||||
if(isset($this->data[$index][$location_data['country_name']]['cities'][$location_data['city']])){
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']]['cnt']++;
|
||||
$this->data[$index]['all']['cities'][$location_data['city']]['cnt']++;
|
||||
}
|
||||
else{
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']]['cnt'] = 1;
|
||||
$this->data[$index]['all']['cities'][$location_data['city']]['cnt'] = 1;
|
||||
if($location_data['city'] !== ''){
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']]['lat'] = floatval($location_data['latitude']);
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']]['lng'] = floatval($location_data['longitude']);
|
||||
$this->data[$index]['all']['cities'][$location_data['city']]['lat'] = floatval($location_data['latitude']);
|
||||
$this->data[$index]['all']['cities'][$location_data['city']]['lng'] = floatval($location_data['longitude']);
|
||||
}
|
||||
}
|
||||
if($location_data['city'] == '' && isset($location_data['longitude']) && ($location_data['longitude'] != 0 || $location_data['longitude'] != 0)){
|
||||
if(isset($this->data[$index][$location_data['country_name']]['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])])){
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['cnt']++;
|
||||
$this->data[$index]['all']['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['cnt']++;
|
||||
}
|
||||
else{
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['cnt'] = 1;
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['lat'] = floatval($location_data['latitude']);
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['lng'] = floatval($location_data['longitude']);
|
||||
$this->data[$index]['all']['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['cnt'] = 1;
|
||||
$this->data[$index]['all']['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['lat'] = floatval($location_data['latitude']);
|
||||
$this->data[$index]['all']['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['lng'] = floatval($location_data['longitude']);
|
||||
}
|
||||
}
|
||||
if(isset($location_data['latitude']) && $location_data['latitude'] !== ""){
|
||||
$this->data[$index][$location_data['country_name']]['showMap']=1;
|
||||
$this->data[$index]['all']['showMap']=1;
|
||||
}
|
||||
|
||||
// Frekvenca vseh
|
||||
if(isset($this->data['freq']))
|
||||
$this->data['freq']++;
|
||||
else
|
||||
$this->data['freq'] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
function displayNavigationMaps() {
|
||||
global $lang;
|
||||
|
||||
$countries = mb_convert_encoding($this->countriesLocationsData, "UTF-8", "ISO-8859-1");
|
||||
$cities = mb_convert_encoding($this->data['all']['all']['cities'], "UTF-8", "ISO-8859-1");
|
||||
|
||||
echo '<div class="secondNavigation">';
|
||||
echo '<ul class="secondNavigation">';
|
||||
|
||||
echo'<li>';
|
||||
echo '<a class="no-img active" id="geoip_cities" onclick=\'geoip_map_navigation_toggle(this, '.json_encode($cities).');\'>';
|
||||
echo '<span class="label">' . $lang['srv_geoip_map_cities'] . '</span>';
|
||||
echo '</a>';
|
||||
echo'</li>';
|
||||
|
||||
#space
|
||||
echo'<li class="space">';
|
||||
|
||||
// onclick=\'passMapDataRaw('.json_encode($countries).');googleMapsAPIProcedura(initializeMapGeneralForIPs);\'
|
||||
//echo '<td>'.($this->countryDB ? '<a class="fMap rawData" title="'.$lang['srv_view_data_on_map'].'" href="javascript:void(0);" onclick=\'passMapDataRaw('.json_encode($countries).');\'><img src="img_0/Google_Maps_Icon.png" height="24" width="24" /></a></td>' : '');
|
||||
|
||||
//echo '<td>'.(isset($country_freq['showMap']) ? '<a class="fMap rawData" title="'.$lang['srv_view_data_on_map'].'" href="javascript:void(0);" onclick=\'passMapDataRaw('.json_encode($cities).');\'><img src="img_0/Google_Maps_Icon.png" height="24" width="24" /></a></td>' : '');
|
||||
|
||||
echo'<li>';
|
||||
echo '<a class="no-img" id="geoip_countries" onclick=\'geoip_map_navigation_toggle(this, '.json_encode($countries).');\'>';
|
||||
echo '<span class="label">' . $lang['srv_geoip_map_countries'] . '</span>';
|
||||
echo '</a>';
|
||||
echo'</li>';
|
||||
|
||||
echo'</ul>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<br class="clr" />';
|
||||
echo '<br class="clr" />';
|
||||
}
|
||||
}
|
276
admin/survey/modules/mod_geoIP/class.SurveyGeoIP.php
Normal file
276
admin/survey/modules/mod_geoIP/class.SurveyGeoIP.php
Normal file
@ -0,0 +1,276 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Modul za dolocanje lokacije na podlagi IP-ja
|
||||
*
|
||||
* Po novem se uporablja GeoIP2 z GeoLiteCity knjiznico
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
use GeoIp2\Database\Reader;
|
||||
|
||||
class SurveyGeoIP{
|
||||
|
||||
var $anketa; # id ankete
|
||||
var $data = array(); # tabela z ip analizo lokacij
|
||||
|
||||
var $countryDB = false;
|
||||
var $countriesLocationsData = array();
|
||||
|
||||
|
||||
function __construct($anketa){
|
||||
global $site_url;
|
||||
|
||||
// Ce imamo anketo
|
||||
if ((int)$anketa > 0){
|
||||
$this->anketa = $anketa;
|
||||
}
|
||||
|
||||
// Check if we have data for countries
|
||||
$sql = sisplet_query("SELECT COUNT(*) AS cnt FROM countries_locations", 'obj');
|
||||
if($sql->cnt > 0){
|
||||
$this->countryDB = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function displayData(){
|
||||
global $lang;
|
||||
|
||||
// Zakesiramo podatke o lokacijah
|
||||
$this->calculateLocations();
|
||||
//var_dump($this->data);
|
||||
|
||||
|
||||
// Opozorilo o nenatancnosti
|
||||
echo '<p class="bold">'.$lang['srv_geoip_warning'].'</p>';
|
||||
|
||||
|
||||
echo '<div>';
|
||||
echo '<div class="floatLeft">';
|
||||
|
||||
// Izpis tabele frekvenc
|
||||
echo '<table class="geoip_table">';
|
||||
|
||||
// Prva vrstica
|
||||
echo '<tr>';
|
||||
echo '<th>'.$lang['srv_geoip_country'].'</th>';
|
||||
echo '<th>'.$lang['srv_geoip_city'].'</th>';
|
||||
echo '<th>'.$lang['srv_geoip_freq'].'</th>';
|
||||
echo '<th>%</th>';
|
||||
echo '</tr>';
|
||||
|
||||
// Vrstice s podatki
|
||||
if(isset($this->data['all'])){
|
||||
|
||||
foreach($this->data['all'] as $country => $country_freq){
|
||||
|
||||
if($country !== 'all'){
|
||||
|
||||
// Frekvenca po drzavi
|
||||
$country_percent = ($this->data['freq'] > 0) ? round($country_freq['freq'] / $this->data['freq'], 3) * 100 : 0;
|
||||
|
||||
echo '<tr class="country">';
|
||||
echo '<td>'.($country == '' ? '<i>'.$lang['srv_geoip_unknown'].'<i>' : mb_convert_encoding($country, "UTF-8", "ISO-8859-1")).'</td>';
|
||||
$cities = mb_convert_encoding($this->data['all'][$country]['cities'], "UTF-8", "ISO-8859-1");
|
||||
echo '<td>'.(isset($country_freq['showMap']) ? '<a class="fMap rawData" title="'.$lang['srv_view_data_on_map'].'" href="javascript:void(0);" onclick=\'passMapDataRaw('.json_encode($cities).');\'><img src="img_0/Google_Maps_Icon.png" height="24" width="24" /></a></td>' : '');
|
||||
echo '<td>'.$country_freq['freq'].'</td>';
|
||||
echo '<td>'.$country_percent.' %</td>';
|
||||
echo '</tr>';
|
||||
|
||||
// Se frekvence po mestih
|
||||
foreach($this->data['all'][$country]['cities'] as $city => $city_data){
|
||||
|
||||
$city_percent = ($this->data['freq'] > 0) ? round($city_data['cnt'] / $this->data['freq'], 3) * 100 : 0;
|
||||
|
||||
echo '<tr class="city">';
|
||||
echo '<td></td>';
|
||||
echo '<td>'.($city == '' ? '<i>'.$lang['srv_geoip_unknown'].'<i>' : mb_convert_encoding($city, "UTF-8", "ISO-8859-1")).'</td>';
|
||||
echo '<td>'.$city_data['cnt'].'</td>';
|
||||
echo '<td>'.$city_percent.' %</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Zadnja vrstica
|
||||
echo '<tr class="country">';
|
||||
echo '<td>'.$lang['hour_total'].'</td>';
|
||||
echo '<td></td>';
|
||||
echo '<td>'.$this->data['freq'].'</td>';
|
||||
echo '<td>100%</td>';
|
||||
echo '</tr>';
|
||||
echo '</table>';
|
||||
|
||||
echo '</div>';
|
||||
|
||||
// Google maps on right of table
|
||||
if(count($this->countriesLocationsData)>0){
|
||||
|
||||
echo '<div class="floatLeft" style="margin: 15px 0px 0px 50px;">';
|
||||
|
||||
if(count($this->countriesLocationsData) > 1)
|
||||
$this->displayNavigationMaps();
|
||||
|
||||
echo '<div id="map_ip" style="width: 800px; height:500px;border-style: solid;border-width: 1px;border-color: #b4b3b3;"></div>';
|
||||
|
||||
echo '</div>';
|
||||
|
||||
$cities = mb_convert_encoding($this->data['all']['all']['cities'], "UTF-8", "ISO-8859-1");
|
||||
|
||||
echo '<script type="text/javascript">passMapDataRaw('.json_encode($cities).');googleMapsAPIProcedura(initializeMapGeneralForIPs);</script>';
|
||||
}
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
|
||||
// Loop cez response in zackesiramo ip-je in lokacije
|
||||
private function calculateLocations(){
|
||||
global $site_path;
|
||||
global $lang;
|
||||
|
||||
// Inicializiramo reader s knjiznico ip lokacij
|
||||
$reader = new Reader($site_path.'admin/survey/modules/mod_geoIP/db/GeoLite2-City.mmdb');
|
||||
//$reader = new Reader($site_path.'admin/survey/modules/mod_geoIP/db/GeoLite2-Country.mmdb');
|
||||
|
||||
|
||||
$sql = sisplet_query("SELECT ip, preview, testdata, last_status, lurker
|
||||
FROM srv_user
|
||||
WHERE ank_id='".$this->anketa."' AND testdata='0' AND preview='0' AND deleted='0'
|
||||
");
|
||||
while($row = mysqli_fetch_array($sql)){
|
||||
|
||||
// Ce locimo glede na status
|
||||
//$index = $row['last_status'].'_'.$row['lurker'];
|
||||
$index = 'all';
|
||||
|
||||
// Poskusimo ustvariti objekt z lokacijo za IP
|
||||
$unknown_location = false;
|
||||
try {
|
||||
$location_object = $reader->city($row['ip']);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
//echo 'Error: ', $e->getMessage();
|
||||
$unknown_location = true;
|
||||
}
|
||||
|
||||
// Ce ni ip-ja v bazi gre za neznano lokacijo
|
||||
if($unknown_location){
|
||||
$location_data['country_name'] = $lang['srv_unknown'];
|
||||
$location_data['country_code'] = '';
|
||||
$location_data['city'] = $lang['srv_unknown'];
|
||||
$location_data['longitude'] = '';
|
||||
$location_data['latitude'] = '';
|
||||
}
|
||||
// Drugace preberemo iz knjiznice podatke o lokaciji
|
||||
else{
|
||||
$location_data['country_name'] = $location_object->country->name;
|
||||
$location_data['country_code'] = $location_object->country->isoCode;
|
||||
$location_data['city'] = $location_object->city->name;
|
||||
$location_data['longitude'] = $location_object->location->longitude;
|
||||
$location_data['latitude'] = $location_object->location->latitude;
|
||||
}
|
||||
|
||||
// Frekvence po drzavah
|
||||
if(isset($this->data[$index][$location_data['country_name']]['freq'])){
|
||||
|
||||
$this->data[$index][$location_data['country_name']]['freq']++;
|
||||
|
||||
if($location_data['country_name']!='')
|
||||
$this->countriesLocationsData[$location_data['country_name']]['cnt']++;
|
||||
}
|
||||
else{
|
||||
$this->data[$index][$location_data['country_name']]['freq'] = 1;
|
||||
|
||||
//store coordinates for country
|
||||
if($this->countryDB && $location_data['country_name'] != '' && $location_data['country_name'] != $lang['srv_unknown']){
|
||||
|
||||
$sqlc = sisplet_query("SELECT latitude, longitude FROM countries_locations WHERE country_code='".$location_data['country_code']."'", 'obj');
|
||||
|
||||
$this->countriesLocationsData[$location_data['country_name']]['cnt'] = 1;
|
||||
$this->countriesLocationsData[$location_data['country_name']]['lat'] = $sqlc->latitude;
|
||||
$this->countriesLocationsData[$location_data['country_name']]['lng'] = $sqlc->longitude;
|
||||
}
|
||||
}
|
||||
|
||||
// Frekvence po mestih
|
||||
if(isset($this->data[$index][$location_data['country_name']]['cities'][$location_data['city']])){
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']]['cnt']++;
|
||||
$this->data[$index]['all']['cities'][$location_data['city']]['cnt']++;
|
||||
}
|
||||
else{
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']]['cnt'] = 1;
|
||||
$this->data[$index]['all']['cities'][$location_data['city']]['cnt'] = 1;
|
||||
|
||||
if($location_data['city'] != '' && $location_data['city'] != $lang['srv_unknown']){
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']]['lat'] = floatval($location_data['latitude']);
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']]['lng'] = floatval($location_data['longitude']);
|
||||
$this->data[$index]['all']['cities'][$location_data['city']]['lat'] = floatval($location_data['latitude']);
|
||||
$this->data[$index]['all']['cities'][$location_data['city']]['lng'] = floatval($location_data['longitude']);
|
||||
}
|
||||
}
|
||||
|
||||
// Mesto ni znano, imamo pa koordinate
|
||||
if($location_data['city'] == '' && isset($location_data['longitude']) && $location_data['longitude'] != '' && isset($location_data['latitude']) && $location_data['latitude'] != ''){
|
||||
|
||||
if(isset($this->data[$index][$location_data['country_name']]['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])])){
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['cnt']++;
|
||||
$this->data[$index]['all']['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['cnt']++;
|
||||
}
|
||||
else{
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['cnt'] = 1;
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['lat'] = floatval($location_data['latitude']);
|
||||
$this->data[$index][$location_data['country_name']]['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['lng'] = floatval($location_data['longitude']);
|
||||
$this->data[$index]['all']['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['cnt'] = 1;
|
||||
$this->data[$index]['all']['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['lat'] = floatval($location_data['latitude']);
|
||||
$this->data[$index]['all']['cities'][$location_data['city']][''.floatval($location_data['latitude']).floatval($location_data['longitude'])]['lng'] = floatval($location_data['longitude']);
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($location_data['latitude']) && $location_data['latitude'] != ''){
|
||||
$this->data[$index][$location_data['country_name']]['showMap'] = 1;
|
||||
$this->data[$index]['all']['showMap'] = 1;
|
||||
}
|
||||
|
||||
// Frekvenca vseh
|
||||
if(isset($this->data['freq']))
|
||||
$this->data['freq']++;
|
||||
else
|
||||
$this->data['freq'] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
function displayNavigationMaps() {
|
||||
global $lang;
|
||||
|
||||
$countries = mb_convert_encoding($this->countriesLocationsData, "UTF-8", "ISO-8859-1");
|
||||
$cities = mb_convert_encoding($this->data['all']['all']['cities'], "UTF-8", "ISO-8859-1");
|
||||
|
||||
echo '<div class="secondNavigation">';
|
||||
echo '<ul class="secondNavigation">';
|
||||
|
||||
echo'<li>';
|
||||
echo '<a class="no-img active" id="geoip_cities" onclick=\'geoip_map_navigation_toggle(this, '.json_encode($cities).');\'>';
|
||||
echo '<span class="label">' . $lang['srv_geoip_map_cities'] . '</span>';
|
||||
echo '</a>';
|
||||
echo'</li>';
|
||||
|
||||
#space
|
||||
echo'<li class="space">';
|
||||
echo'</li>';
|
||||
|
||||
echo'<li>';
|
||||
echo '<a class="no-img" id="geoip_countries" onclick=\'geoip_map_navigation_toggle(this, '.json_encode($countries).');\'>';
|
||||
echo '<span class="label">' . $lang['srv_geoip_map_countries'] . '</span>';
|
||||
echo '</a>';
|
||||
echo'</li>';
|
||||
|
||||
echo'</ul>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<br class="clr" />';
|
||||
echo '<br class="clr" />';
|
||||
}
|
||||
}
|
2
admin/survey/modules/mod_geoIP/db/.gitignore
vendored
Normal file
2
admin/survey/modules/mod_geoIP/db/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
@ -18,7 +18,8 @@
|
||||
"sonata-project/google-authenticator": "^2.2",
|
||||
"phpmailer/phpmailer": "~6.0",
|
||||
"minishlink/web-push": "^5.2",
|
||||
"stripe/stripe-php": "^7.40"
|
||||
"stripe/stripe-php": "^7.40",
|
||||
"geoip2/geoip2": "~2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"kint-php/kint": "^1.1",
|
||||
|
447
composer.lock
generated
447
composer.lock
generated
@ -1,11 +1,68 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "5beee59315d18e9164ddfcc230b4550f",
|
||||
"hash": "f48f2e76d23925213a1c248388654ed4",
|
||||
"content-hash": "4faadcc7d5b72636e2d9ac9a18b062a2",
|
||||
"packages": [
|
||||
{
|
||||
"name": "composer/ca-bundle",
|
||||
"version": "1.2.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/ca-bundle.git",
|
||||
"reference": "8a7ecad675253e4654ea05505233285377405215"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/8a7ecad675253e4654ea05505233285377405215",
|
||||
"reference": "8a7ecad675253e4654ea05505233285377405215",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-openssl": "*",
|
||||
"ext-pcre": "*",
|
||||
"php": "^5.3.2 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8",
|
||||
"psr/log": "^1.0",
|
||||
"symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Composer\\CaBundle\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be",
|
||||
"homepage": "http://seld.be"
|
||||
}
|
||||
],
|
||||
"description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
|
||||
"keywords": [
|
||||
"cabundle",
|
||||
"cacert",
|
||||
"certificate",
|
||||
"ssl",
|
||||
"tls"
|
||||
],
|
||||
"time": "2020-08-23 12:54:47"
|
||||
},
|
||||
{
|
||||
"name": "fgrosse/phpasn1",
|
||||
"version": "v2.1.1",
|
||||
@ -73,7 +130,60 @@
|
||||
"x509",
|
||||
"x690"
|
||||
],
|
||||
"time": "2018-12-02T01:34:34+00:00"
|
||||
"time": "2018-12-02 01:34:34"
|
||||
},
|
||||
{
|
||||
"name": "geoip2/geoip2",
|
||||
"version": "v2.10.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/maxmind/GeoIP2-php.git",
|
||||
"reference": "419557cd21d9fe039721a83490701a58c8ce784a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/419557cd21d9fe039721a83490701a58c8ce784a",
|
||||
"reference": "419557cd21d9fe039721a83490701a58c8ce784a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"maxmind-db/reader": "~1.5",
|
||||
"maxmind/web-service-common": "~0.6",
|
||||
"php": ">=5.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "2.*",
|
||||
"phpunit/phpunit": "5.*",
|
||||
"squizlabs/php_codesniffer": "3.*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GeoIp2\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Gregory J. Oschwald",
|
||||
"email": "goschwald@maxmind.com",
|
||||
"homepage": "https://www.maxmind.com/"
|
||||
}
|
||||
],
|
||||
"description": "MaxMind GeoIP2 PHP API",
|
||||
"homepage": "https://github.com/maxmind/GeoIP2-php",
|
||||
"keywords": [
|
||||
"IP",
|
||||
"geoip",
|
||||
"geoip2",
|
||||
"geolocation",
|
||||
"maxmind"
|
||||
],
|
||||
"time": "2019-12-12 18:48:39"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
@ -140,7 +250,7 @@
|
||||
"rest",
|
||||
"web service"
|
||||
],
|
||||
"time": "2020-06-16T21:01:06+00:00"
|
||||
"time": "2020-06-16 21:01:06"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
@ -191,7 +301,7 @@
|
||||
"keywords": [
|
||||
"promise"
|
||||
],
|
||||
"time": "2016-12-20T10:07:11+00:00"
|
||||
"time": "2016-12-20 10:07:11"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
@ -262,7 +372,113 @@
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2019-07-01T23:21:34+00:00"
|
||||
"time": "2019-07-01 23:21:34"
|
||||
},
|
||||
{
|
||||
"name": "maxmind-db/reader",
|
||||
"version": "v1.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/maxmind/MaxMind-DB-Reader-php.git",
|
||||
"reference": "942553da239f12051275f9c666538b5dd09e2908"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/942553da239f12051275f9c666538b5dd09e2908",
|
||||
"reference": "942553da239f12051275f9c666538b5dd09e2908",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"conflict": {
|
||||
"ext-maxminddb": "<1.7.0,>=2.0.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "2.*",
|
||||
"php-coveralls/php-coveralls": "^2.1",
|
||||
"phpunit/phpcov": ">=6.0.0",
|
||||
"phpunit/phpunit": ">=8.0.0,<10.0.0",
|
||||
"squizlabs/php_codesniffer": "3.*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-bcmath": "bcmath or gmp is required for decoding larger integers with the pure PHP decoder",
|
||||
"ext-gmp": "bcmath or gmp is required for decoding larger integers with the pure PHP decoder",
|
||||
"ext-maxminddb": "A C-based database decoder that provides significantly faster lookups"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"MaxMind\\Db\\": "src/MaxMind/Db"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Gregory J. Oschwald",
|
||||
"email": "goschwald@maxmind.com",
|
||||
"homepage": "https://www.maxmind.com/"
|
||||
}
|
||||
],
|
||||
"description": "MaxMind DB Reader API",
|
||||
"homepage": "https://github.com/maxmind/MaxMind-DB-Reader-php",
|
||||
"keywords": [
|
||||
"database",
|
||||
"geoip",
|
||||
"geoip2",
|
||||
"geolocation",
|
||||
"maxmind"
|
||||
],
|
||||
"time": "2020-08-07 22:10:05"
|
||||
},
|
||||
{
|
||||
"name": "maxmind/web-service-common",
|
||||
"version": "v0.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/maxmind/web-service-common-php.git",
|
||||
"reference": "74c996c218ada5c639c8c2f076756e059f5552fc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/maxmind/web-service-common-php/zipball/74c996c218ada5c639c8c2f076756e059f5552fc",
|
||||
"reference": "74c996c218ada5c639c8c2f076756e059f5552fc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer/ca-bundle": "^1.0.3",
|
||||
"ext-curl": "*",
|
||||
"ext-json": "*",
|
||||
"php": ">=5.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "2.*",
|
||||
"phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0",
|
||||
"squizlabs/php_codesniffer": "3.*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"MaxMind\\Exception\\": "src/Exception",
|
||||
"MaxMind\\WebService\\": "src/WebService"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Gregory Oschwald",
|
||||
"email": "goschwald@maxmind.com"
|
||||
}
|
||||
],
|
||||
"description": "Internal MaxMind Web Service API",
|
||||
"homepage": "https://github.com/maxmind/web-service-common-php",
|
||||
"time": "2020-05-06 14:07:26"
|
||||
},
|
||||
{
|
||||
"name": "minishlink/web-push",
|
||||
@ -318,7 +534,7 @@
|
||||
"push",
|
||||
"web"
|
||||
],
|
||||
"time": "2020-08-02T08:58:01+00:00"
|
||||
"time": "2020-08-02 08:58:01"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/random_compat",
|
||||
@ -363,7 +579,7 @@
|
||||
"pseudorandom",
|
||||
"random"
|
||||
],
|
||||
"time": "2018-07-02T15:55:56+00:00"
|
||||
"time": "2018-07-02 15:55:56"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/sodium_compat",
|
||||
@ -445,7 +661,7 @@
|
||||
"secret-key cryptography",
|
||||
"side-channel resistant"
|
||||
],
|
||||
"time": "2020-03-20T21:48:09+00:00"
|
||||
"time": "2020-03-20 21:48:09"
|
||||
},
|
||||
{
|
||||
"name": "phpmailer/phpmailer",
|
||||
@ -507,13 +723,7 @@
|
||||
}
|
||||
],
|
||||
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/synchro",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2020-07-14T18:50:27+00:00"
|
||||
"time": "2020-07-14 18:50:27"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
@ -563,7 +773,7 @@
|
||||
"request",
|
||||
"response"
|
||||
],
|
||||
"time": "2016-08-06T14:39:51+00:00"
|
||||
"time": "2016-08-06 14:39:51"
|
||||
},
|
||||
{
|
||||
"name": "ralouphie/getallheaders",
|
||||
@ -603,7 +813,7 @@
|
||||
}
|
||||
],
|
||||
"description": "A polyfill for getallheaders.",
|
||||
"time": "2019-03-08T08:55:37+00:00"
|
||||
"time": "2019-03-08 08:55:37"
|
||||
},
|
||||
{
|
||||
"name": "sonata-project/google-authenticator",
|
||||
@ -660,7 +870,7 @@
|
||||
"keywords": [
|
||||
"google authenticator"
|
||||
],
|
||||
"time": "2018-07-18T22:08:02+00:00"
|
||||
"time": "2018-07-18 22:08:02"
|
||||
},
|
||||
{
|
||||
"name": "spomky-labs/base64url",
|
||||
@ -712,7 +922,7 @@
|
||||
"safe",
|
||||
"url"
|
||||
],
|
||||
"time": "2020-08-01T14:15:43+00:00"
|
||||
"time": "2020-08-01 14:15:43"
|
||||
},
|
||||
{
|
||||
"name": "stripe/stripe-php",
|
||||
@ -769,7 +979,7 @@
|
||||
"payment processing",
|
||||
"stripe"
|
||||
],
|
||||
"time": "2020-08-19T22:48:20+00:00"
|
||||
"time": "2020-08-19 22:48:20"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
@ -840,21 +1050,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-04T06:02:08+00:00"
|
||||
"time": "2020-08-04 06:02:08"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
@ -921,21 +1117,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
"time": "2020-07-14 12:35:20"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php70",
|
||||
@ -998,21 +1180,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
"time": "2020-07-14 12:35:20"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
@ -1071,21 +1239,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
"time": "2020-07-14 12:35:20"
|
||||
},
|
||||
{
|
||||
"name": "web-token/jwt-core",
|
||||
@ -1160,13 +1314,7 @@
|
||||
"jwt",
|
||||
"symfony"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.patreon.com/FlorentMorselli",
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2020-03-20T13:29:04+00:00"
|
||||
"time": "2020-03-20 13:29:04"
|
||||
},
|
||||
{
|
||||
"name": "web-token/jwt-key-mgmt",
|
||||
@ -1243,13 +1391,7 @@
|
||||
"jwt",
|
||||
"symfony"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.patreon.com/FlorentMorselli",
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2020-03-20T13:29:04+00:00"
|
||||
"time": "2020-03-20 13:29:04"
|
||||
},
|
||||
{
|
||||
"name": "web-token/jwt-signature",
|
||||
@ -1329,13 +1471,7 @@
|
||||
"jwt",
|
||||
"symfony"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.patreon.com/FlorentMorselli",
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2020-03-20T13:29:04+00:00"
|
||||
"time": "2020-03-20 13:29:04"
|
||||
},
|
||||
{
|
||||
"name": "web-token/jwt-signature-algorithm-ecdsa",
|
||||
@ -1402,13 +1538,7 @@
|
||||
"jwt",
|
||||
"symfony"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.patreon.com/FlorentMorselli",
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2020-03-20T13:29:04+00:00"
|
||||
"time": "2020-03-20 13:29:04"
|
||||
},
|
||||
{
|
||||
"name": "web-token/jwt-signature-algorithm-eddsa",
|
||||
@ -1475,13 +1605,7 @@
|
||||
"jwt",
|
||||
"symfony"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.patreon.com/FlorentMorselli",
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2020-03-20T13:29:04+00:00"
|
||||
"time": "2020-03-20 13:29:04"
|
||||
},
|
||||
{
|
||||
"name": "web-token/jwt-signature-algorithm-hmac",
|
||||
@ -1548,13 +1672,7 @@
|
||||
"jwt",
|
||||
"symfony"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.patreon.com/FlorentMorselli",
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2020-03-20T13:29:04+00:00"
|
||||
"time": "2020-03-20 13:29:04"
|
||||
},
|
||||
{
|
||||
"name": "web-token/jwt-signature-algorithm-none",
|
||||
@ -1621,13 +1739,7 @@
|
||||
"jwt",
|
||||
"symfony"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.patreon.com/FlorentMorselli",
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2020-03-20T13:29:04+00:00"
|
||||
"time": "2020-03-20 13:29:04"
|
||||
},
|
||||
{
|
||||
"name": "web-token/jwt-signature-algorithm-rsa",
|
||||
@ -1694,13 +1806,7 @@
|
||||
"jwt",
|
||||
"symfony"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.patreon.com/FlorentMorselli",
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2020-03-20T13:29:04+00:00"
|
||||
"time": "2020-03-20 13:29:04"
|
||||
},
|
||||
{
|
||||
"name": "web-token/jwt-util-ecc",
|
||||
@ -1769,13 +1875,7 @@
|
||||
"jwt",
|
||||
"symfony"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.patreon.com/FlorentMorselli",
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2020-03-20T13:29:04+00:00"
|
||||
"time": "2020-03-20 13:29:04"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
@ -1838,7 +1938,7 @@
|
||||
"throwable",
|
||||
"whoops"
|
||||
],
|
||||
"time": "2020-06-14T09:00:00+00:00"
|
||||
"time": "2020-06-14 09:00:00"
|
||||
},
|
||||
{
|
||||
"name": "kint-php/kint",
|
||||
@ -1889,7 +1989,7 @@
|
||||
"kint",
|
||||
"php"
|
||||
],
|
||||
"time": "2017-01-15T14:23:43+00:00"
|
||||
"time": "2017-01-15 14:23:43"
|
||||
},
|
||||
{
|
||||
"name": "maximebf/debugbar",
|
||||
@ -1950,7 +2050,7 @@
|
||||
"debug",
|
||||
"debugbar"
|
||||
],
|
||||
"time": "2020-05-06T07:06:27+00:00"
|
||||
"time": "2020-05-06 07:06:27"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
@ -1997,7 +2097,7 @@
|
||||
"psr",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2020-03-23T09:12:05+00:00"
|
||||
"time": "2020-03-23 09:12:05"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
@ -2060,21 +2160,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
"time": "2020-07-14 12:35:20"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php80",
|
||||
@ -2140,21 +2226,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
"time": "2020-07-14 12:35:20"
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
@ -2231,21 +2303,7 @@
|
||||
"debug",
|
||||
"dump"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-06-24T13:34:53+00:00"
|
||||
"time": "2020-06-24 13:34:53"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
@ -2256,6 +2314,5 @@
|
||||
"platform": {
|
||||
"php": "^5.5|^7.0"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "1.1.0"
|
||||
"platform-dev": []
|
||||
}
|
||||
|
@ -6318,7 +6318,7 @@ $lang = array (
|
||||
'srv_geoip_unknown' => 'Neznano',
|
||||
'srv_geoip_map_cities' => 'Vsa mesta',
|
||||
'srv_geoip_map_countries' => 'Vse države',
|
||||
'srv_geoip_warning' => 'Prosimo, upoštevajte, da so navedene IP lokacije lahko v določenih primerih nenatančne in zgolj ocene. Ocenjene so na podlagi knjižnice IP lokacij (verzija 2019), zato lahko pride do odstopanj od realnih podatkov.',
|
||||
'srv_geoip_warning' => 'Prosimo, upoštevajte, da so navedene IP lokacije lahko v določenih primerih nenatančne in zgolj ocene. Ocenjene so na podlagi knjižnice IP lokacij, zato lahko pride do odstopanj od realnih podatkov.',
|
||||
'srv_edits_analysis' => 'Analize urejanja',
|
||||
'srv_edits_analysis_seansa' => 'Kriterij seanse: ',
|
||||
'srv_edits_analysis_seansa_1h' => '1 ura',
|
||||
|
@ -6201,7 +6201,7 @@ $lang = array (
|
||||
'srv_geoip_unknown' => 'Unknown',
|
||||
'srv_geoip_map_cities' => 'All cities',
|
||||
'srv_geoip_map_countries' => 'All countries',
|
||||
'srv_geoip_warning' => 'Please note that the listed IP locations may in certain cases be inaccurate and are only estimates. They are estimated based on the library of IP locations (version 2019), so there may be deviations from the real data.',
|
||||
'srv_geoip_warning' => 'Please note that the listed IP locations may in certain cases be inaccurate and are only estimates. They are estimated based on the library of IP locations, so there may be deviations from the real data.',
|
||||
'srv_edits_analysis' => 'Edits analysis',
|
||||
'srv_edits_analysis_seansa' => 'Session criteria: ',
|
||||
'srv_edits_analysis_seansa_1h' => '1 hour',
|
||||
|
Loading…
x
Reference in New Issue
Block a user