Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Fatal error: Call to undefined function tep_get_ip_address() - NEED URGENT HELP!!! - DIGISTORE 3.2


petertufan

Recommended Posts

OK So I fiddled a littel bit more with the Google Checkout tonight and I was able to finally configure it and open the https link to google checkout production server. But now a new faulty error shows if I start the main store http://www.asktp.com/store/

 

Fatal error: Call to undefined function tep_get_ip_address() in /opt/lampp/htdocs/store/includes/application_top.php on line 244

 

I NEED HELP URGENT, PLEASE!!!

 

Here is my current includes/application_top.php:

********************************************************************************

*************************************

 

 

<?php

 

ini_set("zend.ze1_compatibility_mode", true);

 

 

 

/*

 

$Id: application_top.php,v 1.280 2005/11/01 09:38:07 hpdl Exp $

 

============================================

 

DIGISTORE FREE ECOMMERCE OPEN SOURCE VER 3.2

 

============================================

 

 

 

©2005-2006

 

The Digistore Developing Team NZ

 

http://www.digistore.co.nz

 

 

 

SUPPORT & PROJECT UPDATES:

 

http://www.digistore.co.nz/support/

 

 

 

Portions Copyright © 2003 osCommerce

 

http://www.oscommerce.com

 

 

 

This software is released under the

 

GNU General Public License. A copy of

 

the license is bundled with this

 

package.

 

 

 

No warranty is provided on the open

 

source version of this software.

 

 

 

========================================

 

*/

 

 

 

// start the timer for the page parse time log

 

define('PAGE_PARSE_START_TIME', microtime());

 

 

 

// set the level of error reporting

 

error_reporting(E_ALL & ~E_NOTICE);

 

 

 

// check if register_globals is enabled.

 

// since this is a temporary measure this message is hardcoded. The requirement will be removed before 2.2 is finalized.

 

if (function_exists('ini_get')) {

 

ini_get('register_globals') or exit('FATAL ERROR: register_globals is disabled in php.ini, please enable it!');

 

}

 

 

 

// Set the local configuration parameters - mainly for developers

 

if (file_exists('includes/local/configure.php')) include('includes/local/configure.php');

 

 

 

// include server parameters

 

require('includes/configure.php');

 

 

 

// define the project version

 

define('PROJECT_VERSION', 'DigiStore');

 

 

 

// set the type of request (secure or not)

 

$request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL';

 

 

 

// set php_self in the local scope

 

if (!isset($PHP_SELF)) $PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'];

 

 

 

if ($request_type == 'NONSSL') {

 

define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG);

 

} else {

 

define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG);

 

}

 

 

 

// include the list of project filenames

 

require(DIR_WS_INCLUDES . 'filenames.php');

 

 

 

// include the list of project database tables

 

require(DIR_WS_INCLUDES . 'database_tables.php');

 

 

 

// customization for the design layout

 

define('BOX_WIDTH', 170); // how wide the boxes should be in pixels (default: 125)

 

 

 

// include the database functions

 

require(DIR_WS_FUNCTIONS . 'database.php');

 

 

 

// make a connection to the database... now

 

tep_db_connect() or die('Unable to connect to database server!');

 

 

 

// set the application parameters

 

$configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION);

 

while ($configuration = tep_db_fetch_array($configuration_query)) {

 

define($configuration['cfgKey'], $configuration['cfgValue']);

 

}

 

 

 

// if gzip_compression is enabled, start to buffer the output

 

if ( (GZIP_COMPRESSION == 'true') && ($ext_zlib_loaded = extension_loaded('zlib')) && (PHP_VERSION >= '4') ) {

 

if (($ini_zlib_output_compression = (int)ini_get('zlib.output_compression')) < 1) {

 

if (PHP_VERSION >= '4.0.4') {

 

ob_start('ob_gzhandler');

 

} else {

 

include(DIR_WS_FUNCTIONS . 'gzip_compression.php');

 

ob_start();

 

ob_implicit_flush();

 

}

 

} else {

 

ini_set('zlib.output_compression_level', GZIP_LEVEL);

 

}

 

}

 

 

 

// set the HTTP GET parameters manually if search_engine_friendly_urls is enabled

 

if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') {

 

if (strlen(getenv('PATH_INFO')) > 1) {

 

$GET_array = array();

 

$PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF);

 

$vars = explode('/', substr(getenv('PATH_INFO'), 1));

 

for ($i=0, $n=sizeof($vars); $i<$n; $i++) {

 

if (strpos($vars[$i], '[]')) {

 

$GET_array[substr($vars[$i], 0, -2)][] = $vars[$i+1];

 

} else {

 

$HTTP_GET_VARS[$vars[$i]] = $vars[$i+1];

 

}

 

$i++;

 

}

 

 

 

if (sizeof($GET_array) > 0) {

 

while (list($key, $value) = each($GET_array)) {

 

$HTTP_GET_VARS[$key] = $value;

 

}

 

}

 

}

 

}

 

 

 

// define general functions used application-wide

 

require(DIR_WS_FUNCTIONS . 'general.php');

 

require(DIR_WS_FUNCTIONS . 'html_output.php');

 

 

 

// set the cookie domain

 

$cookie_domain = (($request_type == 'NONSSL') ? HTTP_COOKIE_DOMAIN : HTTPS_COOKIE_DOMAIN);

 

$cookie_path = (($request_type == 'NONSSL') ? HTTP_COOKIE_PATH : HTTPS_COOKIE_PATH);

 

 

 

// include cache functions if enabled

 

if (USE_CACHE == 'true') include(DIR_WS_FUNCTIONS . 'cache.php');

 

 

 

// include shopping cart class

 

require(DIR_WS_CLASSES . 'shopping_cart.php');

 

 

 

// include navigation history class

 

require(DIR_WS_CLASSES . 'navigation_history.php');

 

 

 

// some code to solve compatibility issues

 

require(DIR_WS_FUNCTIONS . 'compatibility.php');

 

 

 

// check if sessions are supported, otherwise use the php3 compatible session class

 

if (!function_exists('session_start')) {

 

define('PHP_SESSION_NAME', 'digistore_custid');

 

define('PHP_SESSION_PATH', $cookie_path);

 

define('PHP_SESSION_DOMAIN', $cookie_domain);

 

define('PHP_SESSION_SAVE_PATH', SESSION_WRITE_DIRECTORY);

 

 

 

include(DIR_WS_CLASSES . 'sessions.php');

 

}

 

 

 

// define how the session functions will be used

 

require(DIR_WS_FUNCTIONS . 'sessions.php');

 

 

 

// set the session name and save path

 

tep_session_name('digistore_custid');

 

tep_session_save_path(SESSION_WRITE_DIRECTORY);

 

 

 

// set the session cookie parameters

 

if (function_exists('session_set_cookie_params')) {

 

session_set_cookie_params(0, $cookie_path, $cookie_domain);

 

} elseif (function_exists('ini_set')) {

 

ini_set('session.cookie_lifetime', '0');

 

ini_set('session.cookie_path', $cookie_path);

 

ini_set('session.cookie_domain', $cookie_domain);

 

}

 

 

 

// set the session ID if it exists

 

if (isset($HTTP_POST_VARS[tep_session_name()])) {

 

tep_session_id($HTTP_POST_VARS[tep_session_name()]);

 

} elseif ( ($request_type == 'SSL') && isset($HTTP_GET_VARS[tep_session_name()]) ) {

 

tep_session_id($HTTP_GET_VARS[tep_session_name()]);

 

}

 

 

 

// start the session

 

$session_started = false;

 

if (SESSION_FORCE_COOKIE_USE == 'True') {

 

tep_setcookie('cookie_test', 'please_accept_for_session', time()+60*60*24*30, $cookie_path, $cookie_domain);

 

 

 

if (isset($HTTP_COOKIE_VARS['cookie_test'])) {

 

tep_session_start();

 

$session_started = true;

 

}

 

} elseif (SESSION_BLOCK_SPIDERS == 'True') {

 

$user_agent = strtolower(getenv('HTTP_USER_AGENT'));

 

$spider_flag = false;

 

 

 

if (tep_not_null($user_agent)) {

 

$spiders = file(DIR_WS_INCLUDES . 'spiders.txt');

 

 

 

for ($i=0, $n=sizeof($spiders); $i<$n; $i++) {

 

if (tep_not_null($spiders[$i])) {

 

if (is_integer(strpos($user_agent, trim($spiders[$i])))) {

 

$spider_flag = true;

 

break;

 

}

 

}

 

}

 

}

 

 

 

if ($spider_flag == false) {

 

tep_session_start();

 

$session_started = true;

 

}

 

} else {

 

tep_session_start();

 

$session_started = true;

 

}

 

 

 

// set SID once, even if empty

 

$SID = (defined('SID') ? SID : '');

 

 

 

// verify the ssl_session_id if the feature is enabled

 

if ( ($request_type == 'SSL') && (SESSION_CHECK_SSL_SESSION_ID == 'True') && (ENABLE_SSL == true) && ($session_started == true) ) {

 

$ssl_session_id = getenv('SSL_SESSION_ID');

 

if (!tep_session_is_registered('SSL_SESSION_ID')) {

 

$SESSION_SSL_ID = $ssl_session_id;

 

tep_session_register('SESSION_SSL_ID');

 

}

 

 

 

if ($SESSION_SSL_ID != $ssl_session_id) {

 

tep_session_destroy();

 

tep_redirect(tep_href_link(FILENAME_SSL_CHECK));

 

}

 

}

 

 

 

// verify the browser user agent if the feature is enabled

 

if (SESSION_CHECK_USER_AGENT == 'True') {

 

$http_user_agent = getenv('HTTP_USER_AGENT');

 

if (!tep_session_is_registered('SESSION_USER_AGENT')) {

 

$SESSION_USER_AGENT = $http_user_agent;

 

tep_session_register('SESSION_USER_AGENT');

 

}

 

 

 

if ($SESSION_USER_AGENT != $http_user_agent) {

 

tep_session_destroy();

 

tep_redirect(tep_href_link(FILENAME_LOGIN));

 

}

 

}

 

 

 

// verify the IP address if the feature is enabled

 

if (SESSION_CHECK_IP_ADDRESS == 'True') {

 

$ip_address = tep_get_ip_address();

 

if (!tep_session_is_registered('SESSION_IP_ADDRESS')) {

 

$SESSION_IP_ADDRESS = $ip_address;

 

tep_session_register('SESSION_IP_ADDRESS');

 

}

 

 

 

if ($SESSION_IP_ADDRESS != $ip_address) {

 

tep_session_destroy();

 

tep_redirect(tep_href_link(FILENAME_LOGIN));

 

}

 

}

 

 

 

// create the shopping cart & fix the cart if necesary

 

