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(); }
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; }
$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; }
/** * 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); } }