Example #1
0
 function getAllProducts($filter, $limitstart = null, $limit = null, $order = null, $orderDir = null)
 {
     $jshopConfig = JSFactory::getConfig();
     $lang = JSFactory::getLang();
     $db = JFactory::getDBO();
     if ($limit > 0) {
         $limit = " LIMIT " . $limitstart . ", " . $limit;
     } else {
         $limit = "";
     }
     if (isset($filter['category_id'])) {
         $category_id = $filter['category_id'];
     } else {
         $category_id = '';
     }
     $where = $this->_getAllProductsQueryForFilter($filter);
     $query_filed = "";
     $query_join = "";
     if ($jshopConfig->admin_show_vendors) {
         $query_filed .= ", pr.vendor_id, V.f_name as v_f_name, V.l_name as v_l_name";
         $query_join .= " left join `#__jshopping_vendors` as V on pr.vendor_id=V.id ";
     }
     if ($category_id) {
         $query = "SELECT pr.product_id, pr.product_publish, pr_cat.product_ordering, pr.`" . $lang->get('name') . "` as name, pr.`" . $lang->get('short_description') . "` as short_description, man.`" . $lang->get('name') . "` as man_name, pr.product_ean as ean, pr.product_quantity as qty, pr.image as image, pr.product_price, pr.currency_id, pr.hits, pr.unlimited, pr.product_date_added, pr.label_id {$query_filed} FROM `#__jshopping_products` AS pr\n                      LEFT JOIN `#__jshopping_products_to_categories` AS pr_cat USING (product_id)\n                      LEFT JOIN `#__jshopping_manufacturers` AS man ON pr.product_manufacturer_id=man.manufacturer_id\n                      {$query_join}\n                      WHERE pr.parent_id=0 " . $where . " " . $this->_allProductsOrder($order, $orderDir, $category_id) . " " . $limit;
     } else {
         $mysqlversion = getMysqlVersion();
         if ($mysqlversion < "4.1.0") {
             $spec_where = "cat.`" . $lang->get('name') . "` AS namescats";
         } else {
             $spec_where = "GROUP_CONCAT(cat.`" . $lang->get('name') . "` SEPARATOR '<br>') AS namescats";
         }
         $query = "SELECT pr.product_id, pr.product_publish, pr.`" . $lang->get('name') . "` as name, pr.`" . $lang->get('short_description') . "` as short_description, man.`" . $lang->get('name') . "` as man_name, " . $spec_where . ", pr.product_ean as ean, pr.product_quantity as qty, pr.image as image, pr.product_price, pr.currency_id, pr.hits, pr.unlimited, pr.product_date_added, pr.label_id {$query_filed} FROM `#__jshopping_products` AS pr \n                      LEFT JOIN `#__jshopping_products_to_categories` AS pr_cat USING (product_id)\n                      LEFT JOIN `#__jshopping_categories` AS cat ON pr_cat.category_id=cat.category_id\n                      LEFT JOIN `#__jshopping_manufacturers` AS man ON pr.product_manufacturer_id=man.manufacturer_id\n                      {$query_join}\n                      WHERE pr.parent_id=0 " . $where . " GROUP BY pr.product_id " . $this->_allProductsOrder($order, $orderDir) . " " . $limit;
     }
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onBeforeDisplayListProductsGetAllProducts', array(&$this, &$query, $filter, $limitstart, $limit, $order, $orderDir));
     $db->setQuery($query);
     return $db->loadObjectList();
 }