if (tep_session_is_registered('cart') && is_object($cart)) {

 

if (PHP_VERSION < 4) {

 

$broken_cart = $cart;

 

$cart = new shoppingCart;

 

$cart->unserialize($broken_cart);

 

}

 

} else {

 

tep_session_register('cart');

 

$cart = new shoppingCart;

 

}

 

 

 

// include currencies class and create an instance

 

require(DIR_WS_CLASSES . 'currencies.php');

 

$currencies = new currencies();

 

 

 

// include the mail classes

 

require(DIR_WS_CLASSES . 'mime.php');

 

require(DIR_WS_CLASSES . 'email.php');

 

 

 

// set the language

 

if (!tep_session_is_registered('language') || isset($HTTP_GET_VARS['language'])) {

 

if (!tep_session_is_registered('language')) {

 

tep_session_register('language');

 

tep_session_register('languages_id');

 

}

 

 

 

include(DIR_WS_CLASSES . 'language.php');

 

$lng = new language();

 

 

 

if (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) {

 

$lng->set_language($HTTP_GET_VARS['language']);

 

} else {

 

$lng->get_browser_language();

 

}

 

 

 

$language = $lng->language['directory'];

 

$languages_id = $lng->language['id'];

 

}

 

 

 

// include the language translations

 

require(DIR_WS_LANGUAGES . $language . '.php');

 

 

 

// currency

 

if (!tep_session_is_registered('currency') || isset($HTTP_GET_VARS['currency']) || ( (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && (LANGUAGE_CURRENCY != $currency) ) ) {

 

if (!tep_session_is_registered('currency')) tep_session_register('currency');

 

 

 

if (isset($HTTP_GET_VARS['currency'])) {

 

if (!$currency = tep_currency_exists($HTTP_GET_VARS['currency'])) $currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY;

 

} else {

 

$currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY;

 

}

 

}

 

 

 

// navigation history

 

if (tep_session_is_registered('navigation')) {

 

if (PHP_VERSION < 4) {

 

$broken_navigation = $navigation;

 

$navigation = new navigationHistory;

 

$navigation->unserialize($broken_navigation);

 

}

 

} else {

 

tep_session_register('navigation');

 

$navigation = new navigationHistory;

 

}

 

$navigation->add_current_page();

 

 

 

// Shopping cart actions

 

if (isset($HTTP_GET_VARS['action'])) {

 

// redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled

 

if ($session_started == false) {

 

tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE));

 

}

 

 

 

if (DISPLAY_CART == 'true') {

 

$goto = FILENAME_SHOPPING_CART;

 

$parameters = array('action', 'cPath', 'products_id', 'pid');

 

} else {

 

$goto = basename($PHP_SELF);

 

if ($HTTP_GET_VARS['action'] == 'buy_now') {

 

$parameters = array('action', 'pid', 'products_id');

 

} else {

 

$parameters = array('action', 'pid');

 

}

 

}

 

switch ($HTTP_GET_VARS['action']) {

 

// customer wants to update the product quantity in their shopping cart

 

case 'update_product' : for ($i=0, $n=sizeof($HTTP_POST_VARS['products_id']); $i<$n; $i++) {

 

if (in_array($HTTP_POST_VARS['products_id'][$i], (is_array($HTTP_POST_VARS['cart_delete']) ? $HTTP_POST_VARS['cart_delete'] : array()))) {

 

$cart->remove($HTTP_POST_VARS['products_id'][$i]);

 

} else {

 

if (PHP_VERSION < 4) {

 

// if PHP3, make correction for lack of multidimensional array.

 

reset($HTTP_POST_VARS);

 

while (list($key, $value) = each($HTTP_POST_VARS)) {

 

if (is_array($value)) {

 

while (list($key2, $value2) = each($value)) {

 

if (ereg ("(.*)\]\[(.*)", $key2, $var)) {

 

$id2[$var[1]][$var[2]] = $value2;

 

}

 

}

 

}

 

}

 

$attributes = ($id2[$HTTP_POST_VARS['products_id'][$i]]) ? $id2[$HTTP_POST_VARS['products_id'][$i]] : '';

 

} else {

 

$attributes = ($HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]]) ? $HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]] : '';

 

}

 

$cart->add_cart($HTTP_POST_VARS['products_id'][$i], $HTTP_POST_VARS['cart_quantity'][$i], $attributes, false);

 

}

 

}

 

tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));

 

break;

 

// customer adds a product from the products page

 

case 'add_product' : if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {

 

$cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id']))+1, $HTTP_POST_VARS['id']);

 

}

 

tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));

 

break;

 

// performed by the 'buy now' button in product listings and review page

 

case 'buy_now' : if (isset($HTTP_GET_VARS['products_id'])) {

 

if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) {

 

tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));

 

} else {

 

$cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1);

 

}

 

}

 

tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));

 

break;

 

case 'notify' : if (tep_session_is_registered('customer_id')) {

 

if (isset($HTTP_GET_VARS['products_id'])) {

 

$notify = $HTTP_GET_VARS['products_id'];

 

} elseif (isset($HTTP_GET_VARS['notify'])) {

 

$notify = $HTTP_GET_VARS['notify'];

 

} elseif (isset($HTTP_POST_VARS['notify'])) {

 

$notify = $HTTP_POST_VARS['notify'];

 

} else {

 

tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify'))));

 

}

 

if (!is_array($notify)) $notify = array($notify);

 

for ($i=0, $n=sizeof($notify); $i<$n; $i++) {

 

$check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $notify[$i] . "' and customers_id = '" . $customer_id . "'");

 

$check = tep_db_fetch_array($check_query);

 

if ($check['count'] < 1) {

 

tep_db_query("insert into " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id, customers_id, date_added) values ('" . $notify[$i] . "', '" . $customer_id . "', now())");

 

}

 

}

 

tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify'))));

 

} else {

 

$navigation->set_snapshot();

 

tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));

 

}

 

break;

 

case 'notify_remove' : if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['products_id'])) {

 

$check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'");

 

$check = tep_db_fetch_array($check_query);

 

if ($check['count'] > 0) {

 

tep_db_query("delete from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'");

 

}

 

tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action'))));

 

} else {

 

$navigation->set_snapshot();

 

tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));

 

}

 

break;

 

case 'cust_order' : if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['pid'])) {

 

if (tep_has_product_attributes($HTTP_GET_VARS['pid'])) {

 

tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['pid']));

 

} else {

 

$cart->add_cart($HTTP_GET_VARS['pid'], $cart->get_quantity($HTTP_GET_VARS['pid'])+1);

 

}

 

}

 

tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));

 

break;

 

}

 

}

 

 

 

// include the who's online functions

 

require(DIR_WS_FUNCTIONS . 'whos_online.php');

 

tep_update_whos_online();

 

 

 

// include the password crypto functions

 

require(DIR_WS_FUNCTIONS . 'password_funcs.php');

 

 

 

// include validation functions (right now only email address)

 

require(DIR_WS_FUNCTIONS . 'validations.php');

 

 

 

// split-page-results

 

require(DIR_WS_CLASSES . 'split_page_results.php');

 

 

 

// infobox

 

require(DIR_WS_CLASSES . 'boxes.php');

 

 

 

// auto activate and expire banners

 

require(DIR_WS_FUNCTIONS . 'banner.php');

 

tep_activate_banners();

 

tep_expire_banners();

 

 

 

// auto expire special products

 

require(DIR_WS_FUNCTIONS . 'specials.php');

 

tep_expire_specials();

 

 

 

// calculate category path

 

if (isset($HTTP_GET_VARS['cPath'])) {

 

$cPath = $HTTP_GET_VARS['cPath'];

 

} elseif (isset($HTTP_GET_VARS['products_id']) && !isset($HTTP_GET_VARS['manufacturers_id'])) {

 

$cPath = tep_get_product_path($HTTP_GET_VARS['products_id']);

 

} else {

 

$cPath = '';

 

}

 

 

 

if (tep_not_null($cPath)) {

 

$cPath_array = tep_parse_category_path($cPath);

 

$cPath = implode('_', $cPath_array);

 

$current_category_id = $cPath_array[(sizeof($cPath_array)-1)];

 

} else {

 

$current_category_id = 0;

 

}

 

 

 

// include the breadcrumb class and start the breadcrumb trail

 

require(DIR_WS_CLASSES . 'breadcrumb.php');

 

$breadcrumb = new breadcrumb;

 

 

 

$breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER);

 

$breadcrumb->add(HEADER_TITLE_CATALOG, tep_href_link(FILENAME_DEFAULT));

 

 

 

// add category names or the manufacturer name to the breadcrumb trail

 

if (isset($cPath_array)) {

 

for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) {

 

$categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'");

 

if (tep_db_num_rows($categories_query) > 0) {

 

$categories = tep_db_fetch_array($categories_query);

 

$breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1)))));

 

} else {

 

break;

 

}

 

}

 

} elseif (isset($HTTP_GET_VARS['manufacturers_id'])) {

 

$manufacturers_query = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");

 

if (tep_db_num_rows($manufacturers_query)) {

 

$manufacturers = tep_db_fetch_array($manufacturers_query);

 

$breadcrumb->add($manufacturers['manufacturers_name'], tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id']));

 

}

 

}

 

 

 

// add the products model to the breadcrumb trail

 

if (isset($HTTP_GET_VARS['products_id'])) {

 

$model_query = tep_db_query("select products_model from " . TABLE_PRODUCTS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'");

 

if (tep_db_num_rows($model_query)) {

 

$model = tep_db_fetch_array($model_query);

 

$breadcrumb->add($model['products_model'], tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $HTTP_GET_VARS['products_id']));

 

}

 

}

 

 

 

// initialize the message stack for output messages

 

require(DIR_WS_CLASSES . 'message_stack.php');

 

$messageStack = new messageStack;

 

 

 

// true or flase check precautions in store

 

define ('CHECK_PREC','true');

 

 

 

define('WARN_DIGISTORE_LINK', '' . CHECK_PREC . '');

 

define('WARN_INSTALL_LOGO', '' . CHECK_PREC . '');

 

define('WARN_CONFIG_WRITEABLE', '' . CHECK_PREC . '');

 

define('WARN_DIGISTORE_LINK', '' . CHECK_PREC . '');

 

define('WARN_SESSION_DIRECTORY_NOT_WRITEABLE', '' . CHECK_PREC . '');

 

define('WARN_SESSION_AUTO_START', '' . CHECK_PREC . '');

 

define('WARN_DOWNLOAD_DIRECTORY_NOT_READABLE', '' . CHECK_PREC . '');

 

 

 

define('ERROR_LOGO', '<B>ERROR:</B> No store logo defined, you will need to login to the administration and add an image.');

 

define('WARNING_INSTALL_DIRECTORY', 'Error DigiStore /install/ directory found - YOU MUST DELETE or RENAME this folder on completion of installation');

 

if (tep_session_is_registered('customer_id') && $customer_id === '0' && substr(basename($PHP_SELF),0,7)=='account') tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));

 

 

 

