Unable to connect to database server! [message #172081] |
Sun, 30 January 2011 11:43 |
netsurfer802
Messages: 1 Registered: January 2011
Karma: 0
|
Junior Member |
|
|
I AM POSTING SOME OF THIS IN ALL CAPS TO HAVE WHAT I'M WRITING
PERSONALLY IN
THIS POST FROM WHAT I'M COPYING (EXAMPLE FOR CONTENTS ON MY WEB HOST
AS WELL
AS THE INSTRUCTIONS I WAS GIVEN TO HAVE PHP FILES WORK WITH MY MYSQL
DATABASE.)
I KEEP GETTING THE ERROR "UNABLE TO CONNECT TO DATABASE SERVER!"
WHENEVER I
GO TO MY HOMEPAGE WHICH IS WORKING OFF THE /HTDOCS/ADMIN/
CATEGORIES.PHP FILE.
WHY? WHAT CAN I DO TO CORRECT THIS? THE INSTRUCTIONS SAY TO GO TO
THE
/ADMIN FOLDER OF MY WEBHOST AND THEN TO CLICK ON THE LINK TO LOG IN
WHICH
AUTOMATICALLY "CALLS UP" THE /HTDOCS/ADMIN/CATEGORIES.PHP FILE THAT I
KEEP
GETTING THE ERROR WITH. FIRST I'LL INCLUDE THE INSTRUCTIONS THAT I
WAS GIVEN
AND HAD FOLLOWED TO THE BEST THAT I KNEW TO...AND THEN I'LL PASTE ALL
THE
CODE IN THE FOLLOWING FILES:
/htdocs/includes/configure.php
/htdocs/admin/includes/configure.php
/htdocs/admin/categories.php
PLEASE ADVISE ON WHAT I CAN DO TO BYPASS GETTING THIS ERROR EVERY
TIME.
PLEASE FIRST READ BELOW. IF YOU CAN'T SEE ALSO WHY I MIGHT BE GETTING
THIS
ERROR AND YOU NEED MORE INFORMATION PLEASE DON'T HESITATE TO ASK WHAT
YOU
NEED TO KNOW...
THANKS VERY MUCH IN ADVANCED FOR ANY HELPFUL RESPONSE.
------------------------------------------------------------------------
INSTRUCTIONS I WAS GIVEN:
Create a mysql DB
Login into your hosting control panel and click on My SQL and create
a
database called ebookstore. You now need to create a database
username
and password and give the user full (or all) permissions to the
database you
have just created. Remember the details as you will need them later
on.
Populate the MySql Tables
From within the MySql page of you hosting account click on
phpMyAdmin.
From the next page select the database you have just created and then
click
on SQL. Copy the contents of \sql\storetabels.txt into the box called
Run
SQL query/queries on database and then click go, this will create the
tables
required for your database.
Upload Your Files To Your WebServer
You now need to upload the contents of the folder called “files to
upload” to
your webserver.
Edit the configuration files
You need to edit 2 files that you have uploaded to your webserver,
they are:
-
Includes/configure.php
Admin/includes/configure.php
On both files you need to edit the sections that says CHANGEME.
Fully Automated eBook Store Installation Instructions
Change Permissions
You can change the permissions using the file manager within your
hosting
control panel. You need to change the permissions (chmod) on the
following
files: -
Admin/backups – 777
Admin/images/graphs – 777
Admin/includes/graphs – 777
Download – 777
Pub – 777
Images – 777
Images/banners – 777
Stylesheet.css – 777
Password Protect Your Admin Folder
From within your hosting control panel you need to password protect
your
admin folder so that only you can access it.
Change your settings
Browse to http://yourdomainname.com/admin and click on Click here for
admin, then click on every link on the left hand side and change the
settings
as required, check the settings on EVERY page, full instructions are
detailed
at the bottom of each page.
You will see an error when you click on Orders – this is because there
are
none, orders will appear here when you have sold items.
You will need to add the € symbol and the £ symbol on the currencies
page
Upload your own Logo
To replace the default logo you need to create a logo of your own and
save it
as mylogo.gif. You then need to upload the file to the images folder.
Upload all the zipped ebooks into the "download" folder.
----------------------------------------------------------------------
CONTENTS OF THIS FILE ARE LISTED BELOW: /htdocs/includes/configure.php
php /* Big Fat Ebook Webstore http://www.netsurfer802.byethost17.com
*/
// Define the webserver and path parameters
// * DIR_FS_* = Filesystem directories (local/physical)
// * DIR_WS_* = Webserver directories (virtual/URL)
// add your database and website details to the variables below
define('DB_SERVER_USERNAME', 'b17_6763068');
// your username that you use to log into your web server
define('DB_SERVER_PASSWORD', '3f82f8');
// your password that you use to log into your web server
define('DB_DATABASE', 'b17_6763068_ebookstore');
// replace username with your web server username
define('DIR_FS_CATALOG', '/home/netsurfer802.byethost17.com
/htdocs/');
define('HTTP_SERVER', 'http://netsurfer802.byethost17.com
');
define('HTTP_COOKIE_DOMAIN', '.netsurfer802.byethost17.com
');
// do not include the www
// you do not need to change anything below
define('DB_SERVER', 'localhost');
define('DIR_WS_DOWNLOAD_PUBLIC', 'pub/');
define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');
define('HTTPS_COOKIE_DOMAIN', '');
define('HTTP_COOKIE_PATH', '/');
define('HTTPS_COOKIE_PATH', '');
define('DIR_WS_HTTP_CATALOG', '/');
define('DIR_WS_HTTPS_CATALOG', '');
define('DIR_WS_IMAGES', 'images/');
define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/');
define('DIR_WS_INCLUDES', 'includes/');
define('DIR_WS_BOXES', DIR_WS_INCLUDES . 'boxes/');
define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/');
define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/');
define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/');
define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/');
define('HTTPS_SERVER', '');
define('ENABLE_SSL', false);
define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');
define('USE_PCONNECT', 'false');
define('STORE_SESSIONS', 'mysql');
?>
CONTENTS OF THIS FILE ARE LISTED BELOW: /htdocs/admin/includes/
configure.php
<?php
/*
*/
// Define the webserver and path parameters
// * DIR_FS_* = Filesystem directories (local/physical)
// * DIR_WS_* = Webserver directories (virtual/URL)
// add your database and website details to the variables below
define('DB_SERVER_USERNAME', 'b17_6763068');
// your username that you use to log into your web server
define('DB_SERVER_PASSWORD', '3f82f8');
// your password that you use to log into your web server
define('DB_DATABASE', 'b17_6763068_ebookstore');
// replace username with your web server username
define('DIR_FS_ADMIN', '/home/netsurfer802.byethost17.com/htdocs/
admin/');
// replace username with your web server username
define('DIR_FS_CATALOG', '/home/netsurfer802.byethost17.com/
htdocs/');
define('DIR_FS_DOCUMENT_ROOT', '/home/netsurfer802.byethost17.com/
htdocs');
define('SITE', 'www.netsurfer802.byethost17.com');
define('WWW', 'http://www.netsurfer802.byethost17.com');
define('HTTP_SERVER', 'http://www.netsurfer802.byethost17.com');
define('HTTP_CATALOG_SERVER', 'http://
www.netsurfer802.byethost17.com');
// you do not need to change anything below
define('DB_SERVER', 'localhost');
define('DIR_WS_ADMIN', '/admin/');
define('DIR_WS_CATALOG', '/');
define('DIR_WS_IMAGES', 'images/');
define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/');
define('DIR_WS_CATALOG_IMAGES', DIR_WS_CATALOG . 'images/');
define('DIR_WS_INCLUDES', 'includes/');
define('DIR_WS_BOXES', DIR_WS_INCLUDES . 'boxes/');
define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/');
define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/');
define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/');
define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/');
define('DIR_WS_CATALOG_LANGUAGES', DIR_WS_CATALOG . 'includes/
languages/');
define('DIR_FS_CATALOG_LANGUAGES', DIR_FS_CATALOG . 'includes/
languages/');
define('DIR_FS_CATALOG_IMAGES', DIR_FS_CATALOG . 'images/');
define('DIR_FS_CATALOG_MODULES', DIR_FS_CATALOG . 'includes/
modules/');
define('DIR_FS_BACKUP', DIR_FS_ADMIN . 'backups/');
define('HTTPS_CATALOG_SERVER', '');
define('ENABLE_SSL_CATALOG', 'false');
define('USE_PCONNECT', 'false');
define('STORE_SESSIONS', 'mysql');
?>
CONTENTS OF THIS FILE ARE LISTED BELOW: /htdocs/admin/categories.php
<?php
/*
*/
require('includes/application_top.php');
require(DIR_WS_CLASSES . 'currencies.php');
$currencies = new currencies();
$action = (isset($HTTP_GET_VARS['action']) ?
$HTTP_GET_VARS['action'] :
'');
if (tep_not_null($action)) {
switch ($action) {
case 'setflag':
if ( ($HTTP_GET_VARS['flag'] == '0') ||
($HTTP_GET_VARS['flag'] ==
'1') ) {
if (isset($HTTP_GET_VARS['pID'])) {
tep_set_product_status($HTTP_GET_VARS['pID'],
$HTTP_GET_VARS['flag']);
}
if (USE_CACHE == 'true') {
tep_reset_cache_block('categories');
tep_reset_cache_block('also_purchased');
}
}
tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' .
$HTTP_GET_VARS['cPath'] . '&pID=' . $HTTP_GET_VARS['pID']));
break;
case 'insert_category':
case 'update_category':
if (isset($HTTP_POST_VARS['categories_id'])) $categories_id =
tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
$sort_order =
tep_db_prepare_input($HTTP_POST_VARS['sort_order']);
$sql_data_array = array('sort_order' => $sort_order);
if ($action == 'insert_category') {
$insert_sql_data = array('parent_id' =>
$current_category_id,
'date_added' => 'now()');
$sql_data_array = array_merge($sql_data_array,
$insert_sql_data);
tep_db_perform(TABLE_CATEGORIES, $sql_data_array);
$categories_id = tep_db_insert_id();
} elseif ($action == 'update_category') {
$update_sql_data = array('last_modified' => 'now()');
$sql_data_array = array_merge($sql_data_array,
$update_sql_data);
tep_db_perform(TABLE_CATEGORIES, $sql_data_array, 'update',
"categories_id = '" . (int)$categories_id . "'");
}
$languages = tep_get_languages();
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
$categories_name_array = $HTTP_POST_VARS['categories_name'];
$language_id = $languages[$i]['id'];
$sql_data_array = array('categories_name' =>
tep_db_prepare_input($categories_name_array[$language_id]));
if ($action == 'insert_category') {
$insert_sql_data = array('categories_id' =>
$categories_id,
'language_id' => $languages[$i]
['id']);
$sql_data_array = array_merge($sql_data_array,
$insert_sql_data);
tep_db_perform(TABLE_CATEGORIES_DESCRIPTION,
$sql_data_array);
} elseif ($action == 'update_category') {
tep_db_perform(TABLE_CATEGORIES_DESCRIPTION,
$sql_data_array,
'update', "categories_id = '" . (int)$categories_id . "' and
language_id = '"
.. (int)$languages[$i]['id'] . "'");
}
}
if ($categories_image = new upload('categories_image',
DIR_FS_CATALOG_IMAGES)) {
tep_db_query("update " . TABLE_CATEGORIES . " set
categories_image
= '" . tep_db_input($categories_image->filename) . "' where
categories_id =
'" . (int)$categories_id . "'");
}
if (USE_CACHE == 'true') {
tep_reset_cache_block('categories');
tep_reset_cache_block('also_purchased');
}
tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' .
$cPath .
'&cID=' . $categories_id));
break;
case 'delete_category_confirm':
if (isset($HTTP_POST_VARS['categories_id'])) {
$categories_id =
tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
$categories = tep_get_category_tree($categories_id, '', '0',
'',
true);
$products = array();
$products_delete = array();
for ($i=0, $n=sizeof($categories); $i<$n; $i++) {
$product_ids_query = tep_db_query("select products_id from
" .
TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" .
(int)$categories[$i]['id'] . "'");
while ($product_ids =
tep_db_fetch_array($product_ids_query)) {
$products[$product_ids['products_id']]['categories'][]
=
$categories[$i]['id'];
}
}
reset($products);
while (list($key, $value) = each($products)) {
$category_ids = '';
for ($i=0, $n=sizeof($value['categories']); $i<$n; $i++) {
$category_ids .= "'" . (int)$value['categories'][$i] .
"', ";
}
$category_ids = substr($category_ids, 0, -2);
$check_query = tep_db_query("select count(*) as total from
" .
TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$key .
"' and
categories_id not in (" . $category_ids . ")");
$check = tep_db_fetch_array($check_query);
if ($check['total'] < '1') {
$products_delete[$key] = $key;
}
}
// removing categories can be a lengthy process
tep_set_time_limit(0);
for ($i=0, $n=sizeof($categories); $i<$n; $i++) {
tep_remove_category($categories[$i]['id']);
}
reset($products_delete);
while (list($key) = each($products_delete)) {
tep_remove_product($key);
}
}
if (USE_CACHE == 'true') {
tep_reset_cache_block('categories');
tep_reset_cache_block('also_purchased');
}
tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' .
$cPath));
break;
case 'delete_product_confirm':
if (isset($HTTP_POST_VARS['products_id']) &&
isset($HTTP_POST_VARS['product_categories']) &&
is_array($HTTP_POST_VARS['product_categories'])) {
$product_id =
tep_db_prepare_input($HTTP_POST_VARS['products_id']);
$product_categories = $HTTP_POST_VARS['product_categories'];
for ($i=0, $n=sizeof($product_categories); $i<$n; $i++) {
tep_db_query("delete from " .
TABLE_PRODUCTS_TO_CATEGORIES . "
where products_id = '" . (int)$product_id . "' and categories_id =
'" .
(int)$product_categories[$i] . "'");
}
$product_categories_query = tep_db_query("select count(*) as
total
from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" .
(int)$product_id . "'");
$product_categories =
tep_db_fetch_array($product_categories_query);
if ($product_categories['total'] == '0') {
tep_remove_product($product_id);
}
}
if (USE_CACHE == 'true') {
tep_reset_cache_block('categories');
tep_reset_cache_block('also_purchased');
}
tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' .
$cPath));
break;
case 'move_category_confirm':
if (isset($HTTP_POST_VARS['categories_id']) &&
($HTTP_POST_VARS['categories_id'] !=
$HTTP_POST_VARS['move_to_category_id']))
{
$categories_id =
tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
$new_parent_id =
tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']);
$path = explode('_',
tep_get_generated_category_path_ids($new_parent_id));
if (in_array($categories_id, $path)) {
$messageStack-
> add_session(ERROR_CANNOT_MOVE_CATEGORY_TO_PARENT,
'error');
tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' .
$cPath
.. '&cID=' . $categories_id));
} else {
tep_db_query("update " . TABLE_CATEGORIES . " set
parent_id = '"
.. (int)$new_parent_id . "', last_modified = now() where categories_id
= '" .
(int)$categories_id . "'");
if (USE_CACHE == 'true') {
tep_reset_cache_block('categories');
tep_reset_cache_block('also_purchased');
}
tep_redirect(tep_href_link(FILENAME_CATEGORIES,
'cPath=' .
$new_parent_id . '&cID=' . $categories_id));
}
}
break;
case 'move_product_confirm':
$products_id =
tep_db_prepare_input($HTTP_POST_VARS['products_id']);
$new_parent_id =
tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']);
$duplicate_check_query = tep_db_query("select count(*) as
total from
" . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" .
(int)$products_id . "' and categories_id = '" . (int)$new_parent_id .
"'");
$duplicate_check = tep_db_fetch_array($duplicate_check_query);
if ($duplicate_check['total'] < 1) tep_db_query("update " .
TABLE_PRODUCTS_TO_CATEGORIES . " set categories_id = '" . (int)
$new_parent_id
.. "' where products_id = '" . (int)$products_id . "' and categories_id
= '" .
(int)$current_category_id . "'");
if (USE_CACHE == 'true') {
tep_reset_cache_block('categories');
tep_reset_cache_block('also_purchased');
}
tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' .
$new_parent_id . '&pID=' . $products_id));
break;
case 'insert_product':
case 'update_product':
if (isset($HTTP_POST_VARS['edit_x']) ||
isset($HTTP_POST_VARS['edit_y'])) {
$action = 'new_product';
} else {
if (isset($HTTP_GET_VARS['pID'])) $products_id =
tep_db_prepare_input($HTTP_GET_VARS['pID']);
$products_date_available =
tep_db_prepare_input($HTTP_POST_VARS['products_date_available']);
$products_date_available = (date('Y-m-d') <
$products_date_available) ? $products_date_available : 'null';
$sql_data_array = array('products_quantity' =>
tep_db_prepare_input($HTTP_POST_VARS['products_quantity']),
'products_model' =>
tep_db_prepare_input($HTTP_POST_VARS['products_model']),
'products_price' =>
tep_db_prepare_input($HTTP_POST_VARS['products_price']),
'products_date_available' =>
$products_date_available,
'products_weight' =>
tep_db_prepare_input($HTTP_POST_VARS['products_weight']),
'products_status' =>
tep_db_prepare_input($HTTP_POST_VARS['products_status']),
'products_tax_class_id' =>
tep_db_prepare_input($HTTP_POST_VARS['products_tax_class_id']),
'manufacturers_id' =>
tep_db_prepare_input($HTTP_POST_VARS['manufacturers_id']));
if (isset($HTTP_POST_VARS['products_image']) &&
tep_not_null($HTTP_POST_VARS['products_image']) &&
($HTTP_POST_VARS['products_image'] != 'none')) {
$sql_data_array['products_image'] =
tep_db_prepare_input($HTTP_POST_VARS['products_image']);
}
if ($action == 'insert_product') {
$insert_sql_data = array('products_date_added' =>
'now()');
$sql_data_array = array_merge($sql_data_array,
$insert_sql_data);
tep_db_perform(TABLE_PRODUCTS, $sql_data_array);
$products_id = tep_db_insert_id();
tep_db_query("insert into " .
TABLE_PRODUCTS_TO_CATEGORIES . "
(products_id, categories_id) values ('" . (int)$products_id . "',
'" .
(int)$current_category_id . "')");
} elseif ($action == 'update_product') {
$update_sql_data = array('products_last_modified' =>
'now()');
$sql_data_array = array_merge($sql_data_array,
$update_sql_data);
tep_db_perform(TABLE_PRODUCTS, $sql_data_array, 'update',
"products_id = '" . (int)$products_id . "'");
}
$languages = tep_get_languages();
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
$language_id = $languages[$i]['id'];
$sql_data_array = array('products_name' =>
tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id]),
'products_info' =>
tep_db_prepare_input($HTTP_POST_VARS['products_info'][$language_id]),
'products_description' =>
tep_db_prepare_input($HTTP_POST_VARS['products_description']
[$language_id]),
'products_url' =>
tep_db_prepare_input($HTTP_POST_VARS['products_url'][$language_id]));
if ($action == 'insert_product') {
$insert_sql_data = array('products_id' => $products_id,
'language_id' => $language_id);
$sql_data_array = array_merge($sql_data_array,
$insert_sql_data);
tep_db_perform(TABLE_PRODUCTS_DESCRIPTION,
$sql_data_array);
} elseif ($action == 'update_product') {
tep_db_perform(TABLE_PRODUCTS_DESCRIPTION,
$sql_data_array,
'update', "products_id = '" . (int)$products_id . "' and language_id =
'" .
(int)$language_id . "'");
}
}
if (USE_CACHE == 'true') {
tep_reset_cache_block('categories');
tep_reset_cache_block('also_purchased');
}
tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' .
$cPath .
'&pID=' . $products_id));
}
break;
case 'copy_to_confirm':
if (isset($HTTP_POST_VARS['products_id']) &&
isset($HTTP_POST_VARS['categories_id'])) {
$products_id =
tep_db_prepare_input($HTTP_POST_VARS['products_id']);
$categories_id =
tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
if ($HTTP_POST_VARS['copy_as'] == 'link') {
if ($categories_id != $current_category_id) {
$check_query = tep_db_query("select count(*) as total
from " .
TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)
$products_id .
"' and categories_id = '" . (int)$categories_id . "'");
$check = tep_db_fetch_array($check_query);
if ($check['total'] < '1') {
tep_db_query("insert into " .
TABLE_PRODUCTS_TO_CATEGORIES .
" (products_id, categories_id) values ('" . (int)$products_id . "',
'" .
(int)$categories_id . "')");
}
} else {
$messageStack-
> add_session(ERROR_CANNOT_LINK_TO_SAME_CATEGORY,
'error');
}
} elseif ($HTTP_POST_VARS['copy_as'] == 'duplicate') {
$product_query = tep_db_query("select products_quantity,
products_model, products_image, products_price,
products_date_available,
products_weight, products_tax_class_id, manufacturers_id from " .
TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");
$product = tep_db_fetch_array($product_query);
tep_db_query("insert into " . TABLE_PRODUCTS . "
(products_quantity, products_model,products_image, products_price,
products_date_added, products_date_available, products_weight,
products_status, products_tax_class_id, manufacturers_id) values
('" .
tep_db_input($product['products_quantity']) . "', '" .
tep_db_input($product['products_model']) . "', '" .
tep_db_input($product['products_image']) . "', '" .
tep_db_input($product['products_price']) . "', now(), '" .
tep_db_input($product['products_date_available']) . "', '" .
tep_db_input($product['products_weight']) . "', '0', '" .
(int)$product['products_tax_class_id'] . "', '" .
(int)$product['manufacturers_id'] . "')");
$dup_products_id = tep_db_insert_id();
$description_query = tep_db_query("select language_id,
products_name, products_info, products_description, products_url from
" .
TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)
$products_id .
"'");
while ($description =
tep_db_fetch_array($description_query)) {
tep_db_query("insert into " .
TABLE_PRODUCTS_DESCRIPTION . "
(products_id, language_id, products_name, products_info,
products_description, products_url, products_viewed) values ('" .
(int)$dup_products_id . "', '" . (int)$description['language_id'] .
"', '" .
tep_db_input($description['products_name']) . "', '" .
tep_db_input($description['products_description']) . "', '" .
tep_db_input($description['products_url']) . "', '0')");
}
tep_db_query("insert into " .
TABLE_PRODUCTS_TO_CATEGORIES . "
(products_id, categories_id) values ('" . (int)$dup_products_id . "',
'" .
(int)$categories_id . "')");
$products_id = $dup_products_id;
}
if (USE_CACHE == 'true') {
tep_reset_cache_block('categories');
tep_reset_cache_block('also_purchased');
}
}
tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' .
$categories_id . '&pID=' . $products_id));
break;
case 'new_product_preview':
// copy image only if modified
$products_image = new upload('products_image');
$products_image->set_destination(DIR_FS_CATALOG_IMAGES);
if ($products_image->parse() && $products_image->save()) {
$products_image_name = $products_image->filename;
} else {
$products_image_name =
(isset($HTTP_POST_VARS['products_previous_image']) ?
$HTTP_POST_VARS['products_previous_image'] : '');
}
break;
}
}
// check if the catalog image directory exists
if (is_dir(DIR_FS_CATALOG_IMAGES)) {
if (!is_writeable(DIR_FS_CATALOG_IMAGES))
$messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_NOT_WRITEABLE,
'error');
} else {
$messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_DOES_NOT_EXIST,
'error');
}
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php
echo
CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
<script language="javascript" src="includes/general.js"></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0"
leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onload="SetFocus();">
<div id="spiffycalendar" class="text"></div>
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->
<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
<tr>
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table
border="0"
width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1"
class="columnLeft">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table></td>
<!-- body_text //-->
<td width="100%" valign="top">
<?php
if ($action == 'new_product') {
$parameters = array('products_name' => '',
'products_info' => '',
'products_description' => '',
'products_url' => '',
'products_id' => '',
'products_quantity' => '',
'products_model' => '',
'products_image' => '',
'products_price' => '',
'products_weight' => '',
'products_date_added' => '',
'products_last_modified' => '',
'products_date_available' => '',
'products_status' => '',
'products_tax_class_id' => '',
'manufacturers_id' => '');
$pInfo = new objectInfo($parameters);
if (isset($HTTP_GET_VARS['pID']) && empty($HTTP_POST_VARS)) {
$product_query = tep_db_query("select pd.products_name,
pd.products_description, pd.products_url, p.products_id,
p.products_quantity,
p.products_model, p.products_image, p.products_price,
p.products_weight,
p.products_date_added, p.products_last_modified,
date_format(p.products_date_available, '%Y-%m-%d') as
products_date_available, p.products_status, p.products_tax_class_id,
p.manufacturers_id from " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" .
(int)$HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id
and
pd.language_id = '" . (int)$languages_id . "'");
$product = tep_db_fetch_array($product_query);
$pInfo->objectInfo($product);
} elseif (tep_not_null($HTTP_POST_VARS)) {
$pInfo->objectInfo($HTTP_POST_VARS);
$products_name = $HTTP_POST_VARS['products_name'];
$products_info = $HTTP_POST_VARS['products_info'];
$products_description = $HTTP_POST_VARS['products_description'];
$products_url = $HTTP_POST_VARS['products_url'];
}
$manufacturers_array = array(array('id' => '', 'text' =>
TEXT_NONE));
$manufacturers_query = tep_db_query("select manufacturers_id,
manufacturers_name from " . TABLE_MANUFACTURERS . " order by
manufacturers_name");
while ($manufacturers = tep_db_fetch_array($manufacturers_query))
{
$manufacturers_array[] = array('id' =>
$manufacturers['manufacturers_id'],
'text' =>
$manufacturers['manufacturers_name']);
}
$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']);
}
$languages = tep_get_languages();
if (!isset($pInfo->products_status)) $pInfo->products_status =
'1';
switch ($pInfo->products_status) {
case '0': $in_status = false; $out_status = true; break;
case '1':
default: $in_status = true; $out_status = false;
}
?>
<link rel="stylesheet" type="text/css"
href="includes/javascript/spiffyCal/spiffyCal_v2_1.css">
<script language="JavaScript"
src="includes/javascript/spiffyCal/spiffyCal_v2_1.js"></script>
<script language="javascript"><!--
var dateAvailable = new ctlSpiffyCalendarBox("dateAvailable",
"new_product", "products_date_available","btnDate1","<?php echo
$pInfo->products_date_available; ?>",scBTNMODE_CUSTOMBLUE);
//--></script>
<script language="javascript"><!--
var tax_rates = new Array();
<?php
for ($i=0, $n=sizeof($tax_class_array); $i<$n; $i++) {
if ($tax_class_array[$i]['id'] > 0) {
echo 'tax_rates["' . $tax_class_array[$i]['id'] . '"] = ' .
tep_get_tax_rate_value($tax_class_array[$i]['id']) . ';' . "\n";
}
}
?>
function doRound(x, places) {
return Math.round(x * Math.pow(10, places)) / Math.pow(10, places);
}
function getTaxRate() {
var selected_value =
document.forms["new_product"].products_tax_class_id.selectedIndex;
var parameterVal =
document.forms["new_product"].products_tax_class_id[selected_value].value;
if ( (parameterVal > 0) && (tax_rates[parameterVal] > 0) ) {
return tax_rates[parameterVal];
} else {
return 0;
}
}
function updateGross() {
var taxRate = getTaxRate();
var grossValue = document.forms["new_product"].products_price.value;
if (taxRate > 0) {
grossValue = grossValue * ((taxRate / 100) + 1);
}
document.forms["new_product"].products_price_gross.value =
doRound(grossValue, 4);
}
function updateNet() {
var taxRate = getTaxRate();
var netValue =
document.forms["new_product"].products_price_gross.value;
if (taxRate > 0) {
netValue = netValue / ((taxRate / 100) + 1);
}
document.forms["new_product"].products_price.value =
doRound(netValue, 4);
}
//--></script>
<?php echo tep_draw_form('new_product', FILENAME_CATEGORIES,
'cPath=' .
$cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' .
$HTTP_GET_VARS['pID'] :
'') . '&action=new_product_preview', 'post',
'enctype="multipart/form-data"'); ?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td><table border="0" width="100%" cellspacing="0"
cellpadding="0">
<tr>
<td class="pageHeading"><?php echo
sprintf(TEXT_NEW_PRODUCT,
tep_output_generated_category_path($current_category_id)); ?></td>
<td class="pageHeading" align="right"><?php echo
tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH,
HEADING_IMAGE_HEIGHT); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1',
'10');
?></td>
</tr>
<tr>
<td><table border="0" cellspacing="0" cellpadding="2">
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_STATUS; ?></td>
<td class="main"><?php echo
tep_draw_separator('pixel_trans.gif',
'24', '15') . ' ' . tep_draw_radio_field('products_status', '1',
$in_status) . ' ' . TEXT_PRODUCT_AVAILABLE . ' ' .
tep_draw_radio_field('products_status', '0', $out_status) .
' ' .
TEXT_PRODUCT_NOT_AVAILABLE; ?></td>
</tr>
<tr>
<td colspan="2"><?php echo
tep_draw_separator('pixel_trans.gif',
'1', '10'); ?></td>
</tr>
<?php
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
<tr>
<td class="main"><?php if ($i == 0) echo
TEXT_PRODUCTS_NAME;
?></td>
<td class="main"><?php echo
tep_draw_input_field('products_name[' . $languages[$i]['id'] . ']',
(isset($products_name[$languages[$i]['id']]) ?
$products_name[$languages[$i]['id']] :
tep_get_products_name($pInfo->products_id, $languages[$i]['id']))); ?
> </td>
</tr>
<?php
}
?>
<tr>
<td colspan="2"><?php echo
tep_draw_separator('pixel_trans.gif',
'1', '10'); ?></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_TAX_CLASS; ?></
td>
<td class="main"><?php echo
tep_draw_separator('pixel_trans.gif',
'24', '15') . ' ' .
tep_draw_pull_down_menu('products_tax_class_id',
$tax_class_array, $pInfo->products_tax_class_id,
'onchange="updateGross()"');
?></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_PRICE_NET; ?></
td>
<td class="main"><?php echo
tep_draw_separator('pixel_trans.gif',
'24', '15') . ' ' . tep_draw_input_field('products_price',
$pInfo->products_price, 'onKeyUp="updateGross()"'); ?></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_PRICE_GROSS; ?></
td>
<td class="main"><?php echo
tep_draw_separator('pixel_trans.gif',
'24', '15') . ' ' . tep_draw_input_field('products_price_gross',
$pInfo->products_price, 'OnKeyUp="updateNet()"'); ?></td>
</tr>
<tr>
<td colspan="2"><?php echo
tep_draw_separator('pixel_trans.gif',
'1', '10'); ?></td>
</tr>
<script language="javascript"><!--
updateGross();
//--></script>
<?php
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
<tr>
<td class="main" valign="top"><?php if ($i == 0) echo
TEXT_PRODUCTS_INFO; ?></td>
<td><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="main" valign="top"></td>
<td class="main"><?php echo
tep_draw_textarea_field('products_info[' . $languages[$i]['id'] .
']',
'soft', '70', '3', (isset($products_info[$languages[$i]['id']]) ?
$products_info[$languages[$i]['id']] :
tep_get_products_info($pInfo->products_id, $languages[$i]['id']))); ?
> </td>
</tr>
</table></td>
</tr>
<?php
}
?>
<?php
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
<tr>
<td class="main" valign="top"><?php if ($i == 0) echo
TEXT_PRODUCTS_DESCRIPTION; ?></td>
<td><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="main" valign="top"><?php echo
tep_draw_textarea_field('products_description[' . $languages[$i]
['id'] . ']',
'soft', '70', '30', (isset($products_description[$languages[$i]
['id']]) ?
$products_description[$languages[$i]['id']] :
tep_get_products_description($pInfo->products_id, $languages[$i]
['id'])));
?></td>
</tr>
</table></td>
</tr>
<?php
}
?>
<tr>
<td colspan="2"><?php echo
tep_draw_separator('pixel_trans.gif',
'1', '10'); ?></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_QUANTITY; ?></
td>
<td class="main"><?php echo
tep_draw_separator('pixel_trans.gif',
'24', '15') . ' ' . tep_draw_input_field('products_quantity',
$pInfo->products_quantity); ?></td>
</tr>
<tr>
<td colspan="2"><?php echo
tep_draw_separator('pixel_trans.gif',
'1', '10'); ?></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>
<td class="main"><?php echo
tep_draw_separator('pixel_trans.gif',
'24', '15') . ' ' . tep_draw_file_field('products_image') .
'<br>' .
tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' .
$pInfo->products_image .
tep_draw_hidden_field('products_previous_image',
$pInfo->products_image); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1',
'10');
?></td>
</tr>
<tr>
<td class="main" align="right"><?php echo
tep_draw_hidden_field('products_date_added',
(tep_not_null($pInfo->products_date_added) ? $pInfo-
> products_date_added :
date('Y-m-d'))) . tep_image_submit('button_preview.gif',
IMAGE_PREVIEW) .
' <a href="' . tep_href_link(FILENAME_CATEGORIES,
'cPath=' .
$cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' .
$HTTP_GET_VARS['pID'] :
'')) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</
a>';
?></td>
</tr>
</table></form>
<?php
} elseif ($action == 'new_product_preview') {
if (tep_not_null($HTTP_POST_VARS)) {
$pInfo = new objectInfo($HTTP_POST_VARS);
$products_name = $HTTP_POST_VARS['products_name'];
$products_info = $HTTP_POST_VARS['products_info'];
$products_description = $HTTP_POST_VARS['products_description'];
$products_url = $HTTP_POST_VARS['products_url'];
} else {
$product_query = tep_db_query("select p.products_id,
pd.language_id,
pd.products_name, pd.products_info, pd.products_description,
pd.products_url,
p.products_quantity, p.products_model, p.products_image,
p.products_price,
p.products_weight, p.products_date_added, p.products_last_modified,
p.products_date_available, p.products_status, p.manufacturers_id from
" .
TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where
p.products_id = pd.products_id and p.products_id = '" .
(int)$HTTP_GET_VARS['pID'] . "'");
$product = tep_db_fetch_array($product_query);
$pInfo = new objectInfo($product);
$products_image_name = $pInfo->products_image;
}
$form_action = (isset($HTTP_GET_VARS['pID'])) ?
'update_product' :
'insert_product';
echo tep_draw_form($form_action, FILENAME_CATEGORIES, 'cPath=' .
$cPath .
(isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] :
'') .
'&action=' . $form_action, 'post', 'enctype="multipart/form-data"');
$languages = tep_get_languages();
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] ==
'only')) {
$pInfo->products_name = tep_get_products_name($pInfo-
> products_id,
$languages[$i]['id']);
$pInfo->products_info = tep_get_products_info($pInfo->products_id,
$languages[$i]['id']);
$pInfo->products_description =
tep_get_products_description($pInfo->products_id, $languages[$i]
['id']);
$pInfo->products_url = tep_get_products_url($pInfo-
> products_id,
$languages[$i]['id']);
} else {
$pInfo->products_name =
tep_db_prepare_input($products_name[$languages[$i]['id']]);
$pInfo->products_info =
tep_db_prepare_input($products_info[$languages[$i]['id']]);
$pInfo->products_description =
tep_db_prepare_input($products_description[$languages[$i]['id']]);
$pInfo->products_url =
tep_db_prepare_input($products_url[$languages[$i]['id']]);
}
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td><table border="0" width="100%" cellspacing="0"
cellpadding="0">
<tr>
<td class="pageHeading"><?php echo $pInfo->products_name; ?
> </td>
<td class="pageHeading" align="right"><?php echo
$currencies->format($pInfo->products_price); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1',
'10');
?></td>
</tr>
<tr>
<td class="main"><?php echo tep_image(DIR_WS_CATALOG_IMAGES .
$products_image_name, $pInfo->products_name, SMALL_IMAGE_WIDTH,
SMALL_IMAGE_HEIGHT, 'align="right" hspace="5" vspace="5"') .
$pInfo->products_description; ?></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1',
'10');
?></td>
</tr>
<?php
if ($pInfo->products_url) {
?>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1',
'10');
?></td>
</tr>
<tr>
<td class="main"><?php echo
sprintf(TEXT_PRODUCT_MORE_INFORMATION,
$pInfo->products_url); ?></td>
</tr>
<?php
}
?>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1',
'10');
?></td>
</tr>
<?php
if ($pInfo->products_date_available > date('Y-m-d')) {
?>
<tr>
<td align="center" class="smallText"><?php echo
sprintf(TEXT_PRODUCT_DATE_AVAILABLE,
tep_date_long($pInfo->products_date_available)); ?></td>
</tr>
<?php
} else {
?>
<tr>
<td align="center" class="smallText"><?php echo
sprintf(TEXT_PRODUCT_DATE_ADDED, tep_date_long($pInfo-
> products_date_added));
?></td>
</tr>
<?php
}
?>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1',
'10');
?></td>
</tr>
<?php
}
if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] ==
'only'))
{
if (isset($HTTP_GET_VARS['origin'])) {
$pos_params = strpos($HTTP_GET_VARS['origin'], '?', 0);
if ($pos_params != false) {
$back_url = substr($HTTP_GET_VARS['origin'], 0,
$pos_params);
$back_url_params = substr($HTTP_GET_VARS['origin'],
$pos_params +
1);
} else {
$back_url = $HTTP_GET_VARS['origin'];
$back_url_params = '';
}
} else {
$back_url = FILENAME_CATEGORIES;
$back_url_params = 'cPath=' . $cPath . '&pID=' . $pInfo-
> products_id;
}
?>
<tr>
<td align="right"></td>
</tr>
<?php
} else {
?>
<tr>
<td align="right" class="smallText">
<?php
/* Re-Post all POST'ed variables */
reset($HTTP_POST_VARS);
while (list($key, $value) = each($HTTP_POST_VARS)) {
if (!is_array($HTTP_POST_VARS[$key])) {
echo tep_draw_hidden_field($key,
htmlspecialchars(stripslashes($value)));
}
}
$languages = tep_get_languages();
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
echo tep_draw_hidden_field('products_name[' . $languages[$i]
['id'] .
']', htmlspecialchars(stripslashes($products_name[$languages[$i]
['id']])));
echo tep_draw_hidden_field('products_info[' . $languages[$i]['id'] .
']',
htmlspecialchars(stripslashes($products_info[$languages[$i]['id']])));
echo tep_draw_hidden_field('products_description[' .
$languages[$i]['id'] . ']',
htmlspecialchars(stripslashes($products_description[$languages[$i]
['id']])));
echo tep_draw_hidden_field('products_url[' . $languages[$i]
['id'] .
']', htmlspecialchars(stripslashes($products_url[$languages[$i]
['id']])));
}
echo tep_draw_hidden_field('products_image',
stripslashes($products_image_name));
if (isset($HTTP_GET_VARS['pID'])) {
echo tep_image_submit('button_update.gif', IMAGE_UPDATE);
} else {
echo tep_image_submit('button_insert.gif', IMAGE_INSERT);
}
echo ' <a href="' .
tep_href_link(FILENAME_CATEGORIES,
'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' .
$HTTP_GET_VARS['pID'] : '')) . '">' .
tep_image_button('button_cancel.gif',
IMAGE_CANCEL) . '</a>';
?></td>
</tr>
</table></form>
<table width="100%" border="0" cellpadding="4" cellspacing="4">
<tr>
<td class="main" valign="top">
<hr>
<b>IMPORTANT</b><BR>
After clicking on <B>Update</b> you then click on <b>My Catalogue</b>
then
click on <b>Set Download Files</b> to set the download options for
the
product.<br>
You should have already uploaded your product ZIP folder to the
<b>download</b> folder on your web server using your FTP Programme or
by
clicking on the <b>File Manager</b> link at the top of this page.
(Instructions for uploading files can be found at the bottom of the
Categories/Products page.)<br>
Your product can't be downloaded by customers unless you do these
things.<p>
</TD></TR></TABLE>
<?php
}
} else {
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td><table border="0" width="100%" cellspacing="0"
cellpadding="0">
<tr>
<td class="pageHeading"><?php echo HEADING_TITLE; ?><br>
</td>
<td class="main" align="right"><?php echo
tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></
td>
<td align="right"><table border="0" width="100%"
cellspacing="0"
cellpadding="0">
<tr>
<td class="smallText" align="right">
<?php
echo tep_draw_form('search', FILENAME_CATEGORIES, '', 'get');
echo HEADING_TITLE_SEARCH . ' ' . tep_draw_input_field('search');
echo '</form>';
?>
</td>
</tr>
<tr>
<td class="smallText" align="right">
<?php
echo tep_draw_form('goto', FILENAME_CATEGORIES, '', 'get');
echo HEADING_TITLE_GOTO . ' ' . tep_draw_pull_down_menu('cPath',
tep_get_category_tree(), $current_category_id,
'onChange="this.form.submit();"');
echo '</form>';
?>
</td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><table border="0" width="100%" cellspacing="0"
cellpadding="0">
<tr>
<td valign="top"><table border="0" width="100%"
cellspacing="0"
cellpadding="2">
<tr class="dataTableHeadingRow">
<td class="dataTableHeadingContent"><?php echo
TABLE_HEADING_CATEGORIES_PRODUCTS; ?></td>
<td class="dataTableHeadingContent" align="center"><?
php echo
TABLE_HEADING_STATUS; ?></td>
<td class="dataTableHeadingContent" align="right"><?
php echo
TABLE_HEADING_ACTION; ?> </td>
</tr>
<?php
$categories_count = 0;
$rows = 0;
if (isset($HTTP_GET_VARS['search'])) {
$search = tep_db_prepare_input($HTTP_GET_VARS['search']);
$categories_query = tep_db_query("select c.categories_id,
cd.categories_name, c.categories_image, c.parent_id, c.sort_order,
c.date_added, c.last_modified from " . TABLE_CATEGORIES . " c, " .
TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id =
cd.categories_id
and cd.language_id = '" . (int)$languages_id . "' and
cd.categories_name like
'%" . tep_db_input($search) . "%' order by c.sort_order,
cd.categories_name");
} else {
$categories_query = tep_db_query("select c.categories_id,
cd.categories_name, c.categories_image, c.parent_id, c.sort_order,
c.date_added, c.last_modified from " . TABLE_CATEGORIES . " c, " .
TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" .
(int)$current_category_id . "' and c.categories_id = cd.categories_id
and
cd.language_id = '" . (int)$languages_id . "' order by c.sort_order,
cd.categories_name");
}
while ($categories = tep_db_fetch_array($categories_query)) {
$categories_count++;
$rows++;
// Get parent_id for subcategories if search
if (isset($HTTP_GET_VARS['search'])) $cPath=
$categories['parent_id'];
if ((!isset($HTTP_GET_VARS['cID']) && !
isset($HTTP_GET_VARS['pID']) ||
(isset($HTTP_GET_VARS['cID']) && ($HTTP_GET_VARS['cID'] ==
$categories['categories_id']))) && !isset($cInfo) && (substr($action,
0, 3)
!= 'new')) {
$category_childs = array('childs_count' =>
tep_childs_in_category_count($categories['categories_id']));
$category_products = array('products_count' =>
tep_products_in_category_count($categories['categories_id']));
$cInfo_array = array_merge($categories, $category_childs,
$category_products);
$cInfo = new objectInfo($cInfo_array);
}
if (isset($cInfo) && is_object($cInfo) &&
($categories['categories_id']
== $cInfo->categories_id) ) {
echo ' <tr id="defaultSelected"
class="dataTableRowSelected" onmouseover="rowOverEffect(this)"
onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' .
tep_href_link(FILENAME_CATEGORIES,
tep_get_path($categories['categories_id'])) . '\'">' . "\n";
} else {
echo ' <tr class="dataTableRow"
onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)"
onclick="document.location.href=\'' .
tep_href_link(FILENAME_CATEGORIES,
'cPath=' . $cPath . '&cID=' . $categories['categories_id']) . '\'">' .
"\n";
}
?>
<td class="dataTableContent"><?php echo '<a href="' .
tep_href_link(FILENAME_CATEGORIES,
tep_get_path($categories['categories_id'])) . '">' .
tep_image(DIR_WS_ICONS .
'folder.gif', ICON_FOLDER) . '</a> <b>' .
$categories['categories_name']
.. '</b>'; ?></td>
<td class="dataTableContent" align="center"> </
td>
<td class="dataTableContent" align="right"><?php if
(isset($cInfo) && is_object($cInfo) && ($categories['categories_id']
==
$cInfo->categories_id) ) { echo tep_image(DIR_WS_IMAGES .
'icon_arrow_right.gif', ''); } else { echo '<a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' .
$categories['categories_id']) . '">' . tep_image(DIR_WS_IMAGES .
'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td>
</tr>
<?php
}
$products_count = 0;
if (isset($HTTP_GET_VARS['search'])) {
$products_query = tep_db_query("select p.products_id,
pd.products_name,
p.products_quantity, p.products_image, p.products_price,
p.products_date_added, p.products_last_modified,
p.products_date_available,
p.products_status, p2c.categories_id from " . TABLE_PRODUCTS . " p,
" .
TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES .
" p2c
where p.products_id = pd.products_id and pd.language_id = '" .
(int)$languages_id . "' and p.products_id = p2c.products_id and
pd.products_name like '%" . tep_db_input($search) . "%' order by
pd.products_name");
} else {
$products_query = tep_db_query("select p.products_id,
pd.products_name,
p.products_quantity, p.products_image, p.products_price,
p.products_date_added, p.products_last_modified,
p.products_date_available,
p.products_status from " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES .
" p2c
where p.products_id = pd.products_id and pd.language_id = '" .
(int)$languages_id . "' and p.products_id = p2c.products_id and
p2c.categories_id = '" . (int)$current_category_id . "' order by
pd.products_name");
}
while ($products = tep_db_fetch_array($products_query)) {
$products_count++;
$rows++;
// Get categories_id for product if search
if (isset($HTTP_GET_VARS['search'])) $cPath =
$products['categories_id'];
if ( (!isset($HTTP_GET_VARS['pID']) && !
isset($HTTP_GET_VARS['cID']) ||
(isset($HTTP_GET_VARS['pID']) && ($HTTP_GET_VARS['pID'] ==
$products['products_id']))) && !isset($pInfo) && !isset($cInfo) &&
(substr($action, 0, 3) != 'new')) {
// find out the rating average from customer reviews
$pInfo_array = array_merge($products);
$pInfo = new objectInfo($pInfo_array);
}
if (isset($pInfo) && is_object($pInfo) &&
($products['products_id'] ==
$pInfo->products_id) ) {
echo ' <tr id="defaultSelected"
class="dataTableRowSelected" onmouseover="rowOverEffect(this)"
onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' .
$products['products_id'] . '&action=new_product_preview&read=only') .
'\'">'
.. "\n";
} else {
echo ' <tr class="dataTableRow"
onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)"
onclick="document.location.href=\'' .
tep_href_link(FILENAME_CATEGORIES,
'cPath=' . $cPath . '&pID=' . $products['products_id']) . '\'">' .
"\n";
}
?>
<td class="dataTableContent"><?php echo '<a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' .
$products['products_id'] . '&action=new_product_preview&read=only') .
'">' .
tep_image(DIR_WS_ICONS . 'preview.gif', ICON_PREVIEW) . '</
a> ' .
$products['products_name']; ?></td>
<td class="dataTableContent" align="center">
<?php
if ($products['products_status'] == '1') {
echo tep_image(DIR_WS_IMAGES . 'icon_status_green.gif',
IMAGE_ICON_STATUS_GREEN, 10, 10) . ' <a href="' .
tep_href_link(FILENAME_CATEGORIES, 'action=setflag&flag=0&pID=' .
$products['products_id'] . '&cPath=' . $cPath) . '">' .
tep_image(DIR_WS_IMAGES . 'icon_status_red_light.gif',
IMAGE_ICON_STATUS_RED_LIGHT, 10, 10) . '</a>';
} else {
echo '<a href="' . tep_href_link(FILENAME_CATEGORIES,
'action=setflag&flag=1&pID=' . $products['products_id'] . '&cPath=' .
$cPath)
.. '">' . tep_image(DIR_WS_IMAGES . 'icon_status_green_light.gif',
IMAGE_ICON_STATUS_GREEN_LIGHT, 10, 10) . '</a> ' .
tep_image(DIR_WS_IMAGES . 'icon_status_red.gif',
IMAGE_ICON_STATUS_RED, 10,
10);
}
?></td>
<td class="dataTableContent" align="right"><?php if
(isset($pInfo) && is_object($pInfo) && ($products['products_id'] ==
$pInfo->products_id)) { echo tep_image(DIR_WS_IMAGES .
'icon_arrow_right.gif', ''); } else { echo '<a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' .
$products['products_id']) . '">' . tep_image(DIR_WS_IMAGES .
'icon_info.gif',
IMAGE_ICON_INFO) . '</a>'; } ?> </td>
</tr>
<?php
}
$cPath_back = '';
if (sizeof($cPath_array) > 0) {
for ($i=0, $n=sizeof($cPath_array)-1; $i<$n; $i++) {
if (empty($cPath_back)) {
$cPath_back .= $cPath_array[$i];
} else {
$cPath_back .= '_' . $cPath_array[$i];
}
}
}
$cPath_back = (tep_not_null($cPath_back)) ? 'cPath=' .
$cPath_back . '&'
: '';
?>
<tr>
<td colspan="3"><table border="0" width="100%"
cellspacing="0" cellpadding="2">
<tr>
<td class="smallText"><?php echo
TEXT_CATEGORIES .
' ' . $categories_count . '<br>' . TEXT_PRODUCTS . ' ' .
$products_count; ?></td>
<td align="right" class="smallText"><?php if
(sizeof($cPath_array) > 0) echo '<a href="' .
tep_href_link(FILENAME_CATEGORIES, $cPath_back . 'cID=' .
$current_category_id) . '">' . tep_image_button('button_back.gif',
IMAGE_BACK) . '</a>
'; if (!isset($HTTP_GET_VARS['search'])) echo '<a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath .
'&action=new_category') . '">' .
tep_image_button('button_new_category.gif',
IMAGE_NEW_CATEGORY) . '</a>
<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath .
'&action=new_product') . '">' .
tep_image_button('button_new_product.gif',
IMAGE_NEW_PRODUCT) . '</a>'; ?>
</td>
</tr>
</table></td>
</tr>
</table></td>
<?php
$heading = array();
$contents = array();
switch ($action) {
case 'new_category':
$heading[] = array('text' => '<b>' .
TEXT_INFO_HEADING_NEW_CATEGORY .
'</b>');
$contents = array('form' => tep_draw_form('newcategory',
FILENAME_CATEGORIES, 'action=insert_category&cPath=' . $cPath,
'post',
'enctype="multipart/form-data"'));
$contents[] = array('text' => TEXT_NEW_CATEGORY_INTRO);
$category_inputs_string = '';
$languages = tep_get_languages();
for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
$category_inputs_string .= '<br>' .
tep_draw_input_field('categories_name[' . $languages[$i]['id'] . ']');
}
$contents[] = array('text' => '<br>' . TEXT_CATEGORIES_NAME .
$category_inputs_string);
$contents[] = array('text' => '<br>' . TEXT_SORT_ORDER .
'<br>' .
tep_draw_input_field('sort_order', '', 'size="2"'));
$contents[] = array('align' => 'center', 'text' => '<br>' .
tep_image_submit('button_save.gif', IMAGE_SAVE) . ' <a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath) . '">' .
tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
break;
case 'edit_category':
$heading[] = array('text' => '<b>' .
TEXT_INFO_HEADING_EDIT_CATEGORY
.. '</b>');
$contents = array('form' => tep_draw_form('categories',
FILENAME_CATEGORIES, 'action=update_category&cPath=' . $cPath,
'post',
'enctype="multipart/form-data"') .
tep_draw_hidden_field('categories_id',
$cInfo->categories_id));
$contents[] = array('text' => TEXT_EDIT_INTRO);
$category_inputs_string = '';
$languages = tep_get_languages();
for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
$category_inputs_string .= '<br>' .
tep_draw_input_field('categories_name[' . $languages[$i]['id'] . ']',
tep_get_category_name($cInfo->categories_id, $languages[$i]['id']));
}
$contents[] = array('text' => '<br>' .
TEXT_EDIT_CATEGORIES_NAME .
$category_inputs_string);
$contents[] = array('text' => '<br>' . TEXT_EDIT_SORT_ORDER .
'<br>'
.. tep_draw_input_field('sort_order', $cInfo->sort_order, 'size="2"'));
$contents[] = array('align' => 'center', 'text' => '<br>' .
tep_image_submit('button_save.gif', IMAGE_SAVE) . ' <a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' .
$cInfo->categories_id) . '">' . tep_image_button('button_cancel.gif',
IMAGE_CANCEL) . '</a>');
break;
case 'delete_category':
$heading[] = array('text' => '<b>' .
TEXT_INFO_HEADING_DELETE_CATEGORY . '</b>');
$contents = array('form' => tep_draw_form('categories',
FILENAME_CATEGORIES, 'action=delete_category_confirm&cPath=' .
$cPath) .
tep_draw_hidden_field('categories_id', $cInfo->categories_id));
$contents[] = array('text' => TEXT_DELETE_CATEGORY_INTRO);
$contents[] = array('text' => '<br><b>' . $cInfo-
> categories_name .
'</b>');
if ($cInfo->childs_count > 0) $contents[] = array('text' =>
'<br>' .
sprintf(TEXT_DELETE_WARNING_CHILDS, $cInfo->childs_count));
if ($cInfo->products_count > 0) $contents[] = array('text' =>
'<br>'
.. sprintf(TEXT_DELETE_WARNING_PRODUCTS, $cInfo->products_count));
$contents[] = array('align' => 'center', 'text' => '<br>' .
tep_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' .
$cInfo->categories_id) . '">' . tep_image_button('button_cancel.gif',
IMAGE_CANCEL) . '</a>');
break;
case 'move_category':
$heading[] = array('text' => '<b>' .
TEXT_INFO_HEADING_MOVE_CATEGORY
.. '</b>');
$contents = array('form' => tep_draw_form('categories',
FILENAME_CATEGORIES, 'action=move_category_confirm&cPath=' .
$cPath) .
tep_draw_hidden_field('categories_id', $cInfo->categories_id));
$contents[] = array('text' =>
sprintf(TEXT_MOVE_CATEGORIES_INTRO,
$cInfo->categories_name));
$contents[] = array('text' => '<br>' . sprintf(TEXT_MOVE,
$cInfo->categories_name) . '<br>' .
tep_draw_pull_down_menu('move_to_category_id',
tep_get_category_tree(),
$current_category_id));
$contents[] = array('align' => 'center', 'text' => '<br>' .
tep_image_submit('button_move.gif', IMAGE_MOVE) . ' <a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' .
$cInfo->categories_id) . '">' . tep_image_button('button_cancel.gif',
IMAGE_CANCEL) . '</a>');
break;
case 'delete_product':
$heading[] = array('text' => '<b>' .
TEXT_INFO_HEADING_DELETE_PRODUCT
.. '</b>');
$contents = array('form' => tep_draw_form('products',
FILENAME_CATEGORIES, 'action=delete_product_confirm&cPath=' .
$cPath) .
tep_draw_hidden_field('products_id', $pInfo->products_id));
$contents[] = array('text' => TEXT_DELETE_PRODUCT_INTRO);
$contents[] = array('text' => '<br><b>' . $pInfo-
> products_name .
'</b>');
$product_categories_string = '';
$product_categories = tep_generate_category_path($pInfo-
> products_id,
'product');
for ($i = 0, $n = sizeof($product_categories); $i < $n; $i++)
{
$category_path = '';
for ($j = 0, $k = sizeof($product_categories[$i]); $j < $k;
$j++) {
$category_path .= $product_categories[$i][$j]['text'] .
' > ';
}
$category_path = substr($category_path, 0, -16);
$product_categories_string .=
tep_draw_checkbox_field('product_categories[]',
$product_categories[$i][sizeof($product_categories[$i])-1]['id'],
true) .
' ' . $category_path . '<br>';
}
$product_categories_string =
substr($product_categories_string, 0,
-4);
$contents[] = array('text' => '<br>' .
$product_categories_string);
$contents[] = array('align' => 'center', 'text' => '<br>' .
tep_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' .
$pInfo->products_id) . '">' . tep_image_button('button_cancel.gif',
IMAGE_CANCEL) . '</a>');
break;
case 'move_product':
$heading[] = array('text' => '<b>' .
TEXT_INFO_HEADING_MOVE_PRODUCT .
'</b>');
$contents = array('form' => tep_draw_form('products',
FILENAME_CATEGORIES, 'action=move_product_confirm&cPath=' . $cPath) .
tep_draw_hidden_field('products_id', $pInfo->products_id));
$contents[] = array('text' =>
sprintf(TEXT_MOVE_PRODUCTS_INTRO,
$pInfo->products_name));
$contents[] = array('text' => '<br>' .
TEXT_INFO_CURRENT_CATEGORIES .
'<br><b>' . tep_output_generated_category_path($pInfo->products_id,
'product') . '</b>');
$contents[] = array('text' => '<br>' . sprintf(TEXT_MOVE,
$pInfo->products_name) . '<br>' .
tep_draw_pull_down_menu('move_to_category_id',
tep_get_category_tree(),
$current_category_id));
$contents[] = array('align' => 'center', 'text' => '<br>' .
tep_image_submit('button_move.gif', IMAGE_MOVE) . ' <a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' .
$pInfo->products_id) . '">' . tep_image_button('button_cancel.gif',
IMAGE_CANCEL) . '</a>');
break;
case 'copy_to':
$heading[] = array('text' => '<b>' .
TEXT_INFO_HEADING_COPY_TO .
'</b>');
$contents = array('form' => tep_draw_form('copy_to',
FILENAME_CATEGORIES, 'action=copy_to_confirm&cPath=' . $cPath) .
tep_draw_hidden_field('products_id', $pInfo->products_id));
$contents[] = array('text' => TEXT_INFO_COPY_TO_INTRO);
$contents[] = array('text' => '<br>' .
TEXT_INFO_CURRENT_CATEGORIES .
'<br><b>' . tep_output_generated_category_path($pInfo->products_id,
'product') . '</b>');
$contents[] = array('text' => '<br>' . TEXT_CATEGORIES .
'<br>' .
tep_draw_pull_down_menu('categories_id', tep_get_category_tree(),
$current_category_id));
$contents[] = array('text' => '<br>' . TEXT_HOW_TO_COPY .
'<br>' .
tep_draw_radio_field('copy_as', 'link', true) . ' ' .
TEXT_COPY_AS_LINK .
'<br>' . tep_draw_radio_field('copy_as', 'duplicate') . ' ' .
TEXT_COPY_AS_DUPLICATE);
$contents[] = array('align' => 'center', 'text' => '<br>' .
tep_image_submit('button_copy.gif', IMAGE_COPY) . ' <a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' .
$pInfo->products_id) . '">' . tep_image_button('button_cancel.gif',
IMAGE_CANCEL) . '</a>');
break;
default:
if ($rows > 0) {
if (isset($cInfo) && is_object($cInfo)) { // category info
box
contents
$heading[] = array('text' => '<b>' . $cInfo-
> categories_name .
'</b>');
$contents[] = array('align' => 'center', 'text' => '<a
href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' .
$cInfo->categories_id . '&action=edit_category') . '">' .
tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' .
$cInfo->categories_id . '&action=delete_category') . '">' .
tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a> <a
href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' .
$cInfo->categories_id . '&action=move_category') . '">' .
tep_image_button('button_move.gif', IMAGE_MOVE) . '</a>');
$contents[] = array('text' => '<br>' .
tep_info_image($cInfo->categories_image, $cInfo->categories_name,
HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT) . '<br>' .
$cInfo->categories_image);
$contents[] = array('text' => '<br>' .
TEXT_SUBCATEGORIES . ' ' .
$cInfo->childs_count . '<br>' . TEXT_PRODUCTS . ' ' .
$cInfo->products_count);
} elseif (isset($pInfo) && is_object($pInfo)) { // product
info box
contents
$heading[] = array('text' => '<b>' .
tep_get_products_name($pInfo->products_id, $languages_id) . '</b>');
$contents[] = array('align' => 'center', 'text' => '<a
href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' .
$pInfo->products_id . '&action=new_product') . '">' .
tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' .
$pInfo->products_id . '&action=delete_product') . '">' .
tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a> <a
href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' .
$pInfo->products_id . '&action=move_product') . '">' .
tep_image_button('button_move.gif', IMAGE_MOVE) . '</a> <a href="' .
tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' .
$pInfo->products_id . '&action=copy_to') . '">' .
tep_image_button('button_copy_to.gif', IMAGE_COPY_TO) . '</a>');
$contents[] = array('text' => '<br>' .
tep_info_image($pInfo->products_image, $pInfo->products_name,
SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '<br>' . $pInfo-
> products_image);
$contents[] = array('text' => '<br>' .
TEXT_PRODUCTS_PRICE_INFO .
' ' . $currencies->format($pInfo->products_price) . '<br>' .
TEXT_PRODUCTS_QUANTITY_INFO . ' ' . $pInfo->products_quantity);
}
} else { // create category/product info
$heading[] = array('text' => '<b>' . EMPTY_CATEGORY . '</
b>');
$contents[] = array('text' =>
TEXT_NO_CHILD_CATEGORIES_OR_PRODUCTS);
}
break;
}
if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
echo ' <td width="25%" valign="top">' . "\n";
$box = new box;
echo $box->infoBox($heading, $contents);
echo ' </td>' . "\n";
}
?>
</tr>
</table></td>
</tr>
</table>
<?php
}
?>
<!-- body_text_eof //-->
</td></tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="5">
<tr>
<td class="main">
<hr><b>INSTRUCTIONS:</B><br>
<font color=#ff0033><B>If this is your first time here, make sure you
click
on ALL the links on the left, including the Configuration links to
familiarize yourself
with your new store. Each page has INSTRUCTIONS at the foot of each
page.
Please read instructions carefully. You may change any settings to
suit.</b></font><p>
<b>Adding a New Product</b><br>
Firstly you must <b>upload the ZIP folder containing your product</b>
to the
<b>download</b> folder on your web server. <br>
It MUST be a zip folder. Also, make sure there are no spaces in your
filename. i.e. if it is two words, use an underscore. e.g.
your_file.zip<br>
Files can be uploaded using an FTP Programme or by using your File
Manager
feature in your web server control panel.<P>
To create a new product page for your new product, click on the FOLDER
of the
category that you want your product to appear in.<BR>
Once INSIDE the category, click on <B>New Product</B>. Input your
product
details, such as name, description, price, etc. and follow the
onscreen
intructions.<p>
After that, you will need to <B>SET your download file</B>. To do
this, click
on <b>My Catalogue</b> then click on <b>Set Download Files</b> and
follow the
instructions.<br>
Your product is then added to your Store.<p>
<b>Copying a Product to Multiple Categories</b> <br>
Sometimes you may want your product to appear in several
categories.<br>
To do this, select your product from the list and click on <b>Copy To</
b>.
<br>
Select a category to copy to from the drop box, then click on
<b>Copy</b>.<br>
(make sure it is selected as Link Product.)<p>
<b>Adding a New Category</b><br>
Click on <b>New Category</b>. Input your category name and then click
on
<b>Save</b>.
</td></tr></table>
<!-- body_eof //-->
<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
|
|
|