Jump to content
Sign in to follow this  
petertufan

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

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/

Share this post


Link to post
Share on other sites

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


KUBICO from Portugal

Share this post


Link to post
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;

 

}

 

?>

 

 

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

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

Share this post


Link to post
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;
 }

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×