?>

 

 

********************************************************************************

 

Peter Tufan

AIC Incorporated

http://www.asktp.com/store/

Link to comment
Share on other sites

Check if you have a function named tep_get_ip_address in the file catalog/includes/functions/general.php

 

 

Hi Sousa,

 

Thank you so much for the help - I downloaded the includes/functions/general.php file and searched it for the tep_get_ip_address but it it not there.

 

Should I add something into the general.php file?

 

Thanks,

 

Peter Tufan

AIC Incorporated

http://www.asktp.com

http://www.asktp.com/store/

 

here is the actual general.php transcript:

 

********************************************************************************

******************

<?php

 

/*

 

$Id: general.php,v 1.160 2005/11/01 08:32:47 hpdl Exp $

 

============================================

 

DIGISTORE FREE ECOMMERCE OPEN SOURCE VER 3.2

 

============================================

 

 

 

©2005-2006

 

The Digistore Developing Team NZ

 

http://www.digistore.co.nz

 

 

 

SUPPORT & PROJECT UPDATES:

 

http://www.digistore.co.nz/support/

 

 

 

Portions Copyright © 2003 osCommerce

 

http://www.oscommerce.com

 

 

 

This software is released under the

 

GNU General Public License. A copy of

 

the license is bundled with this

 

package.

 

 

 

No warranty is provided on the open

 

source version of this software.

 

 

 

========================================

 

*/

 

 

 

//Admin begin

 

function display_contact(){

 

if (DISPLAY_ADDRESS == "true"){

 

echo "<B></B><BR>" . STORE_NAME . "<BR>" . STORE_NAME_ADDRESS . "<BR>" . STORE_CITY . "<P><B>Phone:</B><BR>" .STORE_NAME_PHONE . "<P>";

 

}

 

}

 

 

 

////

 

//Check login and file access

 

function tep_admin_check_login() {

 

global $PHP_SELF, $login_groups_id;

 

if (!tep_session_is_registered('login_id')) {

 

tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));

 

} else {

 

$filename = basename( $PHP_SELF );

 

if ($filename != FILENAME_DEFAULT && $filename != FILENAME_FORBIDEN && $filename != FILENAME_LOGOFF && $filename != FILENAME_ADMIN_ACCOUNT && $filename != FILENAME_POPUP_IMAGE && $filename != 'packingslip.php' && $filename != 'invoice.php') {

 

$db_file_query = tep_db_query("select admin_files_name from " . TABLE_ADMIN_FILES . " where FIND_IN_SET( '" . $login_groups_id . "', admin_groups_id) and admin_files_name = '" . $filename . "'");

 

if (!tep_db_num_rows($db_file_query)) {

 

tep_redirect(tep_href_link(FILENAME_FORBIDEN));

 

}

 

}

 

}

 

}

 

 

 

////

 

//Return 'true' or 'false' value to display boxes and files in index.php and column_left.php

 

function tep_admin_check_boxes($filename, $boxes='') {

 

global $login_groups_id;

 

 

 

$is_boxes = 1;

 

if ($boxes == 'sub_boxes') {

 

$is_boxes = 0;

 

}

 

$dbquery = tep_db_query("select admin_files_id from " . TABLE_ADMIN_FILES . " where FIND_IN_SET( '" . $login_groups_id . "', admin_groups_id) and admin_files_is_boxes = '" . $is_boxes . "' and admin_files_name = '" . $filename . "'");

 

 

 

$return_value = false;

 

if (tep_db_num_rows($dbquery)) {

 

$return_value = true;

 

}

 

return $return_value;

 

}

 

 

 

////

 

//Return files stored in box that can be accessed by user

 

function tep_admin_files_boxes($filename, $sub_box_name) {

 

global $login_groups_id;

 

$sub_boxes = '';

 

 

 

$dbquery = tep_db_query("select admin_files_name from " . TABLE_ADMIN_FILES . " where FIND_IN_SET( '" . $login_groups_id . "', admin_groups_id) and admin_files_is_boxes = '0' and admin_files_name = '" . $filename . "'");

 

if (tep_db_num_rows($dbquery)) {

 

$sub_boxes = '<a href="' . tep_href_link($filename) . '" class="menuBoxContentLink">' . $sub_box_name . '</a><br>';

 

}

 

return $sub_boxes;

 

}

 

 

 

////

 

//Get selected file for index.php

 

function tep_selected_file($filename) {

 

global $login_groups_id;

 

$randomize = FILENAME_ADMIN_ACCOUNT;

 

 

 

$dbquery = tep_db_query("select admin_files_id as boxes_id from " . TABLE_ADMIN_FILES . " where FIND_IN_SET( '" . $login_groups_id . "', admin_groups_id) and admin_files_is_boxes = '1' and admin_files_name = '" . $filename . "'");

 

if (tep_db_num_rows($dbquery)) {

 

$boxes_id = tep_db_fetch_array($dbquery);

 

$randomize_query = tep_db_query("select admin_files_name from " . TABLE_ADMIN_FILES . " where FIND_IN_SET( '" . $login_groups_id . "', admin_groups_id) and admin_files_is_boxes = '0' and admin_files_to_boxes = '" . $boxes_id['boxes_id'] . "'");

 

if (tep_db_num_rows($randomize_query)) {

 

$file_selected = tep_db_fetch_array($randomize_query);

 

$randomize = $file_selected['admin_files_name'];

 

}

 

}

 

return $randomize;

 

}

 

//Admin end

 

 

 

////

 

// Redirect to another page or site

 

function tep_redirect($url) {

 

 

 

global $logger;

 

 

 

 

 

 

 

if ( (strstr($url, "\n") != false) || (strstr($url, "\r") != false) ) {

 

 

 

tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false));

 

 

 

}

 

 

 

 

 

 

 

header('Location: ' . $url);

 

 

 

 

 

 

 

if (STORE_PAGE_PARSE_TIME == 'true') {

 

 

 

if (!is_object($logger)) $logger = new logger;

 

 

 

$logger->timer_stop();

 

 

 

}

 

 

 

 

 

 

 

exit;

 

 

 

}

 

 

 

 

 

 

 

////

 

// Parse the data used in the html tags to ensure the tags will not break

 

function tep_parse_input_field_data($data, $parse) {

 

return strtr(trim($data), $parse);

 

}

 

 

 

function tep_output_string($string, $translate = false, $protected = false) {

 

if ($protected == true) {

 

return htmlspecialchars($string);

 

} else {

 

if ($translate == false) {

 

return tep_parse_input_field_data($string, array('"' => '"'));

 

} else {

 

return tep_parse_input_field_data($string, $translate);

 

}

 

}

 

}

 

 

 

function tep_output_string_protected($string) {

 

return tep_output_string($string, false, true);

 

}

 

 

 

function tep_sanitize_string($string) {

 

$string = ereg_replace(' +', ' ', $string);

 

 

 

return preg_replace("/[<>]/", '_', $string);

 

}

 

 

 

function tep_customers_name($customers_id) {

 

$customers = tep_db_query("select customers_firstname, customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$customers_id . "'");

 

$customers_values = tep_db_fetch_array($customers);

 

 

 

return $customers_values['customers_firstname'] . ' ' . $customers_values['customers_lastname'];

 

}

 

 

 

function tep_get_path($current_category_id = '') {

 

global $cPath_array;

 

 

 

if ($current_category_id == '') {

 

$cPath_new = implode('_', $cPath_array);

 

} else {

 

if (sizeof($cPath_array) == 0) {

 

$cPath_new = $current_category_id;

 

} else {

 

$cPath_new = '';

 

$last_category_query = tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$cPath_array[(sizeof($cPath_array)-1)] . "'");

 

$last_category = tep_db_fetch_array($last_category_query);

 

 

 

$current_category_query = tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");

 

$current_category = tep_db_fetch_array($current_category_query);

 

 

 

if ($last_category['parent_id'] == $current_category['parent_id']) {

 

for ($i = 0, $n = sizeof($cPath_array) - 1; $i < $n; $i++) {

 

$cPath_new .= '_' . $cPath_array[$i];

 

}

 

} else {

 

for ($i = 0, $n = sizeof($cPath_array); $i < $n; $i++) {

 

$cPath_new .= '_' . $cPath_array[$i];

 

}

 

}

 

 

 

$cPath_new .= '_' . $current_category_id;

 

 

 

if (substr($cPath_new, 0, 1) == '_') {

 

$cPath_new = substr($cPath_new, 1);

 

}

 

}

 

}

 

 

 

return 'cPath=' . $cPath_new;

 

}

 

 

 

function tep_get_all_get_params($exclude_array = '') {

 

global $HTTP_GET_VARS;

 

 

 

if ($exclude_array == '') $exclude_array = array();

 

 

 

$get_url = '';

 

 

 

reset($HTTP_GET_VARS);

 

while (list($key, $value) = each($HTTP_GET_VARS)) {

 

if (($key != tep_session_name()) && ($key != 'error') && (!in_array($key, $exclude_array))) $get_url .= $key . '=' . $value . '&';

 

}

 

 

 

return $get_url;

 

}

 

 

 

function tep_date_long($raw_date) {

 

if ( ($raw_date == '0000-00-00 00:00:00') || ($raw_date == '') ) return false;

 

 

 

$year = (int)substr($raw_date, 0, 4);

 

$month = (int)substr($raw_date, 5, 2);

 

$day = (int)substr($raw_date, 8, 2);

 

$hour = (int)substr($raw_date, 11, 2);

 

$minute = (int)substr($raw_date, 14, 2);

 

$second = (int)substr($raw_date, 17, 2);

 

 

 

return strftime(DATE_FORMAT_LONG, mktime($hour, $minute, $second, $month, $day, $year));

 

}

 

 

 

////

 

// Output a raw date string in the selected locale date format

 

// $raw_date needs to be in this format: YYYY-MM-DD HH:MM:SS

 

// NOTE: Includes a workaround for dates before 01/01/1970 that fail on windows servers

 

function tep_date_short($raw_date) {

 

if ( ($raw_date == '0000-00-00 00:00:00') || ($raw_date == '') ) return false;

 

 

 

$year = substr($raw_date, 0, 4);

 

$month = (int)substr($raw_date, 5, 2);

 

$day = (int)substr($raw_date, 8, 2);

 

$hour = (int)substr($raw_date, 11, 2);

 

$minute = (int)substr($raw_date, 14, 2);

 

$second = (int)substr($raw_date, 17, 2);

 

 

 

if (@date('Y', mktime($hour, $minute, $second, $month, $day, $year)) == $year) {

 

return date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, $year));

 

} else {

 

return ereg_replace('2037' . '$', $year, date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, 2037)));

 

}

 

 

 

}

 

 

 