Example #2
0
function checkDBSettings($silent = false)
{
    installLog("Begin DB Check Process *************");
    if (function_exists('mysqli_connect')) {
        $_SESSION['mysql_type'] = 'mysqli';
    }
    if (function_exists('sqlsrv_connect')) {
        $_SESSION['mssql_type'] = 'sqlsrv';
    }
    global $mod_strings;
    $errors = array();
    copyInputsIntoSession();
    installLog("Checking DB Name is valid.");
    $_SESSION['setup_db_database_name'] = trim($_SESSION['setup_db_database_name']);
    if ($_SESSION['setup_db_database_name'] == '') {
        $errors['ERR_DB_NAME'] = $mod_strings['ERR_DB_NAME'];
        installLog("ERROR::  {$errors['ERR_DB_NAME']}");
    }
    if (!isValidDBName($_SESSION['setup_db_database_name'], $_SESSION['setup_db_type'])) {
        $errIdx = 'ERR_DB_' . strtoupper($_SESSION['setup_db_type']) . '_DB_NAME_INVALID';
        $errors[$errIdx] = $mod_strings[$errIdx];
        installLog("ERROR::  {$errors[$errIdx]}");
    }
    if ($_SESSION['setup_db_type'] != 'oci8') {
        if (trim($_SESSION['setup_db_host_name']) == '') {
            $errors['ERR_DB_HOSTNAME'] = $mod_strings['ERR_DB_HOSTNAME'];
            installLog("ERROR::  {$errors['ERR_DB_HOSTNAME']}");
        }
    }
    //check to see that password and retype are same, if needed
    if (isset($_SESSION['dbUSRData']) && !empty($_SESSION['dbUSRData']) && ($_SESSION['dbUSRData'] == 'create' || $_SESSION['dbUSRData'] == 'provide')) {
        if ($_SESSION['setup_db_sugarsales_password'] != $_SESSION['setup_db_sugarsales_password_retype']) {
            $errors['ERR_DBCONF_PASSWORD_MISMATCH'] = $mod_strings['ERR_DBCONF_PASSWORD_MISMATCH'];
            installLog("ERROR::  {$errors['ERR_DBCONF_PASSWORD_MISMATCH']}");
        }
    }
    // bail if the basic info isn't valid
    if (count($errors) > 0) {
        installLog("Basic form info is INVALID, exit Process.");
        return printErrors($errors);
    } else {
        installLog("Basic form info is valid, continuing Process.");
    }
    // test the account that will talk to the db if we're not creating it
    if ($_SESSION['setup_db_sugarsales_user'] != '' && !$_SESSION['setup_db_create_sugarsales_user']) {
        if ($_SESSION['setup_db_type'] == 'mysql') {
            installLog("testing with mysql");
            if (isset($_SESSION['mysql_type']) && $_SESSION['mysql_type'] == 'mysqli') {
                installLog("MySQLI library detected");
            }
            if (isset($_SESSION['mysql_type'])) {
                $host_name = getHostPortFromString($_SESSION['setup_db_host_name']);
                if (empty($host_name)) {
                    $link = @mysqli_connect($_SESSION['setup_db_host_name'], $_SESSION['setup_db_sugarsales_user'], $_SESSION['setup_db_sugarsales_password']);
                } else {
                    $link = @mysqli_connect($host_name[0], $_SESSION['setup_db_sugarsales_user'], $_SESSION['setup_db_sugarsales_password'], null, $host_name[1]);
                }
            } else {
                $link = @mysql_connect($_SESSION['setup_db_host_name'], $_SESSION['setup_db_sugarsales_user'], $_SESSION['setup_db_sugarsales_password']);
            }
            if (!$link) {
                installLog("Could not make Connection using  host: {$_SESSION['setup_db_host_name']}, usr: {$_SESSION['setup_db_sugarsales_user']}");
                if (isset($_SESSION['mysql_type'])) {
                    $errno = mysqli_connect_errno();
                    $error = mysqli_connect_error();
                } else {
                    $errno = mysql_errno();
                    $error = mysql_error();
                }
                $errors['ERR_DB_LOGIN_FAILURE'] = $mod_strings['ERR_DB_LOGIN_FAILURE_MYSQL'];
                installLog("ERROR::  {$errors['ERR_DB_LOGIN_FAILURE']}");
            } else {
                installLog("Connection made using  host: {$_SESSION['setup_db_host_name']}, usr: {$_SESSION['setup_db_sugarsales_user']}");
                if (isset($_SESSION['mysql_type'])) {
                    mysqli_close($link);
                } else {
                    mysql_close($link);
                }
            }
        } elseif ($_SESSION['setup_db_type'] == 'mssql') {
            installLog("testing with mssql");
            $connect_host = "";
            $_SESSION['setup_db_host_instance'] = trim($_SESSION['setup_db_host_instance']);
            if (empty($_SESSION['setup_db_host_instance'])) {
                $connect_host = $_SESSION['setup_db_host_name'];
            } else {
                $connect_host = $_SESSION['setup_db_host_name'] . "\\" . $_SESSION['setup_db_host_instance'];
            }
            if (isset($_SESSION['mssql_type'])) {
                $connect_params = array("UID" => $_SESSION['setup_db_sugarsales_user'], "PWD" => $_SESSION['setup_db_sugarsales_password'], "MultipleActiveResultSets" => false);
                $link = sqlsrv_connect($connect_host, $connect_params);
            } else {
                $link = @mssql_connect($connect_host, $_SESSION['setup_db_sugarsales_user'], $_SESSION['setup_db_sugarsales_password']);
            }
            if (!$link) {
                $errors['ERR_DB_LOGIN_FAILURE'] = $mod_strings['ERR_DB_LOGIN_FAILURE_MSSQL'];
                installLog("ERROR::  {$errors['ERR_DB_LOGIN_FAILURE']}");
            } else {
                installLog("Connection made using  host: {$_SESSION['setup_db_host_name']}, usr: {$_SESSION['setup_db_sugarsales_user']}");
                if (isset($_SESSION['mssql_type'])) {
                    sqlsrv_close($link);
                } else {
                    mssql_close($link);
                }
            }
            // Bug 29855 - Check to see if given db name is valid
            //                if (preg_match("/^[0-9#@]+|[\"\'\*\/\\?\:\\<\>\-\ \&\!\(\)\[\]\{\}\;\,\.\`\~\|\\\\]+/i", $_SESSION['setup_db_database_name']) ) {
            //                    $errors['ERR_DB_MSSQL_DB_NAME'] = $mod_strings['ERR_DB_MSSQL_DB_NAME_INVALID'];
            //                    installLog("ERROR::  {$errors['ERR_DB_MSSQL_DB_NAME']}");
            //                }
            //                Moved to isValidDBName function in db_utils.php
        } elseif ($_SESSION['setup_db_type'] == 'oci8') {
        }
    }
    // privileged account tests
    if ($_SESSION['setup_db_admin_user_name'] == '') {
        $errors['ERR_DB_PRIV_USER'] = $mod_strings['ERR_DB_PRIV_USER'];
        installLog("ERROR:: {$errors['ERR_DB_PRIV_USER']}");
    } else {
        installLog("Testing priviliged account...");
        if ($_SESSION['setup_db_type'] == 'mysql') {
            if (isset($_SESSION['mysql_type'])) {
                $host_name = getHostPortFromString($_SESSION['setup_db_host_name']);
                if (empty($host_name)) {
                    $link = @mysqli_connect($_SESSION['setup_db_host_name'], $_SESSION['setup_db_admin_user_name'], $_SESSION['setup_db_admin_password']);
                } else {
                    $link = @mysqli_connect($host_name[0], $_SESSION['setup_db_admin_user_name'], $_SESSION['setup_db_admin_password'], null, $host_name[1]);
                }
            } else {
                $link = @mysql_connect($_SESSION['setup_db_host_name'], $_SESSION['setup_db_admin_user_name'], $_SESSION['setup_db_admin_password']);
            }
            if ($link) {
                installLog("Connection made for Privileged admin account using  host: {$_SESSION['setup_db_host_name']}, usr: {$_SESSION['setup_db_admin_user_name']}");
                // database admin credentials are valid--can continue check on stuff
                if (isset($_SESSION['mysql_type'])) {
                    $db_selected = @mysqli_select_db($link, $_SESSION['setup_db_database_name']);
                } else {
                    $db_selected = @mysql_select_db($_SESSION['setup_db_database_name'], $link);
                }
                if ($silent == false && $db_selected && $_SESSION['setup_db_create_database'] && (!isset($_SESSION['setup_db_drop_tables']) || !$_SESSION['setup_db_drop_tables'])) {
                    $errStr = $mod_strings['ERR_DB_EXISTS_PROCEED'];
                    $errors['ERR_DB_EXISTS_PROCEED'] = $errStr;
                    installLog("ERROR:: {$errors['ERR_DB_EXISTS_PROCEED']}");
                } else {
                    if (!$db_selected && !$_SESSION['setup_db_create_database']) {
                        $errors['ERR_DB_EXISTS_NOT'] = $mod_strings['ERR_DB_EXISTS_NOT'];
                        installLog("ERROR:: {$errors['ERR_DB_EXISTS_NOT']}");
                    }
                }
                // test for upgrade and inform user about the upgrade wizard
                if ($db_selected) {
                    installLog("DB Selected, will reuse {$_SESSION['setup_db_database_name']}");
                    if (isset($_SESSION['mysql_type'])) {
                        $config_query = "SHOW TABLES LIKE 'config'";
                        $config_result = mysqli_query($link, $config_query);
                        $config_table_exists = mysqli_num_rows($config_result) == 1;
                        mysqli_free_result($config_result);
                        include 'sugar_version.php';
                        if (!$_SESSION['setup_db_drop_tables'] && $config_table_exists) {
                            $query = "SELECT COUNT(*) FROM config WHERE category='info' AND name='sugar_version' AND VALUE LIKE '{$sugar_db_version}'";
                            $result = mysqli_query($link, $query);
                            $row = mysqli_fetch_row($result);
                            if ($row[0] != 1 && $silent == false) {
                                $errors['ERR_DB_EXISTS_WITH_CONFIG'] = $mod_strings['ERR_DB_EXISTS_WITH_CONFIG'];
                                installLog("ERROR:: {$errors['ERR_DB_EXISTS_WITH_CONFIG']}");
                            }
                            mysqli_free_result($result);
                        }
                    } else {
                        $config_query = "SHOW TABLES LIKE 'config'";
                        $config_result = mysql_query($config_query, $link);
                        $config_table_exists = mysql_num_rows($config_result) == 1;
                        mysql_free_result($config_result);
                        include 'sugar_version.php';
                        if (!$_SESSION['setup_db_drop_tables'] && $config_table_exists) {
                            $query = "SELECT COUNT(*) FROM config WHERE category='info' AND name='sugar_version' AND VALUE LIKE '{$sugar_db_version}'";
                            $result = mysql_query($query, $link);
                            $row = mysql_fetch_row($result);
                            if ($row[0] != 1 && $silent == false) {
                                $errors['ERR_DB_EXISTS_WITH_CONFIG'] = $mod_strings['ERR_DB_EXISTS_WITH_CONFIG'];
                                installLog("ERROR:: {$errors['ERR_DB_EXISTS_WITH_CONFIG']}");
                            }
                            mysql_free_result($result);
                        }
                    }
                } else {
                    installLog("DB not selected, will create {$_SESSION['setup_db_database_name']}");
                }
                // check for existing SugarCRM database user if create flag is set,
                //user name has been given, and database has been selected (reusing db, not creating new one)
                if ($_SESSION['setup_db_create_sugarsales_user'] && $_SESSION['setup_db_sugarsales_user'] != '' && $db_selected) {
                    if (isset($_SESSION['mysql_type'])) {
                        $mysqli_db_selected = mysqli_select_db($link, 'mysql');
                        $user = $_SESSION['setup_db_sugarsales_user'];
                        $query = "select count(*) from user where User ='******'";
                        $result = mysqli_query($link, $query);
                        if (!$result) {
                            $errno = mysqli_connect_errno();
                            $error = mysqli_connect_error();
                            $errors['ERR_DB_ADMIN'] = $mod_strings['ERR_DB_ADMIN'] . $errno . ": {$error}).";
                            installLog("ERROR:: {$errors['ERR_DB_ADMIN']}");
                        } else {
                            $row = mysqli_fetch_row($result);
                            if ($row[0] == 1) {
                                $errors['ERR_DB_USER_EXISTS'] = $mod_strings['ERR_DB_USER_EXISTS'];
                                installLog("ERROR:: {$errors['ERR_DB_USER_EXISTS']}");
                            }
                            mysqli_free_result($result);
                        }
                    } else {
                        $mysql_db_selected = mysql_select_db('mysql', $link);
                        $user = $_SESSION['setup_db_sugarsales_user'];
                        $query = "select count(*) from user where User ='******'";
                        $result = mysql_query($query, $link);
                        if (!$result) {
                            $errno = mysql_errno();
                            $error = mysql_error();
                            $errors['ERR_DB_ADMIN'] = $mod_strings['ERR_DB_ADMIN'] . $errno . ": {$error}).";
                            installLog("ERROR:: {$errors['ERR_DB_ADMIN']}");
                        } else {
                            $row = mysql_fetch_row($result);
                            if ($row[0] == 1) {
                                $errors['ERR_DB_USER_EXISTS'] = $mod_strings['ERR_DB_USER_EXISTS'];
                                installLog("ERROR:: {$errors['ERR_DB_USER_EXISTS']}");
                                //do not throw errors, reuse existing user
                                //$_SESSION['setup_db_create_sugarsales_user'] = 0;
                            }
                            mysql_free_result($result);
                        }
                    }
                }
                // check mysql minimum version requirement
                $db_version = getMysqlVersion($link);
                if (version_compare($db_version, '4.1.2') < 0) {
                    $errors['ERR_DB_MYSQL_VERSION1'] = $mod_strings['ERR_DB_MYSQL_VERSION1'] . $db_version . $mod_strings['ERR_DB_MYSQL_VERSION2'];
                    installLog("ERROR:: {$errors['ERR_DB_MYSQL_VERSION1']}");
                } else {
                    installLog("Passed DB Version check, version is {$db_version}");
                }
                if (isset($_SESSION['mysql_type'])) {
                    mysqli_close($link);
                } else {
                    mysql_close($link);
                }
            } else {
                // dblink was bad
                if (isset($_SESSION['mysql_type'])) {
                    $errno = mysqli_connect_errno();
                    $error = mysqli_connect_error();
                } else {
                    $errno = mysql_errno();
                    $error = mysql_error();
                }
                $errors['ERR_DB_ADMIN'] = $mod_strings['ERR_DB_ADMIN'] . $errno . ": {$error}).";
                installLog("ERROR:: {$errors['ERR_DB_ADMIN']}");
            }
        } else {
            if ($_SESSION['setup_db_type'] == 'mssql') {
                installLog("Testing priviliged account...");
                $connect_host = "";
                $_SESSION['setup_db_host_instance'] = trim($_SESSION['setup_db_host_instance']);
                if (empty($_SESSION['setup_db_host_instance'])) {
                    $connect_host = $_SESSION['setup_db_host_name'];
                } else {
                    $connect_host = $_SESSION['setup_db_host_name'] . "\\" . $_SESSION['setup_db_host_instance'];
                }
                if (isset($_SESSION['mssql_type'])) {
                    $connect_params = array("UID" => $_SESSION['setup_db_sugarsales_user'], "PWD" => $_SESSION['setup_db_sugarsales_password'], "MultipleActiveResultSets" => false);
                    $link = sqlsrv_connect($connect_host, $connect_params);
                } else {
                    $link = @mssql_connect($connect_host, $_SESSION['setup_db_admin_user_name'], $_SESSION['setup_db_admin_password']);
                }
                if ($link) {
                    installLog("Connection made for Privileged admin account using  host: {$_SESSION['setup_db_host_name']}, usr: {$_SESSION['setup_db_admin_user_name']}");
                    // database admin credentials are valid--can continue check on stuff
                    $tbl_exists_qry = "SELECT name FROM master..sysdatabases WHERE name = N'{$_SESSION['setup_db_database_name']}'";
                    if (isset($_SESSION['mssql_type'])) {
                        $res = sqlsrv_query($link, $tbl_exists_qry);
                    } else {
                        $res = mssql_query($tbl_exists_qry);
                    }
                    $db_exists = false;
                    if (isset($_SESSION['mssql_type']) && sqlsrv_fetch($res) == 1) {
                        $db_exists = true;
                        installLog("DB Exists and selected, will reuse {$_SESSION['setup_db_database_name']}");
                    } elseif (!isset($_SESSION['mssql_type']) && mssql_num_rows($res) == 1) {
                        $db_exists = true;
                        installLog("DB Exists and selected, will reuse {$_SESSION['setup_db_database_name']}");
                    } else {
                        installLog("No DB Selected, will create {$_SESSION['setup_db_database_name']}");
                    }
                    if ($silent == false && $db_exists && $_SESSION['setup_db_create_database'] && (!isset($_SESSION['setup_db_drop_tables']) || !$_SESSION['setup_db_drop_tables'])) {
                        $errStr = $mod_strings['ERR_DB_EXISTS_PROCEED'];
                        $errors['ERR_DB_EXISTS_PROCEED'] = $errStr;
                        installLog("ERROR:: {$errors['ERR_DB_EXISTS_PROCEED']}");
                    } else {
                        if (!$db_exists && !$_SESSION['setup_db_create_database']) {
                            $errors['ERR_DB_EXISTS_NOT'] = $mod_strings['ERR_DB_EXISTS_NOT'];
                            installLog("ERROR:: {$errors['ERR_DB_EXISTS_NOT']}");
                        }
                    }
                    // check for existing SugarCRM database user if create flag is set,
                    //user name has been given, and database has been selected (reusing db, not creating new one)
                    if ($_SESSION['setup_db_create_sugarsales_user'] && $_SESSION['setup_db_sugarsales_user'] != '') {
                        if (isset($_SESSION['mssql_type'])) {
                            $mssql_db_selected = (bool) sqlsrv_query($link, 'USE master');
                            $user = $_SESSION['setup_db_sugarsales_user'];
                            $query = "select count(*) from sys.sql_logins where name ='{$user}'";
                            $result = sqlsrv_query($link, $query);
                            if (!$result) {
                                $errors['ERR_DB_ADMIN'] = $mod_strings['ERR_DB_ADMIN'];
                                installLog("ERROR:: {$errors['ERR_DB_ADMIN']}");
                            } else {
                                $row = sqlsrv_fetch_array($result);
                                if ($row[0] == 1) {
                                    $errors['ERR_DB_USER_EXISTS'] = $mod_strings['ERR_DB_USER_EXISTS'];
                                    installLog("ERROR:: {$errors['ERR_DB_USER_EXISTS']}");
                                }
                                sqlsrv_free_stmt($result);
                            }
                        } else {
                            $mssql_db_selected = mssql_select_db('master', $link);
                            $user = $_SESSION['setup_db_sugarsales_user'];
                            $query = "select count(*) from sys.sql_logins where name ='{$user}'";
                            $result = mssql_query($query, $link);
                            if (!$result) {
                                $errors['ERR_DB_ADMIN'] = $mod_strings['ERR_DB_ADMIN'];
                                installLog("ERROR:: {$errors['ERR_DB_ADMIN']}");
                            } else {
                                $row = mssql_fetch_row($result);
                                if ($row[0] == 1) {
                                    $errors['ERR_DB_USER_EXISTS'] = $mod_strings['ERR_DB_USER_EXISTS'];
                                    installLog("ERROR:: {$errors['ERR_DB_USER_EXISTS']}");
                                }
                                mssql_free_result($result);
                            }
                        }
                    }
                    if (isset($_SESSION['mssql_type'])) {
                        sqlsrv_close($link);
                    } else {
                        mssql_close($link);
                    }
                } else {
                    // dblink was bad
                    $errors['ERR_DB_ADMIN_MSSQL'] = $mod_strings['ERR_DB_ADMIN_MSSQL'] . $connect_host;
                    installLog("ERROR:: {$errors['ERR_DB_ADMIN_MSSQL']}");
                }
            } else {
                if ($_SESSION['setup_db_type'] == 'oci8') {
                }
            }
        }
    }
    // end of privileged user tests
    if ($silent) {
        return $errors;
    } else {
        printErrors($errors);
    }
    installLog("End DB Check Process *************");
}
function getSystemInformation(&$tpl)
{
    $infos = array();
    // directory to write
    $infos['dirs'] = checkDirWritable();
    // php version
    $infos['php_version'] = phpversion();
    $infos['php_ok'] = version_compare(PHP_VERSION_NEEDED, $infos['php_version']) === -1;
    $extensions = @get_loaded_extensions();
    // Gd version
    if (in_array('gd', $extensions)) {
        $gdInfo = gd_info();
        $infos['gd_version'] = $gdInfo['GD Version'];
        ereg("([0-9]{1})", $gdInfo['GD Version'], $gdVersion);
        $gdVersion[0] >= 2 ? $infos['gd_ok'] = true : ($infos['gd_ok'] = false);
        // Freetype
        $gdInfo['FreeType Support'] === true && function_exists('imagettfbbox') ? $infos['freetype_ok'] = true : ($infos['freetype_ok'] = false);
    }
    // Mysql + version
    if (in_array('mysql', $extensions)) {
        $infos['mysql_ok'] = true;
        $infos['mysql_version'] = getMysqlVersion();
    }
    // server version
    $infos['server_version'] = addslashes($_SERVER['SERVER_SOFTWARE']);
    // server os (linux)
    $infos['server_os'] = @php_uname();
    // servert time
    $infos['server_time'] = date('H:i:s');
    /*
    //Tous ce qui est relatif a XML
    if (in_array('xml', $extensions) 
    	&& function_exists('utf8_decode') 
    	&& function_exists('utf8_encode') )
    {
    	$infos['xml_ok'] = true;
    }
    */
    if (function_exists('set_time_limit')) {
        $infos['set_time_limit_ok'] = true;
    }
    if (function_exists('utf8_encode') && function_exists('utf8_decode')) {
        $infos['php_xml'] = true;
    }
    if (function_exists('mail')) {
        $infos['mail_ok'] = true;
    }
    //Registre global
    $infos['register_globals'] = ini_get('register_globals') != 0;
    if ($memoryValue = getMemoryValue()) {
        $infos['memory'] = $memoryValue . "M";
        if ($memoryValue < MEMORY_LIMIT) {
            $tpl->assign("memory_limit", "PHP's memory_limit is " . $infos['memory'] . ". If this is too low, phpMyVisites may not work correctly on high traffic websites! Attempting to raise limit to " . MEMORY_LIMIT . "M...");
            if (setMemoryLimit()) {
                $tpl->assign("memory_limit_ok", "Memory set to " . MEMORY_LIMIT . "M!");
                $infos['memory_ok'] = true;
            } else {
                $tpl->assign("memory_limit", "Failed to set memory_limit to 20M. If phpMyVisites doesn't work correctly, try to raise this limit to at least 20M, look in the php.ini file or ask your server administrator.");
            }
            $infos['memory'] = @ini_get('memory_limit');
        } else {
            $infos['memory_ok'] = true;
        }
    }
    // server uptime from mysql uptime
    $res = query('SHOW STATUS');
    if ($res) {
        while ($row = mysql_fetch_array($res)) {
            $serverStatus[$row[0]] = $row[1];
        }
        $infos['server_uptime'] = date("r", time() - $serverStatus['Uptime']);
    }
    return $infos;
}
Example #4
0
    $fp = @fsockopen($ip, $port, &$errno, &$errstr, 2);
    if (!$fp) {
        return false;
    } else {
        $ret = '';
        fgets($fp, 1024);
        for ($i = 1; $i < 30; $i++) {
            $ret .= fgetc($fp);
        }
        flush();
        fclose($fp);
    }
    preg_match("/([\\d+\\.]+\\d+)/", $ret, $regs);
    return $regs[1];
}
$mysqlVersion = getMysqlVersion();
$pass = '******';
$fail = '<font color=red>不通过</font>';
?>
<style type="text/css">
<!--
.STYLE2 {color: #000000}
.STYLE3{color: #000000;font-size:12px}
-->
</style>
<p>ShopEx合作伙伴主机检测程序</p>
<table width="100%" border="0" cellpadding="3" bgcolor="#FF9900">
  <tr>
    <td height="20" colspan="2" bgcolor="#CCCCCC">主机基本信息</td>
  </tr>
  <tr>
function validate_dbConfig()
{
    global $mod_strings;
    $errors = array();
    if ($_SESSION['setup_db_type'] != 'oci8') {
        if ($_SESSION['setup_db_host_name'] == '') {
            $errors[] = $mod_strings['ERR_DB_HOSTNAME'];
        }
    }
    if ($_SESSION['setup_db_database_name'] == '') {
        $errors[] = $mod_strings['ERR_DB_NAME'];
    } elseif ($_SESSION['setup_db_type'] == 'mysql') {
        if (preg_match("/[\\\\\\/\\.]/", $_SESSION['setup_db_database_name'])) {
            $errors[] = $mod_strings['ERR_DB_NAME2'];
        }
    }
    if ($_SESSION['setup_db_type'] == 'mssql') {
        if (preg_match("/[\\\\\\/\\.]/", $_SESSION['setup_db_database_name'])) {
            $errors[] = $mod_strings['ERR_DB_NAME2'];
        }
    }
    if ($_SESSION['setup_db_sugarsales_user'] == '') {
        $errors[] = $mod_strings['ERR_DB_USER'];
    }
    if ($_SESSION['setup_db_create_sugarsales_user'] && $_SESSION['setup_db_sugarsales_password'] != $_SESSION['setup_db_sugarsales_password_retype']) {
        $errors[] = $mod_strings['ERR_DB_PASSWORD'];
    }
    // bail if the basic info isn't valid
    if (count($errors) > 0) {
        return $errors;
    }
    // test the account that will talk to the db if we're not creating it
    if ($_SESSION['setup_db_sugarsales_user'] != '' && !$_SESSION['setup_db_create_sugarsales_user']) {
        if ($_SESSION['setup_db_type'] == 'mysql') {
            $link = @mysql_connect($_SESSION['setup_db_host_name'], $_SESSION['setup_db_sugarsales_user'], $_SESSION['setup_db_sugarsales_password']);
            if (!$link) {
                $errno = mysql_errno();
                $error = mysql_error();
                $errors[] = $mod_strings['ERR_DB_LOGIN_FAILURE_MYSQL'] . "{$errno}: {$error}).";
            } else {
                mysql_close($link);
            }
        } elseif ($_SESSION['setup_db_type'] == 'mssql') {
            $connect_host = "";
            $_SESSION['setup_db_host_instance'] = trim($_SESSION['setup_db_host_instance']);
            if (empty($_SESSION['setup_db_host_instance'])) {
                $connect_host = $_SESSION['setup_db_host_name'];
            } else {
                $connect_host = $_SESSION['setup_db_host_name'] . "\\" . $_SESSION['setup_db_host_instance'];
            }
            $link = @mssql_connect($connect_host, $_SESSION['setup_db_sugarsales_user'], $_SESSION['setup_db_sugarsales_password']);
            if (!$link) {
                $errors[] = $mod_strings['ERR_DB_LOGIN_FAILURE_MSSQL'];
            } else {
                mssql_close($link);
            }
        } elseif ($_SESSION['setup_db_type'] == 'oci8') {
        }
    }
    // privileged account tests
    if ($_SESSION['setup_db_admin_user_name'] == '') {
        $errors[] = $mod_strings['ERR_DB_PRIV_USER'];
    } else {
        if ($_SESSION['setup_db_type'] == 'mysql') {
            $link = @mysql_connect($_SESSION['setup_db_host_name'], $_SESSION['setup_db_admin_user_name'], $_SESSION['setup_db_admin_password']);
            if ($link) {
                // database admin credentials are valid--can continue check on stuff
                $db_selected = @mysql_select_db($_SESSION['setup_db_database_name'], $link);
                if ($db_selected && $_SESSION['setup_db_create_database']) {
                    $errors[] = $mod_strings['ERR_DB_EXISTS'];
                } else {
                    if (!$db_selected && !$_SESSION['setup_db_create_database']) {
                        $errors[] = $mod_strings['ERR_DB_EXISTS_NOT'];
                    }
                }
                // test for upgrade and inform user about the upgrade wizard
                if ($db_selected) {
                    $config_query = "SHOW TABLES LIKE 'config'";
                    $config_result = mysql_query($config_query, $link);
                    $config_table_exists = mysql_num_rows($config_result) == 1;
                    mysql_free_result($config_result);
                    include 'sugar_version.php';
                    if (!$_SESSION['setup_db_drop_tables'] && $config_table_exists) {
                        $query = "SELECT COUNT(*) FROM config WHERE category='info' AND name='sugar_version' AND VALUE LIKE '{$sugar_db_version}'";
                        $result = mysql_query($query, $link);
                        $row = mysql_fetch_row($result);
                        if ($row[0] != 1) {
                            $errors[] = $mod_strings['ERR_DB_EXISTS_WITH_CONFIG'];
                        }
                        mysql_free_result($result);
                    }
                }
                // check for existing SugarCRM database user
                if ($_SESSION['setup_db_create_sugarsales_user'] && $_SESSION['setup_db_sugarsales_user'] != '') {
                    $db_selected = mysql_select_db('mysql', $link);
                    $user = $_SESSION['setup_db_sugarsales_user'];
                    $query = "select count(*) from user where User='******'";
                    $result = mysql_query($query, $link);
                    $row = mysql_fetch_row($result);
                    if ($row[0] == 1) {
                        $errors[] = $mod_strings['ERR_DB_USER_EXISTS'];
                    }
                    mysql_free_result($result);
                }
                // check mysql minimum version requirement
                $db_version = getMysqlVersion($link);
                if (version_compare($db_version, '4.1.2') < 0) {
                    $errors[] = $mod_strings['ERR_DB_MYSQL_VERSION1'] . $db_version . $mod_strings['ERR_DB_MYSQL_VERSION2'];
                }
                mysql_close($link);
            } else {
                // dblink was bad
                $errno = mysql_errno();
                $error = mysql_error();
                $errors[] = $mod_strings['ERR_DB_ADMIN'] . $errno . ": {$error}).";
            }
        } else {
            if ($_SESSION['setup_db_type'] == 'oci8') {
            }
        }
    }
    // end of privileged user tests
    return $errors;
}
Example #6
0
 /**
  * get the list of jshopping items
  * 
  * @param JParameter $params;
  * @return Array
  */
 public function __getList($params)
 {
     $jshopConfig =& JSFactory::getConfig();
     $lang =& JSFactory::getLang();
     $mainframe =& JFactory::getApplication();
     $noimage = "noimage.gif";
     $order_complate_id = 7;
     $titleMaxChars = $params->get('title_max_chars', '100');
     $openTarget = $params->get('open_target', 'parent');
     $descriptionMaxChars = $params->get('description_max_chars', 100);
     $condition = $this->buildConditionQuery($params);
     $ordering = $params->get('sort_product', 'date_asc');
     $limit = $params->get('limit_items', 5);
     $orders = $this->getOrdering($ordering);
     $dir = $orders["dir"];
     $ordering = $orders["ordering"];
     $my =& JFactory::getUser();
     $aid = $my->get('aid', 0);
     $thumbWidth = (int) $params->get('preview_width', 200);
     $thumbHeight = (int) $params->get('preview_height', 210);
     $imageHeight = (int) $params->get('main_height', 300);
     $imageWidth = (int) $params->get('main_width', 660);
     $show_preview = $params->get('show_preview', 1);
     $isThumb = $params->get('auto_renderthumb', 1);
     $image_quanlity = $params->get('image_quanlity', 100);
     $isStripedTags = $params->get('auto_strip_tags', 0);
     $extraURL = $params->get('open_target') != 'modalbox' ? '' : '&tmpl=component';
     $db =& JFactory::getDBO();
     $date =& JFactory::getDate();
     $now = $date->toMySQL();
     $mysqlversion = getMysqlVersion();
     if ($mysqlversion < "4.1.0") {
         $spec_where = "cat.`" . $lang->get('name') . "` AS namescats";
     } else {
         $spec_where = "GROUP_CONCAT(cat.`" . $lang->get('name') . "` SEPARATOR '<br>') AS namescats";
     }
     $query_join = "";
     $query_filed = "";
     /*Use this code for check ordering*/
     switch ($ordering) {
         case 'date':
             $ordering = "pr.product_date_added " . $dir;
             break;
         case 'price':
             $ordering = "pr.product_price " . $dir;
             break;
         case 'name':
             $ordering = "`name` " . $dir;
             break;
         case 'most_sold':
             $ordering = " oh.order_status_id DESC,op.product_quantity DESC";
             $query_join .= " LEFT JOIN `#__jshopping_order_item` AS op ON op.product_id = pr.product_id ";
             $query_join .= " LEFT JOIN `#__jshopping_order_history` AS oh ON oh.order_id = op.order_id AND oh.order_status_id =" . $order_complate_id . " ";
             $query_filed .= " ,op.order_id";
             /*$condition .= " AND oh.order_status_id =".$order_complate_id." ";*/
             break;
         case 'latest_sold':
             $ordering = " oh.order_status_id DESC, oh.status_date_added DESC";
             $query_join .= " LEFT JOIN `#__jshopping_order_item` AS op ON op.product_id = pr.product_id ";
             $query_join .= " LEFT JOIN `#__jshopping_order_history` AS oh ON oh.order_id = op.order_id AND oh.order_status_id =" . $order_complate_id . " ";
             $query_filed .= " ,op.order_id";
             /*$condition .= " AND oh.order_status_id = ".$order_complate_id." ";*/
             break;
         case 'most_rate':
             $ordering = " pr.average_rating DESC";
             break;
         case 'most_comment':
             $ordering = " pr.reviews_count DESC";
             break;
         case 'random':
             $ordering = " RAND()";
             break;
     }
     /*End*/
     $query = "SELECT pr.product_id, pr.product_publish,pr.average_rating, pr.reviews_count, pr.`" . $lang->get('name') . "` as `name`, pr.`" . $lang->get('description') . "` as description, pr.`" . $lang->get('short_description') . "` as short_description, man.`" . $lang->get('name') . "` as man_name, " . $spec_where . ", pr.product_ean as ean, pr.product_quantity as qty, pr.product_thumb_image as image,pr.product_thumb_image,pr.product_full_image, pr.product_price,pr.label_id, pr_cat.category_id, pr.hits, pr.unlimited, pr.product_date_added, pr.product_old_price {$query_filed}  FROM `#__jshopping_products` AS pr \n\t\t\t\t  LEFT JOIN `#__jshopping_products_to_categories` AS pr_cat USING (product_id)\n\t\t\t\t  LEFT JOIN `#__jshopping_categories` AS cat ON pr_cat.category_id=cat.category_id\n\t\t\t\t  LEFT JOIN `#__jshopping_manufacturers` AS man ON pr.product_manufacturer_id=man.manufacturer_id\n\t\t\t\t  {$query_join}\n\t\t\t\t  WHERE 1 " . $condition;
     $query .= " GROUP BY pr.product_id" . ' ORDER BY ' . $ordering;
     $query .= $limit ? ' LIMIT ' . $limit : '';
     /*
     echo nl2br(str_replace('#__', 'jos_', $query));
     die();
     */
     $db->setQuery($query);
     $data = $db->loadObjectlist();
     if (empty($data)) {
         return array();
     }
     $check = array();
     $products = array();
     foreach ($data as $key => $item) {
         if (in_array($item->product_id, $check)) {
             continue;
         }
         $item->link = SEFLink('index.php?option=com_jshopping&controller=product&task=view&category_id=' . $item->category_id . '&product_id=' . $item->product_id, 1);
         $item->date = JHtml::_('date', $item->created, JText::_('DATE_FORMAT_LC2'));
         $item->title = $item->name;
         $item->subtitle = self::substring($item->title, $titleMaxChars);
         $item->description = self::substring($item->short_description, $descriptionMaxChars, true);
         $item->product_price = formatprice($item->product_price);
         $item->product_old_price = $item->product_old_price > 0 ? formatprice($item->product_old_price) : "";
         $item->product_full_image = !empty($item->product_full_image) ? $item->product_full_image : $noimage;
         $item->mainImage = $jshopConfig->image_product_live_path . "/" . $item->product_full_image;
         $item->thumbnail = $item->mainImage;
         $item->introtext = $item->description;
         $item->image_label = "";
         $item->review = "";
         $item->product_full_image = $item->mainImage;
         if ($item->mainImage && ($image = $this->renderThumb($item->mainImage, $imageWidth, $imageHeight, $item->name, $isThumb, $image_quanlity))) {
             $item->mainImage = $image;
         }
         if ($show_preview) {
             if ($item->thumbnail && ($image = $this->renderThumb($item->thumbnail, $thumbWidth, $thumbHeight, $item->name, $isThumb, $image_quanlity, true))) {
                 $item->thumbnail = $image;
             }
         }
         $check[] = $item->product_id;
         $products[] = $item;
     }
     return $products;
 }
 function deleteOldRecords()
 {
     parent::deleteOldRecords();
     if ($this->date->get() != getDateFromTimestamp(time())) {
         if (version_compare(getMysqlVersion(), '4.0') != -1) {
             $r = query("DELETE \n\t\t\t\t\t\t\tFROM " . T_LINK_VP . ", " . T_LINK_VPV . "\n\t\t\t\t\t\t\tUSING " . T_VISIT . "\n\t\t\t\t\t\t\t\tLEFT JOIN " . T_LINK_VP . "\n\t\t\t\t\t\t\t\tUSING ( idvisit )\n\t\t\t\t\t\t\t\tLEFT JOIN " . T_LINK_VPV . "\n\t\t\t\t\t\t\t\tUSING ( idlink_vp )\n\t\t\t\t\t\t\tWHERE " . T_VISIT . ".server_date = '" . $this->date->get() . "'\n\t\t\t\t\t\t \t\tAND " . T_VISIT . ".idsite = " . $this->site->getId() . "\n\t\t\t\t\t\t ");
         } else {
             // delete link_vp records
             print "Your mysql version is less than 4.0, so this process will be very long \n\t\t\t\t(a big feature is not implemented in your 3.23 version). \n\t\t\t\t<br>You should use mysql 4.0 or mysql 4.1!<br>\n\t\t\t\t<br>Vous devriez utiliser mysql 4.0 ou supérieure pour plus de performances \n\t\t\t\t(une fonctionnalité très importante est manquante à votre version 3.23<br>";
             // select all link_vp id
             $r = query("SELECT idlink_vp\n\t\t\t\t\t\t\tFROM " . T_VISIT . "\n\t\t\t\t\t\t\t\tLEFT JOIN " . T_LINK_VP . "\n\t\t\t\t\t\t\t\tUSING ( idvisit )\n\t\t\t\t\t\t\tWHERE " . T_VISIT . ".server_date = '" . $this->date->get() . "'\n\t\t\t\t\t\t \t\tAND " . T_VISIT . ".idsite = " . $this->site->getId() . "\n\t\t\t\t\t\t \t\t");
             while ($l = mysql_fetch_row($r)) {
                 if (!empty($l[0])) {
                     $r2 = query("DELETE FROM " . T_LINK_VP . "\n\t\t\t\t\t\t\t\tWHERE idlink_vp = " . $l[0]);
                 }
             }
         }
         $r3 = query("OPTIMIZE TABLE " . T_LINK_VP . ", " . T_LINK_VPV);
     }
 }