Changeset 1343467
- Timestamp:
- 02/04/2016 07:21:02 PM (10 years ago)
- Location:
- wp-mystat
- Files:
-
- 50 added
- 5 edited
-
tags/3.3/lib/geolocation.class.php (modified) (36 diffs)
-
trunk/asset/jquery.daterangepicker.js (added)
-
trunk/asset/jquery.maskedinput.js (added)
-
trunk/driver/expressionengine.class.php (added)
-
trunk/driver/joomla.class.php (added)
-
trunk/driver/wordpress.class.php (modified) (4 diffs)
-
trunk/ext.mystat.php (added)
-
trunk/extension.xml (added)
-
trunk/index.php (modified) (1 diff)
-
trunk/language/de-DE.com_mystat.ini (added)
-
trunk/language/de-DE.com_mystat.sys.ini (added)
-
trunk/language/en-GB.com_mystat.ini (added)
-
trunk/language/en-GB.com_mystat.sys.ini (added)
-
trunk/language/es-ES.com_mystat.ini (added)
-
trunk/language/es-ES.com_mystat.sys.ini (added)
-
trunk/language/pl-PL.com_mystat.ini (added)
-
trunk/language/pl-PL.com_mystat.sys.ini (added)
-
trunk/language/ru-RU.com_mystat.ini (added)
-
trunk/language/ru-RU.com_mystat.sys.ini (added)
-
trunk/language/uk-UA.com_mystat.ini (added)
-
trunk/language/uk-UA.com_mystat.sys.ini (added)
-
trunk/lib/geolocation.class.php (modified) (36 diffs)
-
trunk/mystat.php (modified) (1 diff)
-
trunk/theme/joomla (added)
-
trunk/theme/joomla/joomla.acceptLanguage.xsl (added)
-
trunk/theme/joomla/joomla.browsers.xsl (added)
-
trunk/theme/joomla/joomla.dashboard.xsl (added)
-
trunk/theme/joomla/joomla.dbSize.xsl (added)
-
trunk/theme/joomla/joomla.defaultpage.xsl (added)
-
trunk/theme/joomla/joomla.domainNames.xsl (added)
-
trunk/theme/joomla/joomla.geoCity.xsl (added)
-
trunk/theme/joomla/joomla.geoCountry.xsl (added)
-
trunk/theme/joomla/joomla.ipAdressesRobot.xsl (added)
-
trunk/theme/joomla/joomla.ipAdressesUser.xsl (added)
-
trunk/theme/joomla/joomla.link404.xsl (added)
-
trunk/theme/joomla/joomla.mailService.xsl (added)
-
trunk/theme/joomla/joomla.operatingSystem.xsl (added)
-
trunk/theme/joomla/joomla.pageViewPerRobot.xsl (added)
-
trunk/theme/joomla/joomla.pageViewPerUser.xsl (added)
-
trunk/theme/joomla/joomla.popular404.xsl (added)
-
trunk/theme/joomla/joomla.popularPages.xsl (added)
-
trunk/theme/joomla/joomla.popularTitles.xsl (added)
-
trunk/theme/joomla/joomla.refDomain.xsl (added)
-
trunk/theme/joomla/joomla.referrer.xsl (added)
-
trunk/theme/joomla/joomla.robots.xsl (added)
-
trunk/theme/joomla/joomla.screenDepth.xsl (added)
-
trunk/theme/joomla/joomla.screenResolution.xsl (added)
-
trunk/theme/joomla/joomla.searchEngine.xsl (added)
-
trunk/theme/joomla/joomla.searchQuery.xsl (added)
-
trunk/theme/joomla/joomla.siteUsage.xsl (added)
-
trunk/theme/joomla/joomla.socialNetwork.xsl (added)
-
trunk/theme/joomla/joomla.timeLoad.xsl (added)
-
trunk/theme/joomla/joomla.userAgentRobot.xsl (added)
-
trunk/theme/joomla/joomla.userAgentUser.xsl (added)
-
trunk/theme/joomla/joomla.xsl (added)
Legend:
- Unmodified
- Added
- Removed
-
wp-mystat/tags/3.3/lib/geolocation.class.php
r1334409 r1343467 373 373 * @var array 374 374 */ 375 private static $columns = [376 self::COUNTRY_CODE => [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8],377 self::COUNTRY_NAME => [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8],378 self::REGION_NAME => [0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],379 self::CITY_NAME => [0, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16],380 self::LATITUDE => [0, 0, 0, 0, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20],381 self::LONGITUDE => [0, 0, 0, 0, 24, 24, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24],382 self::ISP => [0, 12, 0, 20, 0, 28, 20, 28, 0, 32, 0, 36, 0, 36, 0, 36, 0, 36, 28, 36, 0, 36, 28, 36],383 self::DOMAIN_NAME => [0, 0, 0, 0, 0, 0, 24, 32, 0, 36, 0, 40, 0, 40, 0, 40, 0, 40, 32, 40, 0, 40, 32, 40],384 self::ZIP_CODE => [0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 28, 28, 0, 28, 28, 28, 0, 28, 0, 28, 28, 28, 0, 28],385 self::TIME_ZONE => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 28, 32, 32, 32, 28, 32, 0, 32, 32, 32, 0, 32],386 self::NET_SPEED => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 44, 0, 44, 32, 44, 0, 44, 0, 44, 0, 44],387 self::IDD_CODE => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 48, 0, 48, 0, 48, 36, 48, 0, 48],388 self::AREA_CODE => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 52, 0, 52, 0, 52, 40, 52, 0, 52],389 self::WEATHER_STATION_CODE => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 56, 0, 56, 0, 56, 0, 56],390 self::WEATHER_STATION_NAME => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 60, 0, 60, 0, 60, 0, 60],391 self::MCC => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 64, 0, 64, 36, 64],392 self::MNC => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 68, 0, 68, 40, 68],393 self::MOBILE_CARRIER_NAME => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 72, 0, 72, 44, 72],394 self::ELEVATION => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 76, 0, 76],395 self::USAGE_TYPE => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 80],396 ];375 private static $columns = Array( 376 self::COUNTRY_CODE => Array(8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8), 377 self::COUNTRY_NAME => Array(8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8), 378 self::REGION_NAME => Array(0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12), 379 self::CITY_NAME => Array(0, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16), 380 self::LATITUDE => Array(0, 0, 0, 0, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), 381 self::LONGITUDE => Array(0, 0, 0, 0, 24, 24, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24), 382 self::ISP => Array(0, 12, 0, 20, 0, 28, 20, 28, 0, 32, 0, 36, 0, 36, 0, 36, 0, 36, 28, 36, 0, 36, 28, 36), 383 self::DOMAIN_NAME => Array(0, 0, 0, 0, 0, 0, 24, 32, 0, 36, 0, 40, 0, 40, 0, 40, 0, 40, 32, 40, 0, 40, 32, 40), 384 self::ZIP_CODE => Array(0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 28, 28, 0, 28, 28, 28, 0, 28, 0, 28, 28, 28, 0, 28), 385 self::TIME_ZONE => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 28, 32, 32, 32, 28, 32, 0, 32, 32, 32, 0, 32), 386 self::NET_SPEED => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 44, 0, 44, 32, 44, 0, 44, 0, 44, 0, 44), 387 self::IDD_CODE => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 48, 0, 48, 0, 48, 36, 48, 0, 48), 388 self::AREA_CODE => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 52, 0, 52, 0, 52, 40, 52, 0, 52), 389 self::WEATHER_STATION_CODE => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 56, 0, 56, 0, 56, 0, 56), 390 self::WEATHER_STATION_NAME => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 60, 0, 60, 0, 60, 0, 60), 391 self::MCC => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 64, 0, 64, 36, 64), 392 self::MNC => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 68, 0, 68, 40, 68), 393 self::MOBILE_CARRIER_NAME => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 72, 0, 72, 44, 72), 394 self::ELEVATION => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 76, 0, 76), 395 self::USAGE_TYPE => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 80), 396 ); 397 397 398 398 /** … … 403 403 * @var array 404 404 */ 405 private static $names = [405 private static $names = Array( 406 406 self::COUNTRY_CODE => 'countryCode', 407 407 self::COUNTRY_NAME => 'countryName', … … 427 427 self::IP_VERSION => 'ipVersion', 428 428 self::IP_NUMBER => 'ipNumber', 429 ];429 ); 430 430 431 431 /** … … 434 434 * @var array 435 435 */ 436 private static $databases = [436 private static $databases = Array( 437 437 // IPv4 databases 438 438 'IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE', … … 485 485 'IPV6-COUNTRY-ISP', 486 486 'IPV6-COUNTRY', 487 ];487 ); 488 488 489 489 /** … … 494 494 * @var array 495 495 */ 496 private static $buffer = [];496 private static $buffer = Array(); 497 497 498 498 /** … … 560 560 * @var array 561 561 */ 562 private $columnWidth = [];562 private $columnWidth = Array(); 563 563 564 564 /** … … 568 568 * @var array 569 569 */ 570 private $offset = [];570 private $offset = Array(); 571 571 572 572 /** … … 576 576 * @var array 577 577 */ 578 private $ipCount = [];578 private $ipCount = Array(); 579 579 580 580 /** … … 584 584 * @var array 585 585 */ 586 private $ipBase = [];586 private $ipBase = Array(); 587 587 588 588 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// … … 951 951 private static function ipVersionAndNumber($ip) { 952 952 if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { 953 return [4, sprintf('%u', ip2long($ip))];953 return Array(4, sprintf('%u', ip2long($ip))); 954 954 } elseif (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { 955 955 $result = 0; … … 959 959 } 960 960 961 return [6, $result];961 return Array(6, $result); 962 962 } else { 963 963 // Invalid IP address, return falses 964 return [false, false];964 return Array(false, false); 965 965 } 966 966 } … … 1046 1046 private function readFloat($pos) { 1047 1047 // Unpack a float's size worth of data 1048 return unpack('f', $this->read($pos - 1, self::$floatSize))[1]; 1048 $var = unpack('f', $this->read($pos - 1, self::$floatSize)); 1049 return $var[1]; 1049 1050 } 1050 1051 … … 1070 1071 private function readWord($pos) { 1071 1072 // Unpack a long's worth of data 1072 return self::wrap32(unpack('V', $this->read($pos - 1, 4))[1]); 1073 $var = unpack('V', $this->read($pos - 1, 4)); 1074 return self::wrap32($var[1]); 1073 1075 } 1074 1076 … … 1082 1084 private function readByte($pos) { 1083 1085 // Unpack a byte's worth of data 1084 return self::wrap8(unpack('C', $this->read($pos - 1, 1))[1]); 1086 $var = unpack('C', $this->read($pos - 1, 1)); 1087 return self::wrap8($var[1]); 1085 1088 } 1086 1089 … … 1113 1116 } 1114 1117 1115 return [$countryName, $countryCode];1118 return Array($countryName, $countryCode); 1116 1119 } 1117 1120 … … 1179 1182 $longitude = $this->readFloat($pointer + self::$columns[self::LONGITUDE][$this->type]); 1180 1183 } 1181 return [$latitude, $longitude];1184 return Array($latitude, $longitude); 1182 1185 } 1183 1186 … … 1308 1311 $areaCode = $this->readString($pointer + self::$columns[self::AREA_CODE][$this->type]); 1309 1312 } 1310 return [$iddCode, $areaCode];1313 return Array($iddCode, $areaCode); 1311 1314 } 1312 1315 … … 1332 1335 $weatherStationCode = $this->readString($pointer + self::$columns[self::WEATHER_STATION_CODE][$this->type]); 1333 1336 } 1334 return [$weatherStationName, $weatherStationCode];1337 return Array($weatherStationName, $weatherStationCode); 1335 1338 } 1336 1339 … … 1359 1362 $mobileCarrierName = $this->readString($pointer + self::$columns[self::MOBILE_CARRIER_NAME][$this->type]); 1360 1363 } 1361 return [$mcc, $mnc, $mobileCarrierName];1364 return Array($mcc, $mnc, $mobileCarrierName); 1362 1365 } 1363 1366 … … 1510 1513 })); 1511 1514 if ($asNames) { 1512 $return = [];1515 $return = Array(); 1513 1516 foreach ($result as $field) { 1514 1517 $return[] = self::$names[$field]; … … 1578 1581 1579 1582 // maintain a list of already retrieved fields to avoid doing it twice 1580 $done = [1583 $done = Array( 1581 1584 self::COUNTRY_CODE => false, 1582 1585 self::COUNTRY_NAME => false, … … 1609 1612 self::IP_VERSION => false, 1610 1613 self::IP_NUMBER => false, 1611 ];1614 ); 1612 1615 // results are empty to begin with 1613 $results = [];1616 $results = Array(); 1614 1617 1615 1618 // treat each field in turn … … 1663 1666 case self::COUNTRY_CODE: 1664 1667 if (!$done[self::COUNTRY_CODE]) { 1665 $results[self::COUNTRY_CODE] = $this->readCountryNameAndCode($pointer)[1]; 1668 $var = $this->readCountryNameAndCode($pointer); 1669 $results[self::COUNTRY_CODE] = $var[1]; 1666 1670 $done[self::COUNTRY_CODE] = true; 1667 1671 } … … 1669 1673 case self::COUNTRY_NAME: 1670 1674 if (!$done[self::COUNTRY_CODE]) { 1671 $results[self::COUNTRY_CODE] = $this->readCountryNameAndCode($pointer)[0]; 1675 $var = $this->readCountryNameAndCode($pointer); 1676 $results[self::COUNTRY_CODE] = $var[0]; 1672 1677 $done[self::COUNTRY_CODE] = true; 1673 1678 } … … 1687 1692 case self::LATITUDE: 1688 1693 if (!$done[self::LATITUDE]) { 1689 $results[self::LATITUDE] = $this->readLatitudeAndLongitude($pointer)[0]; 1694 $var = $this->readLatitudeAndLongitude($pointer); 1695 $results[self::LATITUDE] = $var[0]; 1690 1696 $done[self::LATITUDE] = true; 1691 1697 } … … 1693 1699 case self::LONGITUDE: 1694 1700 if (!$done[self::LONGITUDE]) { 1695 $results[self::LONGITUDE] = $this->readLatitudeAndLongitude($pointer)[1]; 1701 $var = $this->readLatitudeAndLongitude($pointer); 1702 $results[self::LONGITUDE] = $var[1]; 1696 1703 $done[self::LONGITUDE] = true; 1697 1704 } … … 1729 1736 case self::IDD_CODE: 1730 1737 if (!$done[self::IDD_CODE]) { 1731 $results[self::IDD_CODE] = $this->readIddAndAreaCodes($pointer)[0]; 1738 $var = $this->readIddAndAreaCodes($pointer); 1739 $results[self::IDD_CODE] = $var[0]; 1732 1740 $done[self::IDD_CODE] = true; 1733 1741 } … … 1735 1743 case self::AREA_CODE: 1736 1744 if (!$done[self::AREA_CODE]) { 1737 $results[self::AREA_CODE] = $this->readIddAndAreaCodes($pointer)[1]; 1745 $var = $this->readIddAndAreaCodes($pointer); 1746 $results[self::AREA_CODE] = $var[1]; 1738 1747 $done[self::AREA_CODE] = true; 1739 1748 } … … 1741 1750 case self::WEATHER_STATION_CODE: 1742 1751 if (!$done[self::WEATHER_STATION_CODE]) { 1743 $results[self::WEATHER_STATION_CODE] = $this->readWeatherStationNameAndCode($pointer)[1]; 1752 $var = $this->readWeatherStationNameAndCode($pointer); 1753 $results[self::WEATHER_STATION_CODE] = $var[1]; 1744 1754 $done[self::WEATHER_STATION_CODE] = true; 1745 1755 } … … 1747 1757 case self::WEATHER_STATION_NAME: 1748 1758 if (!$done[self::WEATHER_STATION_NAME]) { 1749 $results[self::WEATHER_STATION_NAME] = $this->readWeatherStationNameAndCode($pointer)[0]; 1759 $var = $this->readWeatherStationNameAndCode($pointer); 1760 $results[self::WEATHER_STATION_NAME] = $var[0]; 1750 1761 $done[self::WEATHER_STATION_NAME] = true; 1751 1762 } … … 1753 1764 case self::MCC: 1754 1765 if (!$done[self::MCC]) { 1755 $results[self::MCC] = $this->readMccMncAndMobileCarrierName($pointer)[0]; 1766 $var = $this->readMccMncAndMobileCarrierName($pointer); 1767 $results[self::MCC] = $var[0]; 1756 1768 $done[self::MCC] = true; 1757 1769 } … … 1759 1771 case self::MNC: 1760 1772 if (!$done[self::MNC]) { 1761 $results[self::MNC] = $this->readMccMncAndMobileCarrierName($pointer)[1]; 1773 $var = $this->readMccMncAndMobileCarrierName($pointer); 1774 $results[self::MNC] = $var[1]; 1762 1775 $done[self::MNC] = true; 1763 1776 } … … 1765 1778 case self::MOBILE_CARRIER_NAME: 1766 1779 if (!$done[self::MOBILE_CARRIER_NAME]) { 1767 $results[self::MOBILE_CARRIER_NAME] = $this->readMccMncAndMobileCarrierName($pointer)[2]; 1780 $var = $this->readMccMncAndMobileCarrierName($pointer); 1781 $results[self::MOBILE_CARRIER_NAME] = $var[2]; 1768 1782 $done[self::MOBILE_CARRIER_NAME] = true; 1769 1783 } … … 1811 1825 if ($asNamed) { 1812 1826 // apply translations if needed 1813 $return = [];1827 $return = Array(); 1814 1828 foreach ($results as $key => $val) { 1815 1829 if (array_key_exists($key, static::$names)) { … … 1825 1839 } else { 1826 1840 // return a single value 1827 return array_values($results)[0]; 1841 $var = array_values($results); 1842 return $var[0]; 1828 1843 } 1829 1844 } -
wp-mystat/trunk/driver/wordpress.class.php
r1334409 r1343467 70 70 add_filter('manage_sites_action_links', Array($this,'addMenuInSiteListFull'),10,2); 71 71 add_action('admin_bar_menu',Array($this,'addMenuInBar'),20); 72 $dir = plugins_url('',dirname(__FILE__)); 73 $dir = preg_split('/\//',trim($dir)); 74 $dir = array_pop($dir); 75 add_action('in_plugin_update_message-'.$dir.'/mystat.php',Array($this,'updateInPluginList')); 72 76 } 73 77 … … 470 474 } 471 475 472 public function installPlugin($networkwide ){476 public function installPlugin($networkwide=false){ 473 477 global $wpdb; 474 478 if(function_exists('is_multisite') && is_multisite()){ … … 562 566 $this->context->updateDefinition(false); 563 567 if($redirect){ 564 wp_safe_redirect($this->getRedirectUri()); 568 if(!($error = $this->context->isIntallCorrect(false) and sizeof($error)>0)){ 569 wp_safe_redirect($this->getRedirectUri()); 570 } 565 571 } 566 572 } … … 630 636 public function addMenu(){ 631 637 add_menu_page($this->__('My Statistics'),$this->__('My Statistics'),$this->getOption('mystataccess','update_plugins'),'statistics.html',Array($this,'setOpenPage'),'dashicons-chart-bar','2.000123'); 638 } 639 640 public function updateInPluginList(){ 641 echo '<div id="mystat_up_div"></div><script>jQuery("#mystat_up_div").parent().children(".update-link").removeClass("update-link");</script>'; 632 642 } 633 643 -
wp-mystat/trunk/index.php
r1334409 r1343467 1 1 <?php 2 2 if(!defined('MYSTAT_VERSION')){ 3 define('MYSTAT_VERSION','3. 3');3 define('MYSTAT_VERSION','3.4b'); 4 4 } 5 5 require_once(dirname(__FILE__).'/lib/mystat.class.php'); -
wp-mystat/trunk/lib/geolocation.class.php
r1334409 r1343467 373 373 * @var array 374 374 */ 375 private static $columns = [376 self::COUNTRY_CODE => [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8],377 self::COUNTRY_NAME => [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8],378 self::REGION_NAME => [0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],379 self::CITY_NAME => [0, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16],380 self::LATITUDE => [0, 0, 0, 0, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20],381 self::LONGITUDE => [0, 0, 0, 0, 24, 24, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24],382 self::ISP => [0, 12, 0, 20, 0, 28, 20, 28, 0, 32, 0, 36, 0, 36, 0, 36, 0, 36, 28, 36, 0, 36, 28, 36],383 self::DOMAIN_NAME => [0, 0, 0, 0, 0, 0, 24, 32, 0, 36, 0, 40, 0, 40, 0, 40, 0, 40, 32, 40, 0, 40, 32, 40],384 self::ZIP_CODE => [0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 28, 28, 0, 28, 28, 28, 0, 28, 0, 28, 28, 28, 0, 28],385 self::TIME_ZONE => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 28, 32, 32, 32, 28, 32, 0, 32, 32, 32, 0, 32],386 self::NET_SPEED => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 44, 0, 44, 32, 44, 0, 44, 0, 44, 0, 44],387 self::IDD_CODE => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 48, 0, 48, 0, 48, 36, 48, 0, 48],388 self::AREA_CODE => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 52, 0, 52, 0, 52, 40, 52, 0, 52],389 self::WEATHER_STATION_CODE => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 56, 0, 56, 0, 56, 0, 56],390 self::WEATHER_STATION_NAME => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 60, 0, 60, 0, 60, 0, 60],391 self::MCC => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 64, 0, 64, 36, 64],392 self::MNC => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 68, 0, 68, 40, 68],393 self::MOBILE_CARRIER_NAME => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 72, 0, 72, 44, 72],394 self::ELEVATION => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 76, 0, 76],395 self::USAGE_TYPE => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 80],396 ];375 private static $columns = Array( 376 self::COUNTRY_CODE => Array(8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8), 377 self::COUNTRY_NAME => Array(8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8), 378 self::REGION_NAME => Array(0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12), 379 self::CITY_NAME => Array(0, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16), 380 self::LATITUDE => Array(0, 0, 0, 0, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), 381 self::LONGITUDE => Array(0, 0, 0, 0, 24, 24, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24), 382 self::ISP => Array(0, 12, 0, 20, 0, 28, 20, 28, 0, 32, 0, 36, 0, 36, 0, 36, 0, 36, 28, 36, 0, 36, 28, 36), 383 self::DOMAIN_NAME => Array(0, 0, 0, 0, 0, 0, 24, 32, 0, 36, 0, 40, 0, 40, 0, 40, 0, 40, 32, 40, 0, 40, 32, 40), 384 self::ZIP_CODE => Array(0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 28, 28, 0, 28, 28, 28, 0, 28, 0, 28, 28, 28, 0, 28), 385 self::TIME_ZONE => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 28, 32, 32, 32, 28, 32, 0, 32, 32, 32, 0, 32), 386 self::NET_SPEED => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 44, 0, 44, 32, 44, 0, 44, 0, 44, 0, 44), 387 self::IDD_CODE => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 48, 0, 48, 0, 48, 36, 48, 0, 48), 388 self::AREA_CODE => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 52, 0, 52, 0, 52, 40, 52, 0, 52), 389 self::WEATHER_STATION_CODE => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 56, 0, 56, 0, 56, 0, 56), 390 self::WEATHER_STATION_NAME => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 60, 0, 60, 0, 60, 0, 60), 391 self::MCC => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 64, 0, 64, 36, 64), 392 self::MNC => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 68, 0, 68, 40, 68), 393 self::MOBILE_CARRIER_NAME => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 72, 0, 72, 44, 72), 394 self::ELEVATION => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 76, 0, 76), 395 self::USAGE_TYPE => Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 80), 396 ); 397 397 398 398 /** … … 403 403 * @var array 404 404 */ 405 private static $names = [405 private static $names = Array( 406 406 self::COUNTRY_CODE => 'countryCode', 407 407 self::COUNTRY_NAME => 'countryName', … … 427 427 self::IP_VERSION => 'ipVersion', 428 428 self::IP_NUMBER => 'ipNumber', 429 ];429 ); 430 430 431 431 /** … … 434 434 * @var array 435 435 */ 436 private static $databases = [436 private static $databases = Array( 437 437 // IPv4 databases 438 438 'IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE', … … 485 485 'IPV6-COUNTRY-ISP', 486 486 'IPV6-COUNTRY', 487 ];487 ); 488 488 489 489 /** … … 494 494 * @var array 495 495 */ 496 private static $buffer = [];496 private static $buffer = Array(); 497 497 498 498 /** … … 560 560 * @var array 561 561 */ 562 private $columnWidth = [];562 private $columnWidth = Array(); 563 563 564 564 /** … … 568 568 * @var array 569 569 */ 570 private $offset = [];570 private $offset = Array(); 571 571 572 572 /** … … 576 576 * @var array 577 577 */ 578 private $ipCount = [];578 private $ipCount = Array(); 579 579 580 580 /** … … 584 584 * @var array 585 585 */ 586 private $ipBase = [];586 private $ipBase = Array(); 587 587 588 588 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// … … 951 951 private static function ipVersionAndNumber($ip) { 952 952 if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { 953 return [4, sprintf('%u', ip2long($ip))];953 return Array(4, sprintf('%u', ip2long($ip))); 954 954 } elseif (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { 955 955 $result = 0; … … 959 959 } 960 960 961 return [6, $result];961 return Array(6, $result); 962 962 } else { 963 963 // Invalid IP address, return falses 964 return [false, false];964 return Array(false, false); 965 965 } 966 966 } … … 1046 1046 private function readFloat($pos) { 1047 1047 // Unpack a float's size worth of data 1048 return unpack('f', $this->read($pos - 1, self::$floatSize))[1]; 1048 $var = unpack('f', $this->read($pos - 1, self::$floatSize)); 1049 return $var[1]; 1049 1050 } 1050 1051 … … 1070 1071 private function readWord($pos) { 1071 1072 // Unpack a long's worth of data 1072 return self::wrap32(unpack('V', $this->read($pos - 1, 4))[1]); 1073 $var = unpack('V', $this->read($pos - 1, 4)); 1074 return self::wrap32($var[1]); 1073 1075 } 1074 1076 … … 1082 1084 private function readByte($pos) { 1083 1085 // Unpack a byte's worth of data 1084 return self::wrap8(unpack('C', $this->read($pos - 1, 1))[1]); 1086 $var = unpack('C', $this->read($pos - 1, 1)); 1087 return self::wrap8($var[1]); 1085 1088 } 1086 1089 … … 1113 1116 } 1114 1117 1115 return [$countryName, $countryCode];1118 return Array($countryName, $countryCode); 1116 1119 } 1117 1120 … … 1179 1182 $longitude = $this->readFloat($pointer + self::$columns[self::LONGITUDE][$this->type]); 1180 1183 } 1181 return [$latitude, $longitude];1184 return Array($latitude, $longitude); 1182 1185 } 1183 1186 … … 1308 1311 $areaCode = $this->readString($pointer + self::$columns[self::AREA_CODE][$this->type]); 1309 1312 } 1310 return [$iddCode, $areaCode];1313 return Array($iddCode, $areaCode); 1311 1314 } 1312 1315 … … 1332 1335 $weatherStationCode = $this->readString($pointer + self::$columns[self::WEATHER_STATION_CODE][$this->type]); 1333 1336 } 1334 return [$weatherStationName, $weatherStationCode];1337 return Array($weatherStationName, $weatherStationCode); 1335 1338 } 1336 1339 … … 1359 1362 $mobileCarrierName = $this->readString($pointer + self::$columns[self::MOBILE_CARRIER_NAME][$this->type]); 1360 1363 } 1361 return [$mcc, $mnc, $mobileCarrierName];1364 return Array($mcc, $mnc, $mobileCarrierName); 1362 1365 } 1363 1366 … … 1510 1513 })); 1511 1514 if ($asNames) { 1512 $return = [];1515 $return = Array(); 1513 1516 foreach ($result as $field) { 1514 1517 $return[] = self::$names[$field]; … … 1578 1581 1579 1582 // maintain a list of already retrieved fields to avoid doing it twice 1580 $done = [1583 $done = Array( 1581 1584 self::COUNTRY_CODE => false, 1582 1585 self::COUNTRY_NAME => false, … … 1609 1612 self::IP_VERSION => false, 1610 1613 self::IP_NUMBER => false, 1611 ];1614 ); 1612 1615 // results are empty to begin with 1613 $results = [];1616 $results = Array(); 1614 1617 1615 1618 // treat each field in turn … … 1663 1666 case self::COUNTRY_CODE: 1664 1667 if (!$done[self::COUNTRY_CODE]) { 1665 $results[self::COUNTRY_CODE] = $this->readCountryNameAndCode($pointer)[1]; 1668 $var = $this->readCountryNameAndCode($pointer); 1669 $results[self::COUNTRY_CODE] = $var[1]; 1666 1670 $done[self::COUNTRY_CODE] = true; 1667 1671 } … … 1669 1673 case self::COUNTRY_NAME: 1670 1674 if (!$done[self::COUNTRY_CODE]) { 1671 $results[self::COUNTRY_CODE] = $this->readCountryNameAndCode($pointer)[0]; 1675 $var = $this->readCountryNameAndCode($pointer); 1676 $results[self::COUNTRY_CODE] = $var[0]; 1672 1677 $done[self::COUNTRY_CODE] = true; 1673 1678 } … … 1687 1692 case self::LATITUDE: 1688 1693 if (!$done[self::LATITUDE]) { 1689 $results[self::LATITUDE] = $this->readLatitudeAndLongitude($pointer)[0]; 1694 $var = $this->readLatitudeAndLongitude($pointer); 1695 $results[self::LATITUDE] = $var[0]; 1690 1696 $done[self::LATITUDE] = true; 1691 1697 } … … 1693 1699 case self::LONGITUDE: 1694 1700 if (!$done[self::LONGITUDE]) { 1695 $results[self::LONGITUDE] = $this->readLatitudeAndLongitude($pointer)[1]; 1701 $var = $this->readLatitudeAndLongitude($pointer); 1702 $results[self::LONGITUDE] = $var[1]; 1696 1703 $done[self::LONGITUDE] = true; 1697 1704 } … … 1729 1736 case self::IDD_CODE: 1730 1737 if (!$done[self::IDD_CODE]) { 1731 $results[self::IDD_CODE] = $this->readIddAndAreaCodes($pointer)[0]; 1738 $var = $this->readIddAndAreaCodes($pointer); 1739 $results[self::IDD_CODE] = $var[0]; 1732 1740 $done[self::IDD_CODE] = true; 1733 1741 } … … 1735 1743 case self::AREA_CODE: 1736 1744 if (!$done[self::AREA_CODE]) { 1737 $results[self::AREA_CODE] = $this->readIddAndAreaCodes($pointer)[1]; 1745 $var = $this->readIddAndAreaCodes($pointer); 1746 $results[self::AREA_CODE] = $var[1]; 1738 1747 $done[self::AREA_CODE] = true; 1739 1748 } … … 1741 1750 case self::WEATHER_STATION_CODE: 1742 1751 if (!$done[self::WEATHER_STATION_CODE]) { 1743 $results[self::WEATHER_STATION_CODE] = $this->readWeatherStationNameAndCode($pointer)[1]; 1752 $var = $this->readWeatherStationNameAndCode($pointer); 1753 $results[self::WEATHER_STATION_CODE] = $var[1]; 1744 1754 $done[self::WEATHER_STATION_CODE] = true; 1745 1755 } … … 1747 1757 case self::WEATHER_STATION_NAME: 1748 1758 if (!$done[self::WEATHER_STATION_NAME]) { 1749 $results[self::WEATHER_STATION_NAME] = $this->readWeatherStationNameAndCode($pointer)[0]; 1759 $var = $this->readWeatherStationNameAndCode($pointer); 1760 $results[self::WEATHER_STATION_NAME] = $var[0]; 1750 1761 $done[self::WEATHER_STATION_NAME] = true; 1751 1762 } … … 1753 1764 case self::MCC: 1754 1765 if (!$done[self::MCC]) { 1755 $results[self::MCC] = $this->readMccMncAndMobileCarrierName($pointer)[0]; 1766 $var = $this->readMccMncAndMobileCarrierName($pointer); 1767 $results[self::MCC] = $var[0]; 1756 1768 $done[self::MCC] = true; 1757 1769 } … … 1759 1771 case self::MNC: 1760 1772 if (!$done[self::MNC]) { 1761 $results[self::MNC] = $this->readMccMncAndMobileCarrierName($pointer)[1]; 1773 $var = $this->readMccMncAndMobileCarrierName($pointer); 1774 $results[self::MNC] = $var[1]; 1762 1775 $done[self::MNC] = true; 1763 1776 } … … 1765 1778 case self::MOBILE_CARRIER_NAME: 1766 1779 if (!$done[self::MOBILE_CARRIER_NAME]) { 1767 $results[self::MOBILE_CARRIER_NAME] = $this->readMccMncAndMobileCarrierName($pointer)[2]; 1780 $var = $this->readMccMncAndMobileCarrierName($pointer); 1781 $results[self::MOBILE_CARRIER_NAME] = $var[2]; 1768 1782 $done[self::MOBILE_CARRIER_NAME] = true; 1769 1783 } … … 1811 1825 if ($asNamed) { 1812 1826 // apply translations if needed 1813 $return = [];1827 $return = Array(); 1814 1828 foreach ($results as $key => $val) { 1815 1829 if (array_key_exists($key, static::$names)) { … … 1825 1839 } else { 1826 1840 // return a single value 1827 return array_values($results)[0]; 1841 $var = array_values($results); 1842 return $var[0]; 1828 1843 } 1829 1844 } -
wp-mystat/trunk/mystat.php
r1334409 r1343467 4 4 Plugin URI: http://my-stat.com 5 5 Description: Site Visitor Statistics 6 Version: 3. 36 Version: 3.4b 7 7 Author: Smyshlaev Evgeniy 8 8 Author URI: http://hide.com.ua
Note: See TracChangeset
for help on using the changeset viewer.