function tep_datetime_short($raw_datetime) {

 

if ( ($raw_datetime == '0000-00-00 00:00:00') || ($raw_datetime == '') ) return false;

 

 

 

$year = (int)substr($raw_datetime, 0, 4);

 

$month = (int)substr($raw_datetime, 5, 2);

 

$day = (int)substr($raw_datetime, 8, 2);

 

$hour = (int)substr($raw_datetime, 11, 2);

 

$minute = (int)substr($raw_datetime, 14, 2);

 

$second = (int)substr($raw_datetime, 17, 2);

 

 

 

return strftime(DATE_TIME_FORMAT, mktime($hour, $minute, $second, $month, $day, $year));

 

}

 

 

 

function tep_get_category_tree($parent_id = '0', $spacing = '', $exclude = '', $category_tree_array = '', $include_itself = false) {

 

global $languages_id;

 

 

 

if (!is_array($category_tree_array)) $category_tree_array = array();

 

if ( (sizeof($category_tree_array) < 1) && ($exclude != '0') ) $category_tree_array[] = array('id' => '0', 'text' => TEXT_TOP);

 

 

 

if ($include_itself) {

 

$category_query = tep_db_query("select cd.categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " cd where cd.language_id = '" . (int)$languages_id . "' and cd.categories_id = '" . (int)$parent_id . "'");

 

$category = tep_db_fetch_array($category_query);

 

$category_tree_array[] = array('id' => $parent_id, 'text' => $category['categories_name']);

 

}

 

 

 

$categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and c.parent_id = '" . (int)$parent_id . "' order by c.sort_order, cd.categories_name");

 

while ($categories = tep_db_fetch_array($categories_query)) {

 

if ($exclude != $categories['categories_id']) $category_tree_array[] = array('id' => $categories['categories_id'], 'text' => $spacing . $categories['categories_name']);

 

$category_tree_array = tep_get_category_tree($categories['categories_id'], $spacing . '   ', $exclude, $category_tree_array);

 

}

 

 

 

return $category_tree_array;

 

}

 

 

 

function tep_draw_products_pull_down($name, $parameters = '', $exclude = '') {

 

global $currencies, $languages_id;

 

 

 

if ($exclude == '') {

 

$exclude = array();

 

}

 

 

 

$select_string = '<select name="' . $name . '"';

 

 

 

if ($parameters) {

 

$select_string .= ' ' . $parameters;

 

}

 

 

 

$select_string .= '>';

 

 

 

$products_query = tep_db_query("select p.products_id, pd.products_name, p.products_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' order by products_name");

 

while ($products = tep_db_fetch_array($products_query)) {

 

if (!in_array($products['products_id'], $exclude)) {

 

$select_string .= '<option value="' . $products['products_id'] . '">' . $products['products_name'] . ' (' . $currencies->format($products['products_price']) . ')</option>';

 

}

 

}

 

 

 

$select_string .= '</select>';

 

 

 

return $select_string;

 

}

 

 

 

function tep_options_name($options_id) {

 

global $languages_id;

 

 

 

$options = tep_db_query("select products_options_name from " . TABLE_PRODUCTS_OPTIONS . " where products_options_id = '" . (int)$options_id . "' and language_id = '" . (int)$languages_id . "'");

 

$options_values = tep_db_fetch_array($options);

 

 

 

return $options_values['products_options_name'];

 

}

 

 

 

function tep_values_name($values_id) {

 

global $languages_id;

 

 

 

$values = tep_db_query("select products_options_values_name from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where products_options_values_id = '" . (int)$values_id . "' and language_id = '" . (int)$languages_id . "'");

 

$values_values = tep_db_fetch_array($values);

 

 

 

return $values_values['products_options_values_name'];

 

}

 

 

 

function tep_info_image($image, $alt, $width = '', $height = '') {

 

if (tep_not_null($image) && (file_exists(DIR_FS_CATALOG_IMAGES . $image)) ) {

 

$image = tep_image(DIR_WS_CATALOG_IMAGES . $image, $alt, $width, $height);

 

} else {

 

$image = TEXT_IMAGE_NONEXISTENT;

 

}

 

 

 

return $image;

 

}

 

 

 

function tep_break_string($string, $len, $break_char = '-') {

 

$l = 0;

 

$output = '';

 

for ($i=0, $n=strlen($string); $i<$n; $i++) {

 

$char = substr($string, $i, 1);

 

if ($char != ' ') {

 

$l++;

 

} else {

 

$l = 0;

 

}

 

if ($l > $len) {

 

$l = 1;

 

$output .= $break_char;

 

}

 

$output .= $char;

 

}

 

 

 

return $output;

 

}

 

 

 

function tep_get_country_name($country_id) {

 

$country_query = tep_db_query("select countries_name from " . TABLE_COUNTRIES . " where countries_id = '" . (int)$country_id . "'");

 

 

 

if (!tep_db_num_rows($country_query)) {

 

return $country_id;

 

} else {

 

$country = tep_db_fetch_array($country_query);

 

return $country['countries_name'];

 

}

 

}

 

 

 

function tep_get_zone_name($country_id, $zone_id, $default_zone) {

 

$zone_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country_id . "' and zone_id = '" . (int)$zone_id . "'");

 

if (tep_db_num_rows($zone_query)) {

 

$zone = tep_db_fetch_array($zone_query);

 

return $zone['zone_name'];

 

} else {

 

return $default_zone;

 

}

 

}

 

 

 

function tep_not_null($value) {

 

if (is_array($value)) {

 

if (sizeof($value) > 0) {

 

return true;

 

} else {

 

return false;

 

}

 

} else {

 

if ( (is_string($value) || is_int($value)) && ($value != '') && ($value != 'NULL') && (strlen(trim($value)) > 0)) {

 

return true;

 

} else {

 

return false;

 

}

 

}

 

}

 

 

 

function tep_browser_detect($component) {

 

global $HTTP_USER_AGENT;

 

 

 

return stristr($HTTP_USER_AGENT, $component);

 

}

 

 

 

function tep_tax_classes_pull_down($parameters, $selected = '') {

 

$select_string = '<select ' . $parameters . '>';

 

$classes_query = tep_db_query("select tax_class_id, tax_class_title from " . TABLE_TAX_CLASS . " order by tax_class_title");

 

while ($classes = tep_db_fetch_array($classes_query)) {

 

$select_string .= '<option value="' . $classes['tax_class_id'] . '"';

 

if ($selected == $classes['tax_class_id']) $select_string .= ' SELECTED';

 

$select_string .= '>' . $classes['tax_class_title'] . '</option>';

 

}

 

$select_string .= '</select>';

 

 

 

return $select_string;

 

}

 

 

 

function tep_geo_zones_pull_down($parameters, $selected = '') {

 

$select_string = '<select ' . $parameters . '>';

 

$zones_query = tep_db_query("select geo_zone_id, geo_zone_name from " . TABLE_GEO_ZONES . " order by geo_zone_name");

 

while ($zones = tep_db_fetch_array($zones_query)) {

 

$select_string .= '<option value="' . $zones['geo_zone_id'] . '"';

 

if ($selected == $zones['geo_zone_id']) $select_string .= ' SELECTED';

 

$select_string .= '>' . $zones['geo_zone_name'] . '</option>';

 

}

 

$select_string .= '</select>';

 

 

 

return $select_string;

 

}

 

 

 

function tep_get_geo_zone_name($geo_zone_id) {

 

$zones_query = tep_db_query("select geo_zone_name from " . TABLE_GEO_ZONES . " where geo_zone_id = '" . (int)$geo_zone_id . "'");

 

 

 

if (!tep_db_num_rows($zones_query)) {

 

$geo_zone_name = $geo_zone_id;

 

} else {

 

$zones = tep_db_fetch_array($zones_query);

 

$geo_zone_name = $zones['geo_zone_name'];

 

}

 

 

 

return $geo_zone_name;

 

}

 

 

 

function tep_address_format($address_format_id, $address, $html, $boln, $eoln) {

 

$address_format_query = tep_db_query("select address_format as format from " . TABLE_ADDRESS_FORMAT . " where address_format_id = '" . (int)$address_format_id . "'");

 

$address_format = tep_db_fetch_array($address_format_query);

 

 

 

$company = tep_output_string_protected($address['company']);

 

if (isset($address['firstname']) && tep_not_null($address['firstname'])) {

 

$firstname = tep_output_string_protected($address['firstname']);

 

$lastname = tep_output_string_protected($address['lastname']);

 

} elseif (isset($address['name']) && tep_not_null($address['name'])) {

 

$firstname = tep_output_string_protected($address['name']);

 

$lastname = '';

 

} else {

 

$firstname = '';

 

$lastname = '';

 

}

 

$street = tep_output_string_protected($address['street_address']);

 

$suburb = tep_output_string_protected($address['suburb']);

 

$city = tep_output_string_protected($address['city']);

 

$state = tep_output_string_protected($address['state']);

 

if (isset($address['country_id']) && tep_not_null($address['country_id'])) {

 

$country = tep_get_country_name($address['country_id']);

 

 

 

if (isset($address['zone_id']) && tep_not_null($address['zone_id'])) {

 

$state = tep_get_zone_code($address['country_id'], $address['zone_id'], $state);

 

}

 

} elseif (isset($address['country']) && tep_not_null($address['country'])) {

 

$country = tep_output_string_protected($address['country']);

 

} else {

 

$country = '';

 

}

 

$postcode = tep_output_string_protected($address['postcode']);

 

$zip = $postcode;

 

 

 

if ($html) {

 

// HTML Mode

 

$HR = '<hr>';

 

$hr = '<hr>';

 

if ( ($boln == '') && ($eoln == "\n") ) { // Values not specified, use rational defaults

 

$CR = '<br>';

 

$cr = '<br>';

 

$eoln = $cr;

 

} else { // Use values supplied

 

$CR = $eoln . $boln;

 

$cr = $CR;

 

}

 

} else {

 

// Text Mode

 

$CR = $eoln;

 

$cr = $CR;

 

$HR = '----------------------------------------';

 

$hr = '----------------------------------------';

 

}

 

 

 

$statecomma = '';

 

$streets = $street;

 

if ($suburb != '') $streets = $street . $cr . $suburb;

 

if ($country == '') $country = tep_output_string_protected($address['country']);

 

if ($state != '') $statecomma = $state . ', ';

 

 

 

$fmt = $address_format['format'];

 

eval("\$address = \"$fmt\";");

 

 

 

if ( (ACCOUNT_COMPANY == 'true') && (tep_not_null($company)) ) {

 

$address = $company . $cr . $address;

 

}

 

 

 

return $address;

 

}

 

 

 

////////////////////////////////////////////////////////////////////////////////////////////////

 

//

 

// Function : tep_get_zone_code

 

//

 

// Arguments : country country code string

 

// zone state/province zone_id

 

// def_state default string if zone==0

 

//

 

// Return : state_prov_code state/province code

 

//

 

// Description : Function to retrieve the state/province code (as in FL for Florida etc)

 

//

 

////////////////////////////////////////////////////////////////////////////////////////////////

 

function tep_get_zone_code($country, $zone, $def_state) {

 

 

 

$state_prov_query = tep_db_query("select zone_code from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and zone_id = '" . (int)$zone . "'");

 

 

 

if (!tep_db_num_rows($state_prov_query)) {

 

$state_prov_code = $def_state;

 

}

 

else {

 

$state_prov_values = tep_db_fetch_array($state_prov_query);

 

$state_prov_code = $state_prov_values['zone_code'];

 

}

 

 

 

return $state_prov_code;

 

}

 

 

 

function tep_get_uprid($prid, $params) {

 

$uprid = $prid;

 

if ( (is_array($params)) && (!strstr($prid, '{')) ) {

 

while (list($option, $value) = each($params)) {

 

$uprid = $uprid . '{' . $option . '}' . $value;

 

}

 

}

 

 

 

return $uprid;

 

}

 

 

 

function tep_get_prid($uprid) {

 

$pieces = explode('{', $uprid);

 

 

 

return $pieces[0];

 

}

 

 

 

function tep_get_languages() {

 

$languages_query = tep_db_query("select languages_id, name, code, image, directory from " . TABLE_LANGUAGES . " order by sort_order");

 

while ($languages = tep_db_fetch_array($languages_query)) {

 

$languages_array[] = array('id' => $languages['languages_id'],

 

'name' => $languages['name'],

 

'code' => $languages['code'],

 

'image' => $languages['image'],

 

'directory' => $languages['directory']);

 

}

 

 

 

return $languages_array;

 

}

 

 

 

function tep_get_category_name($category_id, $language_id) {

 

$category_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$category_id . "' and language_id = '" . (int)$language_id . "'");

 

$category = tep_db_fetch_array($category_query);

 

 

 

return $category['categories_name'];

 

}

 

 

 

function tep_get_orders_status_name($orders_status_id, $language_id = '') {

 

global $languages_id;

 

 

 

if (!$language_id) $language_id = $languages_id;

 

$orders_status_query = tep_db_query("select orders_status_name from " . TABLE_ORDERS_STATUS . " where orders_status_id = '" . (int)$orders_status_id . "' and language_id = '" . (int)$language_id . "'");

 

$orders_status = tep_db_fetch_array($orders_status_query);

 

 

 

return $orders_status['orders_status_name'];

 

}

 

 

 

function tep_get_orders_status() {

 

global $languages_id;

 

 

 

$orders_status_array = array();

 

$orders_status_query = tep_db_query("select orders_status_id, orders_status_name from " . TABLE_ORDERS_STATUS . " where language_id = '" . (int)$languages_id . "' order by orders_status_id");

 

while ($orders_status = tep_db_fetch_array($orders_status_query)) {

 

$orders_status_array[] = array('id' => $orders_status['orders_status_id'],

 

'text' => $orders_status['orders_status_name']);

 

}

 

 

 

return $orders_status_array;

 

}

 

 

 

function tep_get_products_name($product_id, $language_id = 0) {

 

global $languages_id;

 

 

 

if ($language_id == 0) $language_id = $languages_id;

 

$product_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'");

 

$product = tep_db_fetch_array($product_query);

 

 

 

return $product['products_name'];

 

}

 

 

 

function tep_get_products_description($product_id, $language_id) {

 

$product_query = tep_db_query("select products_description from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'");

 

$product = tep_db_fetch_array($product_query);

 

 

 

return $product['products_description'];

 

}

 

 

 

function tep_get_products_url($product_id, $language_id) {

 

$product_query = tep_db_query("select products_url from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'");

 

$product = tep_db_fetch_array($product_query);

 

 

 

return $product['products_url'];

 

}

 

 

 

////

 

// Return the manufacturers URL in the needed language

 

// TABLES: manufacturers_info

 

function tep_get_manufacturer_url($manufacturer_id, $language_id) {

 

$manufacturer_query = tep_db_query("select manufacturers_url from " . TABLE_MANUFACTURERS_INFO . " where manufacturers_id = '" . (int)$manufacturer_id . "' and languages_id = '" . (int)$language_id . "'");

 

$manufacturer = tep_db_fetch_array($manufacturer_query);

 

 

 

return $manufacturer['manufacturers_url'];

 

}

 

 

 

////

 

// Wrapper for class_exists() function

 

// This function is not available in all PHP versions so we test it before using it.

 

function tep_class_exists($class_name) {

 

if (function_exists('class_exists')) {

 

return class_exists($class_name);

 

} else {

 

return true;

 

}

 

}

 

 

 

////

 

// Count how many products exist in a category

 

// TABLES: products, products_to_categories, categories

 

function tep_products_in_category_count($categories_id, $include_deactivated = false) {

 

$products_count = 0;

 

 

 

if ($include_deactivated) {

 

$products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$categories_id . "'");

 

} else {

 

$products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = p2c.products_id and p.products_status = '1' and p2c.categories_id = '" . (int)$categories_id . "'");

 

}

 

 

 

$products = tep_db_fetch_array($products_query);

 

 

 

$products_count += $products['total'];

 

 

 

$childs_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$categories_id . "'");

 

if (tep_db_num_rows($childs_query)) {

 

while ($childs = tep_db_fetch_array($childs_query)) {

 

$products_count += tep_products_in_category_count($childs['categories_id'], $include_deactivated);

 

}

 

}

 

 

 

return $products_count;

 

}

 

 

 

////

 

// Count how many subcategories exist in a category

 

// TABLES: categories

 

function tep_childs_in_category_count($categories_id) {

 

$categories_count = 0;

 

 

 

$categories_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$categories_id . "'");

 

while ($categories = tep_db_fetch_array($categories_query)) {

 

$categories_count++;

 

$categories_count += tep_childs_in_category_count($categories['categories_id']);

 

}

 

 

 

return $categories_count;

 

}

 

 

 

////

 

// Returns an array with countries

 

// TABLES: countries

 

function tep_get_countries($default = '') {

 

$countries_array = array();

 

if ($default) {

 

$countries_array[] = array('id' => '',

 

'text' => $default);

 

}

 

$countries_query = tep_db_query("select countries_id, countries_name from " . TABLE_COUNTRIES . " order by countries_name");

 

while ($countries = tep_db_fetch_array($countries_query)) {

 

$countries_array[] = array('id' => $countries['countries_id'],

 

'text' => $countries['countries_name']);

 

}

 

 

 

return $countries_array;

 

}

 

 

 

////

 

// return an array with country zones

 

function tep_get_country_zones($country_id) {

 

$zones_array = array();

 

$zones_query = tep_db_query("select zone_id, zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country_id . "' order by zone_name");

 

while ($zones = tep_db_fetch_array($zones_query)) {

 

$zones_array[] = array('id' => $zones['zone_id'],

 

'text' => $zones['zone_name']);

 

}

 

 

 

return $zones_array;

 

}

 

 

 

function tep_prepare_country_zones_pull_down($country_id = '') {

 

// preset the width of the drop-down for Netscape

 

$pre = '';

 

if ( (!tep_browser_detect('MSIE')) && (tep_browser_detect('Mozilla/4')) ) {

 

for ($i=0; $i<45; $i++) $pre .= ' ';

 

}

 

 

 

$zones = tep_get_country_zones($country_id);

 

 

 

if (sizeof($zones) > 0) {

 

$zones_select = array(array('id' => '', 'text' => PLEASE_SELECT));

 

$zones = array_merge($zones_select, $zones);

 

} else {

 

$zones = array(array('id' => '', 'text' => TYPE_BELOW));

 

// create dummy options for Netscape to preset the height of the drop-down

 

if ( (!tep_browser_detect('MSIE')) && (tep_browser_detect('Mozilla/4')) ) {

 

for ($i=0; $i<9; $i++) {

 

$zones[] = array('id' => '', 'text' => $pre);

 

}

 

}

 

}

 

 

 

return $zones;

 

}

 

 

 

////

 

// Get list of address_format_id's

 

function tep_get_address_formats() {

 

$address_format_query = tep_db_query("select address_format_id from " . TABLE_ADDRESS_FORMAT . " order by address_format_id");

 

$address_format_array = array();

 

while ($address_format_values = tep_db_fetch_array($address_format_query)) {

 

$address_format_array[] = array('id' => $address_format_values['address_format_id'],

 

'text' => $address_format_values['address_format_id']);

 

}

 

return $address_format_array;

 

}

 

// ** GOOGLE CHECKOUT**

 

// Function to store configuration values(shipping options) using

 

// checkboxes in the Administration Tool

 

 

 

function gc_cfg_select_multioption($select_array, $key_value, $key = '') {

 

 

 

for ($i=0; $i<sizeof($select_array); $i++) {

 

$name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value');

 

$string .= '<br><input type="checkbox" name="' . $name . '" value="' . $select_array[$i] . '"';

 

$key_values = explode( ", ", $key_value);

 

if ( in_array($select_array[$i], $key_values) ) $string .= ' CHECKED';

 

$string .= '>' . $select_array[$i];

 

}

 

$string .= '<input type="hidden" name="' . $name . '" value="--none--">';

 

return $string;

 

}

 

 

 

 

 

// Custom Function to store configuration values (shipping default values)

 

function gc_compare($key, $data)

 

{

 

foreach($data as $value) {

 

list($key2, $valor) = explode("_VD:", $value);

 

if($key == $key2)

 

return $valor;

 

}

 

return '0';

 

}

 

// perhaps this function must be moved to googlecheckout class, is not too general

 

function gc_cfg_select_shipping($select_array, $key_value, $key = '') {

 

 

 

//add ropu

 

// i get all the shipping methods available!

 

global $PHP_SELF,$language,$module_type;

 

 

 

$module_directory = DIR_FS_CATALOG_MODULES . 'shipping/';

 

 

 

$file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));

 

$directory_array = array();

 

if ($dir = @dir($module_directory)) {

 

while ($file = $dir->read()) {

 

 

 

if (!is_dir($module_directory . $file)) {

 

if (substr($file, strrpos($file, '.')) == $file_extension) {

 

$directory_array[] = $file;

 

}

 

}

 

}

 

sort($directory_array);

 

$dir->close();

 

}

 

 

 

$installed_modules = array();

 

$select_array = array();

 

for ($i=0, $n=sizeof($directory_array); $i<$n; $i++) {

 

$file = $directory_array[$i];

 

 

 

include_once(DIR_FS_CATALOG_LANGUAGES . $language . '/modules/shipping/' . $file);

 

include_once($module_directory . $file);

 

 

 

$class = substr($file, 0, strrpos($file, '.'));

 

if (tep_class_exists($class)) {

 

$module = new $class;

 

//echo $class;

 

if ($module->check() > 0) {

 

 

 

$select_array[$module->code] = array('code' => $module->code,

 

'title' => $module->title,

 

'description' => $module->description,

 

'status' => $module->check());

 

}

 

}

 

}

 

require_once (DIR_FS_CATALOG . 'includes/modules/payment/googlecheckout.php');

 

$googlepayment = new googlecheckout();

 

 

 

$ship_calcualtion_mode = (count(array_keys($select_array)) > count(array_intersect($googlepayment->shipping_support, array_keys($select_array)))) ? true : false;

 

if(!$ship_calcualtion_mode) {

 

return '<br/><i>'. GOOGLECHECKOUT_TABLE_NO_MERCHANT_CALCULATION . '</i>';

 

}

 

 

 

$javascript = "<script language='javascript'>

 

 

 

function VD_blur(valor, code, hid_id){

 

var hid = document.getElementById(hid_id);

 

valor.value = isNaN(parseFloat(valor.value))?'':parseFloat(valor.value);

 

if(valor.value != ''){

 

hid.value = code + '_VD:' + valor.value;

 

// valor.value = valor.value;

 

// hid.disabled = false;

 

}else {

 

hid.value = code + '_VD:0';

 

valor.value = '0';

 

}

 

 

 

 

 

}

 

 

 

function VD_focus(valor, code, hid_id){

 

var hid = document.getElementById(hid_id);

 

// valor.value = valor.value.substr((code + '_VD:').length, valor.value.length);

 

hid.value = valor.value.substr((code + '_VD:').length, valor.value.length);

 

}

 

 

 

</script>";

 

 

 

 

 

$string .= $javascript;

 

 

 

$key_values = explode( ", ", $key_value);

 

 

 

foreach($select_array as $i => $value){

 

if ( $select_array[$i]['status'] && !in_array($select_array[$i]['code'], $googlepayment->shipping_support) ) {

 

$name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value');

 

$string .= "<br><b>" . $select_array[$i]['title'] . "</b>"."\n";

 

if (is_array($googlepayment->mc_shipping_methods[$select_array[$i]['code']]['domestic_types'])) {

 

foreach($googlepayment->mc_shipping_methods[$select_array[$i]['code']]['domestic_types'] as $method => $method_name) {

 

$string .= '<br>';

 

 

 

// default value

 

$value = gc_compare($select_array[$i]['code'] . $method, $key_values);

 

$string .= '<input size="5" onBlur="VD_blur(this, \'' . $select_array[$i]['code']. $method . '\', \'hid_' . $select_array[$i]['code'] . $method . '\' );" onFocus="VD_focus(this, \'' . $select_array[$i]['code'] . $method . '\' , \'hid_' . $select_array[$i]['code'] . $method .'\');" type="text" name="no_use' . $method . '" value="' . $value . '"';

 

$string .= '>';

 

$string .= '<input size="10" id="hid_' . $select_array[$i]['code'] . $method . '" type="hidden" name="' . $name . '" value="' . $select_array[$i]['code'] . $method . '_VD:' . $value . '"';

 

$string .= '>'."\n";

 

$string .= $method_name;

 

}

 

}

 

}

 

}

 

return $string;

 

}

 

 

 

// ** END GOOGLE CHECKOUT **

 

 

 

////

 

// Alias function for Store configuration values in the Administration Tool

 

function tep_cfg_pull_down_country_list($country_id) {

 

return tep_draw_pull_down_menu('configuration_value', tep_get_countries(), $country_id);

 

}

 

 

 

function tep_cfg_pull_down_zone_list($zone_id) {

 

return tep_draw_pull_down_menu('configuration_value', tep_get_country_zones(STORE_COUNTRY), $zone_id);

 

}

 

 

 

function tep_cfg_pull_down_tax_classes($tax_class_id, $key = '') {

 

$name = (($key) ? 'configuration[' . $key . ']' : 'configuration_value');

 

 

 

$tax_class_array = array(array('id' => '0', 'text' => TEXT_NONE));

 

$tax_class_query = tep_db_query("select tax_class_id, tax_class_title from " . TABLE_TAX_CLASS . " order by tax_class_title");

 

while ($tax_class = tep_db_fetch_array($tax_class_query)) {

 

$tax_class_array[] = array('id' => $tax_class['tax_class_id'],

 

'text' => $tax_class['tax_class_title']);

 

}

 

 

 

return tep_draw_pull_down_menu($name, $tax_class_array, $tax_class_id);

 

}

 

 

 

////

 

// Function to read in text area in admin

 

function tep_cfg_textarea($text) {

 

return tep_draw_textarea_field('configuration_value', false, 35, 5, $text);

 

}

 

 

 

function tep_cfg_get_zone_name($zone_id) {

 

$zone_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_id = '" . (int)$zone_id . "'");

 

 

 

if (!tep_db_num_rows($zone_query)) {

 

return $zone_id;

 

} else {

 

$zone = tep_db_fetch_array($zone_query);

 

return $zone['zone_name'];

 

}

 

}

 

 

 

////

 

// Sets the status of a banner

 

function tep_set_banner_status($banners_id, $status) {

 

if ($status == '1') {

 

return tep_db_query("update " . TABLE_BANNERS . " set status = '1', expires_impressions = NULL, expires_date = NULL, date_status_change = NULL where banners_id = '" . $banners_id . "'");

 

} elseif ($status == '0') {

 

return tep_db_query("update " . TABLE_BANNERS . " set status = '0', date_status_change = now() where banners_id = '" . $banners_id . "'");

 

} else {

 

return -1;

 

}

 

}

 

 

 

////

 

// Sets the status of a product

 

function tep_set_product_status($products_id, $status) {

 

if ($status == '1') {

 

return tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '1', products_last_modified = now() where products_id = '" . (int)$products_id . "'");

 

} elseif ($status == '0') {

 

return tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0', products_last_modified = now() where products_id = '" . (int)$products_id . "'");

 

} else {

 

return -1;

 

}

 

}

 

 

 

////

 

// Sets the status of a product on special

 

function tep_set_specials_status($specials_id, $status) {

 

if ($status == '1') {

 

return tep_db_query("update " . TABLE_SPECIALS . " set status = '1', expires_date = NULL, date_status_change = NULL where specials_id = '" . (int)$specials_id . "'");

 

} elseif ($status == '0') {

 

return tep_db_query("update " . TABLE_SPECIALS . " set status = '0', date_status_change = now() where specials_id = '" . (int)$specials_id . "'");

 

} else {

 

return -1;

 

}

 

}

 

 

 

////

 

// Sets timeout for the current script.

 

// Cant be used in safe mode.

 

function tep_set_time_limit($limit) {

 

if (!get_cfg_var('safe_mode')) {

 

set_time_limit($limit);

 

}

 

}

 

 

 

////

 

// Alias function for Store configuration values in the Administration Tool

 

function tep_cfg_select_option($select_array, $key_value, $key = '') {

 

$string = '';

 

 

 

for ($i=0, $n=sizeof($select_array); $i<$n; $i++) {

 

$name = ((tep_not_null($key)) ? 'configuration[' . $key . ']' : 'configuration_value');

 

 

 

$string .= '<br><input type="radio" name="' . $name . '" value="' . $select_array[$i] . '"';

 

 

 

if ($key_value == $select_array[$i]) $string .= ' CHECKED';

 

 

 

$string .= '> ' . $select_array[$i];

 

}

 

 

 

return $string;

 

}

 

 

 

////

 

// Alias function for module configuration keys

 

function tep_mod_select_option($select_array, $key_name, $key_value) {

 

reset($select_array);

 

while (list($key, $value) = each($select_array)) {

 

if (is_int($key)) $key = $value;

 

$string .= '<br><input type="radio" name="configuration[' . $key_name . ']" value="' . $key . '"';

 

if ($key_value == $key) $string .= ' CHECKED';

 

$string .= '> ' . $value;

 

}

 

 

 

return $string;

 

}

 

 

 

////

 

// Retreive server information

 

function tep_get_system_information() {

 

global $HTTP_SERVER_VARS;

 

 

 

$db_query = tep_db_query("select now() as datetime");

 

$db = tep_db_fetch_array($db_query);

 

 

 

list($system, $host, $kernel) = preg_split('/[\s,]+/', @exec('uname -a'), 5);

 

 

 

return array('date' => tep_datetime_short(date('Y-m-d H:i:s')),

 

'system' => $system,

 

'kernel' => $kernel,

 

'host' => $host,

 

'ip' => gethostbyname($host),

 

'uptime' => @exec('uptime'),

 

'http_server' => $HTTP_SERVER_VARS['SERVER_SOFTWARE'],

 

'php' => PHP_VERSION,

 

'zend' => (function_exists('zend_version') ? zend_version() : ''),

 

'db_server' => DB_SERVER,

 

'db_ip' => gethostbyname(DB_SERVER),

 

'db_version' => 'MySQL ' . (function_exists('mysql_get_server_info') ? mysql_get_server_info() : ''),

 

'db_date' => tep_datetime_short($db['datetime']));

 

}

 

 

 

function tep_generate_category_path($id, $from = 'category', $categories_array = '', $index = 0) {

 

global $languages_id;

 

 

 

if (!is_array($categories_array)) $categories_array = array();

 

 

 

if ($from == 'product') {

 

$categories_query = tep_db_query("select categories_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$id . "'");

 

while ($categories = tep_db_fetch_array($categories_query)) {

 

if ($categories['categories_id'] == '0') {

 

$categories_array[$index][] = array('id' => '0', 'text' => TEXT_TOP);

 

} else {

 

$category_query = tep_db_query("select cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$categories['categories_id'] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");

 

$category = tep_db_fetch_array($category_query);

 

$categories_array[$index][] = array('id' => $categories['categories_id'], 'text' => $category['categories_name']);

 

if ( (tep_not_null($category['parent_id'])) && ($category['parent_id'] != '0') ) $categories_array = tep_generate_category_path($category['parent_id'], 'category', $categories_array, $index);

 

$categories_array[$index] = array_reverse($categories_array[$index]);

 

}

 

$index++;

 

}

 

} elseif ($from == 'category') {

 

$category_query = tep_db_query("select cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");

 

$category = tep_db_fetch_array($category_query);

 

$categories_array[$index][] = array('id' => $id, 'text' => $category['categories_name']);

 

if ( (tep_not_null($category['parent_id'])) && ($category['parent_id'] != '0') ) $categories_array = tep_generate_category_path($category['parent_id'], 'category', $categories_array, $index);

 

}

 

 

 

return $categories_array;

 

}

 

 

 

function tep_output_generated_category_path($id, $from = 'category') {

 

$calculated_category_path_string = '';

 

$calculated_category_path = tep_generate_category_path($id, $from);

 

for ($i=0, $n=sizeof($calculated_category_path); $i<$n; $i++) {

 

for ($j=0, $k=sizeof($calculated_category_path[$i]); $j<$k; $j++) {

 

$calculated_category_path_string .= $calculated_category_path[$i][$j]['text'] . ' > ';

 

}

 

$calculated_category_path_string = substr($calculated_category_path_string, 0, -16) . '<br>';

 

}

 

$calculated_category_path_string = substr($calculated_category_path_string, 0, -4);

 

 

 

if (strlen($calculated_category_path_string) < 1) $calculated_category_path_string = TEXT_TOP;

 

 

 

return $calculated_category_path_string;

 

}

 

 

 

function tep_get_generated_category_path_ids($id, $from = 'category') {

 

$calculated_category_path_string = '';

 

$calculated_category_path = tep_generate_category_path($id, $from);

 

for ($i=0, $n=sizeof($calculated_category_path); $i<$n; $i++) {

 

for ($j=0, $k=sizeof($calculated_category_path[$i]); $j<$k; $j++) {

 

$calculated_category_path_string .= $calculated_category_path[$i][$j]['id'] . '_';

 

}

 

$calculated_category_path_string = substr($calculated_category_path_string, 0, -1) . '<br>';

 

}

 

$calculated_category_path_string = substr($calculated_category_path_string, 0, -4);

 

 

 

if (strlen($calculated_category_path_string) < 1) $calculated_category_path_string = TEXT_TOP;

 

 

 

return $calculated_category_path_string;

 

}

 

 

 

function tep_remove_category($category_id) {

 

$category_image_query = tep_db_query("select categories_image from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$category_id . "'");

 

$category_image = tep_db_fetch_array($category_image_query);

 

 

 

$duplicate_image_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where categories_image = '" . tep_db_input($category_image['categories_image']) . "'");

 

$duplicate_image = tep_db_fetch_array($duplicate_image_query);

 

 

 

if ($duplicate_image['total'] < 2) {

 

if (file_exists(DIR_FS_CATALOG_IMAGES . $category_image['categories_image'])) {

 

@unlink(DIR_FS_CATALOG_IMAGES . $category_image['categories_image']);

 

}

 

}

 

 

 

tep_db_query("delete from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$category_id . "'");

 

tep_db_query("delete from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$category_id . "'");

 

tep_db_query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$category_id . "'");

 

 

 

if (USE_CACHE == 'true') {

 

tep_reset_cache_block('categories');

 

tep_reset_cache_block('also_purchased');

 

}

 

}

 

 

 

function tep_remove_product($product_id) {

 

$product_image_query = tep_db_query("select products_image from " . TABLE_PRODUCTS . " where products_id = '" . (int)$product_id . "'");

 

$product_image = tep_db_fetch_array($product_image_query);

 

 

 

$duplicate_image_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " where products_image = '" . tep_db_input($product_image['products_image']) . "'");

 

$duplicate_image = tep_db_fetch_array($duplicate_image_query);

 

 

 

if ($duplicate_image['total'] < 2) {

 

if (file_exists(DIR_FS_CATALOG_IMAGES . $product_image['products_image'])) {

 

@unlink(DIR_FS_CATALOG_IMAGES . $product_image['products_image']);

 

}

 

}

 

 

 

tep_db_query("delete from " . TABLE_SPECIALS . " where products_id = '" . (int)$product_id . "'");

 

tep_db_query("delete from " . TABLE_PRODUCTS . " where products_id = '" . (int)$product_id . "'");

 

tep_db_query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$product_id . "'");

 

tep_db_query("delete from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "'");

 

tep_db_query("delete from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int)$product_id . "'");

 

tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where products_id = '" . (int)$product_id . "'");

 

tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where products_id = '" . (int)$product_id . "'");

 

 

 

$product_reviews_query = tep_db_query("select reviews_id from " . TABLE_REVIEWS . " where products_id = '" . (int)$product_id . "'");

 

while ($product_reviews = tep_db_fetch_array($product_reviews_query)) {

 

tep_db_query("delete from " . TABLE_REVIEWS_DESCRIPTION . " where reviews_id = '" . (int)$product_reviews['reviews_id'] . "'");

 

}

 

tep_db_query("delete from " . TABLE_REVIEWS . " where products_id = '" . (int)$product_id . "'");

 

 

 

if (USE_CACHE == 'true') {

 

tep_reset_cache_block('categories');

 

tep_reset_cache_block('also_purchased');

 

}

 

}

 

 

 

function tep_remove_order($order_id, $restock = false) {

 

if ($restock == 'on') {

 

$order_query = tep_db_query("select products_id, products_quantity from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$order_id . "'");

 

while ($order = tep_db_fetch_array($order_query)) {

 

tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = products_quantity + " . $order['products_quantity'] . ", products_ordered = products_ordered - " . $order['products_quantity'] . " where products_id = '" . (int)$order['products_id'] . "'");

 

}

 

}

 

 

 

tep_db_query("delete from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'");

 

tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$order_id . "'");

 

tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " where orders_id = '" . (int)$order_id . "'");

 

tep_db_query("delete from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" . (int)$order_id . "'");

 

tep_db_query("delete from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$order_id . "'");

 

}

 

 

 

function tep_reset_cache_block($cache_block) {

 

global $cache_blocks;

 

 

 

for ($i=0, $n=sizeof($cache_blocks); $i<$n; $i++) {

 

if ($cache_blocks[$i]['code'] == $cache_block) {

 

if ($cache_blocks[$i]['multiple']) {

 

if ($dir = @opendir(DIR_FS_CACHE)) {

 

while ($cache_file = readdir($dir)) {

 

$cached_file = $cache_blocks[$i]['file'];

 

$languages = tep_get_languages();

 

for ($j=0, $k=sizeof($languages); $j<$k; $j++) {

 

$cached_file_unlink = ereg_replace('-language', '-' . $languages[$j]['directory'], $cached_file);

 

if (ereg('^' . $cached_file_unlink, $cache_file)) {

 

@unlink(DIR_FS_CACHE . $cache_file);

 

}

 

}

 

}

 

closedir($dir);

 

}

 

} else {

 

$cached_file = $cache_blocks[$i]['file'];

 

$languages = tep_get_languages();

 

for ($i=0, $n=sizeof($languages); $i<$n; $i++) {

 

$cached_file = ereg_replace('-language', '-' . $languages[$i]['directory'], $cached_file);

 

@unlink(DIR_FS_CACHE . $cached_file);

 

}

 

}

 

break;

 

}

 

}

 

}

 

 

 

function tep_get_file_permissions($mode) {

 

// determine type

 

if ( ($mode & 0xC000) == 0xC000) { // unix domain socket

 

$type = 's';

 

} elseif ( ($mode & 0x4000) == 0x4000) { // directory

 

$type = 'd';

 

} elseif ( ($mode & 0xA000) == 0xA000) { // symbolic link

 

$type = 'l';

 

} elseif ( ($mode & 0x8000) == 0x8000) { // regular file

 

$type = '-';

 

} elseif ( ($mode & 0x6000) == 0x6000) { //bBlock special file

 

$type = 'b';

 

} elseif ( ($mode & 0x2000) == 0x2000) { // character special file

 

$type = 'c';

 

} elseif ( ($mode & 0x1000) == 0x1000) { // named pipe

 

$type = 'p';

 

} else { // unknown

 

$type = '?';

 

}

 

 

 

// determine permissions

 

$owner['read'] = ($mode & 00400) ? 'r' : '-';

 

$owner['write'] = ($mode & 00200) ? 'w' : '-';

 

$owner['execute'] = ($mode & 00100) ? 'x' : '-';

 

$group['read'] = ($mode & 00040) ? 'r' : '-';

 

$group['write'] = ($mode & 00020) ? 'w' : '-';

 

$group['execute'] = ($mode & 00010) ? 'x' : '-';

 

$world['read'] = ($mode & 00004) ? 'r' : '-';

 

$world['write'] = ($mode & 00002) ? 'w' : '-';

 

$world['execute'] = ($mode & 00001) ? 'x' : '-';

 

 

 

// adjust for SUID, SGID and sticky bit

 

if ($mode & 0x800 ) $owner['execute'] = ($owner['execute'] == 'x') ? 's' : 'S';

 

if ($mode & 0x400 ) $group['execute'] = ($group['execute'] == 'x') ? 's' : 'S';

 

if ($mode & 0x200 ) $world['execute'] = ($world['execute'] == 'x') ? 't' : 'T';

 

 

 

return $type .

 

$owner['read'] . $owner['write'] . $owner['execute'] .

 

$group['read'] . $group['write'] . $group['execute'] .

 

$world['read'] . $world['write'] . $world['execute'];

 

}

 

 

 

function tep_remove($source) {

 

global $messageStack, $tep_remove_error;

 

 

 

if (isset($tep_remove_error)) $tep_remove_error = false;

 

 

 

if (is_dir($source)) {

 

$dir = dir($source);

 

while ($file = $dir->read()) {

 

if ( ($file != '.') && ($file != '..') ) {

 

if (is_writeable($source . '/' . $file)) {

 

tep_remove($source . '/' . $file);

 

} else {

 

$messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source . '/' . $file), 'error');

 

$tep_remove_error = true;

 

}

 

}

 

}

 

$dir->close();

 

 

 

if (is_writeable($source)) {

 

rmdir($source);

 

} else {

 

$messageStack->add(sprintf(ERROR_DIRECTORY_NOT_REMOVEABLE, $source), 'error');

 

$tep_remove_error = true;

 

}

 

} else {

 

if (is_writeable($source)) {

 

unlink($source);

 

} else {

 

$messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source), 'error');

 

$tep_remove_error = true;

 

}

 

}

 

}

 

 

 

////

 

// Output the tax percentage with optional padded decimals

 

function tep_display_tax_value($value, $padding = TAX_DECIMAL_PLACES) {

 

if (strpos($value, '.')) {

 

$loop = true;

 

while ($loop) {

 

if (substr($value, -1) == '0') {

 

$value = substr($value, 0, -1);

 

} else {

 

$loop = false;

 

if (substr($value, -1) == '.') {

 

$value = substr($value, 0, -1);

 

}

 

}

 

}

 

}

 

 

 

if ($padding > 0) {

 

if ($decimal_pos = strpos($value, '.')) {

 

$decimals = strlen(substr($value, ($decimal_pos+1)));

 

for ($i=$decimals; $i<$padding; $i++) {

 

$value .= '0';

 

}

 

} else {

 

$value .= '.';

 

for ($i=0; $i<$padding; $i++) {

 

$value .= '0';

 

}

 

}

 

}

 

 

 

return $value;

 

}

 

 

 

function tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address) {

 

if (SEND_EMAILS != 'true') return false;

 

 

 

// Instantiate a new mail object

 

$message = new email(array('X-Mailer: osCommerce'));

 

 

 

// Build the text version

 

$text = strip_tags($email_text);

 

if (EMAIL_USE_HTML == 'true') {

 

$message->add_html($email_text, $text);

 

} else {

 

$message->add_text($text);

 

}

 

 

 

// Send message

 

$message->build_message();

 

$message->send($to_name, $to_email_address, $from_email_name, $from_email_address, $email_subject);

 

}

 

 

 

function tep_get_tax_class_title($tax_class_id) {

 

if ($tax_class_id == '0') {

 

return TEXT_NONE;

 

} else {

 

$classes_query = tep_db_query("select tax_class_title from " . TABLE_TAX_CLASS . " where tax_class_id = '" . (int)$tax_class_id . "'");

 

$classes = tep_db_fetch_array($classes_query);

 

 

 

return $classes['tax_class_title'];

 

}

 

}

 

 

 

function tep_banner_image_extension() {

 

if (function_exists('imagetypes')) {

 

if (imagetypes() & IMG_PNG) {

 

return 'png';

 

} elseif (imagetypes() & IMG_JPG) {

 

return 'jpg';

 

} elseif (imagetypes() & IMG_GIF) {

 

return 'gif';

 

}

 

} elseif (function_exists('imagecreatefrompng') && function_exists('imagepng')) {

 

return 'png';

 

} elseif (function_exists('imagecreatefromjpeg') && function_exists('imagejpeg')) {

 

return 'jpg';

 

} elseif (function_exists('imagecreatefromgif') && function_exists('imagegif')) {

 

return 'gif';

 

}

 

 

 

return false;

 

}

 

 

 

////

 

// Wrapper function for round() for php3 compatibility

 

function tep_round($value, $precision) {

 

if (PHP_VERSION < 4) {

 

$exp = pow(10, $precision);

 

return round($value * $exp) / $exp;

 

} else {

 

return round($value, $precision);

 

}

 

}

 

 

 

////

 

// Add tax to a products price

 

function tep_add_tax($price, $tax) {

 

global $currencies;

 

 

 

if (DISPLAY_PRICE_WITH_TAX == 'true') {

 

return tep_round($price, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']) + tep_calculate_tax($price, $tax);

 

} else {

 

return tep_round($price, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);

 

}

 

}

 

 

 

// Calculates Tax rounding the result

 

function tep_calculate_tax($price, $tax) {

 

global $currencies;

 

 

 

return tep_round($price * $tax / 100, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);

 

}

 

 

 

////

 

// Returns the tax rate for a zone / class

 

// TABLES: tax_rates, zones_to_geo_zones

 

function tep_get_tax_rate($class_id, $country_id = -1, $zone_id = -1) {

 

global $customer_zone_id, $customer_country_id;

 

 

 

if ( ($country_id == -1) && ($zone_id == -1) ) {

 

if (!tep_session_is_registered('customer_id')) {

 

$country_id = STORE_COUNTRY;

 

$zone_id = STORE_ZONE;

 

} else {

 

$country_id = $customer_country_id;

 

$zone_id = $customer_zone_id;

 

}

 

}

 

 

 

$tax_query = tep_db_query("select SUM(tax_rate) as tax_rate from " . TABLE_TAX_RATES . " tr left join " . TABLE_ZONES_TO_GEO_ZONES . " za ON tr.tax_zone_id = za.geo_zone_id left join " . TABLE_GEO_ZONES . " tz ON tz.geo_zone_id = tr.tax_zone_id WHERE (za.zone_country_id IS NULL OR za.zone_country_id = '0' OR za.zone_country_id = '" . (int)$country_id . "') AND (za.zone_id IS NULL OR za.zone_id = '0' OR za.zone_id = '" . (int)$zone_id . "') AND tr.tax_class_id = '" . (int)$class_id . "' GROUP BY tr.tax_priority");

 

if (tep_db_num_rows($tax_query)) {

 

$tax_multiplier = 0;

 

while ($tax = tep_db_fetch_array($tax_query)) {

 

$tax_multiplier += $tax['tax_rate'];

 

}

 

return $tax_multiplier;

 

} else {

 

return 0;

 

}

 

}

 

 

 

////

 

// Returns the tax rate for a tax class

 

// TABLES: tax_rates

 

function tep_get_tax_rate_value($class_id) {

 

$tax_query = tep_db_query("select SUM(tax_rate) as tax_rate from " . TABLE_TAX_RATES . " where tax_class_id = '" . (int)$class_id . "' group by tax_priority");

 

if (tep_db_num_rows($tax_query)) {

 

$tax_multiplier = 0;

 

while ($tax = tep_db_fetch_array($tax_query)) {

 

$tax_multiplier += $tax['tax_rate'];

 

}

 

return $tax_multiplier;

 

} else {

 

return 0;

 

}

 

}

 

 

 

function tep_call_function($function, $parameter, $object = '') {

 

if ($object == '') {

 

return call_user_func($function, $parameter);

 

} elseif (PHP_VERSION < 4) {

 

return call_user_method($function, $object, $parameter);

 

} else {

 

return call_user_func(array($object, $function), $parameter);

 

}

 

}

 

 

 

function tep_get_zone_class_title($zone_class_id) {

 

if ($zone_class_id == '0') {

 

return TEXT_NONE;

 

} else {

 

$classes_query = tep_db_query("select geo_zone_name from " . TABLE_GEO_ZONES . " where geo_zone_id = '" . (int)$zone_class_id . "'");

 

$classes = tep_db_fetch_array($classes_query);

 

 

 

return $classes['geo_zone_name'];

 

}

 

}

 

 

 

function tep_cfg_pull_down_zone_classes($zone_class_id, $key = '') {

 

$name = (($key) ? 'configuration[' . $key . ']' : 'configuration_value');

 

 

 

$zone_class_array = array(array('id' => '0', 'text' => TEXT_NONE));

 

$zone_class_query = tep_db_query("select geo_zone_id, geo_zone_name from " . TABLE_GEO_ZONES . " order by geo_zone_name");

 

while ($zone_class = tep_db_fetch_array($zone_class_query)) {

 

$zone_class_array[] = array('id' => $zone_class['geo_zone_id'],

 

'text' => $zone_class['geo_zone_name']);

 

}

 

 

 

return tep_draw_pull_down_menu($name, $zone_class_array, $zone_class_id);

 

}

 

 

 

function tep_cfg_pull_down_order_statuses($order_status_id, $key = '') {

 

global $languages_id;

 

 

 

$name = (($key) ? 'configuration[' . $key . ']' : 'configuration_value');

 

 

 

$statuses_array = array(array('id' => '0', 'text' => TEXT_DEFAULT));

 

$statuses_query = tep_db_query("select orders_status_id, orders_status_name from " . TABLE_ORDERS_STATUS . " where language_id = '" . (int)$languages_id . "' order by orders_status_name");

 

while ($statuses = tep_db_fetch_array($statuses_query)) {

 

$statuses_array[] = array('id' => $statuses['orders_status_id'],

 

'text' => $statuses['orders_status_name']);

 

}

 

 

 

return tep_draw_pull_down_menu($name, $statuses_array, $order_status_id);

 

}

 

 

 

function tep_get_order_status_name($order_status_id, $language_id = '') {

 

global $languages_id;

 

 

 

if ($order_status_id < 1) return TEXT_DEFAULT;

 

 

 

if (!is_numeric($language_id)) $language_id = $languages_id;

 

 

 

$status_query = tep_db_query("select orders_status_name from " . TABLE_ORDERS_STATUS . " where orders_status_id = '" . (int)$order_status_id . "' and language_id = '" . (int)$language_id . "'");

 

$status = tep_db_fetch_array($status_query);

 

 

 

return $status['orders_status_name'];

 

}

 

 

 

////

 

// Return a random value

 

function tep_rand($min = null, $max = null) {

 

static $seeded;

 

 

 

if (!$seeded) {

 

mt_srand((double)microtime()*1000000);

 

$seeded = true;

 

}

 

 

 

if (isset($min) && isset($max)) {

 

if ($min >= $max) {

 

return $min;

 

} else {

 

return mt_rand($min, $max);

 

}

 

} else {

 

return mt_rand();

 

}

 

}

 

 

 

// nl2br() prior PHP 4.2.0 did not convert linefeeds on all OSs (it only converted \n)

 

function tep_convert_linefeeds($from, $to, $string) {

 

if ((PHP_VERSION < "4.0.5") && is_array($from)) {

 

return ereg_replace('(' . implode('|', $from) . ')', $to, $string);

 

} else {

 

return str_replace($from, $to, $string);

 

}

 

}

 

 

 

function tep_string_to_int($string) {

 

return (int)$string;

 

}

 

 

 

////

 

// Parse and secure the cPath parameter values

 

function tep_parse_category_path($cPath) {

 

// make sure the category IDs are integers

 

$cPath_array = array_map('tep_string_to_int', explode('_', $cPath));

 

 

 

// make sure no duplicate category IDs exist which could lock the server in a loop

 

$tmp_array = array();

 

$n = sizeof($cPath_array);

 

for ($i=0; $i<$n; $i++) {

 

if (!in_array($cPath_array[$i], $tmp_array)) {

 

$tmp_array[] = $cPath_array[$i];

 

}

 

}

 

 

 

return $tmp_array;

 

}

 

?>

 

 

********************************************************************************

*******************

Link to comment
Share on other sites

tep_get_ip_address() is a standard function in includes/functions/general.php You are using a "fork" of osCommerce and this is not supported here - if you were using original osC you would not have this problem.

 

May I suggest you read through the hundreds of lines of code you have inappropriately posted here and follow the instructions:

SUPPORT & PROJECT UPDATES:

http://www.digistore.co.nz/support/

 

Tom

 

For your information I've pasted the missing function below:

  function tep_get_ip_address() {
if (isset($_SERVER)) {
  if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
	$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
	$ip = $_SERVER['HTTP_CLIENT_IP'];
  } else {
	$ip = $_SERVER['REMOTE_ADDR'];
  }
} else {
  if (getenv('HTTP_X_FORWARDED_FOR')) {
	$ip = getenv('HTTP_X_FORWARDED_FOR');
  } elseif (getenv('HTTP_CLIENT_IP')) {
	$ip = getenv('HTTP_CLIENT_IP');
  } else {
	$ip = getenv('REMOTE_ADDR');
  }
}

return $ip;
 }

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...