Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

[Contribution] More_pics_6 v1.1 For osC 2.2 MS2


surfalot

Recommended Posts

Thanks for this cool contribution. I can't wait to get it working properly.

 

The only problem I'm having is integrating it with my product_info page. I also have another contribution called QT Pro that's screwing things up.

 

Can someone, who has both More_Pics and QT Pro post their product_info page so I can see how they did it?

 

Thanks so much!!!!

 

Jason

Link to comment
Share on other sites

  • Replies 1.6k
  • Created
  • Last Reply

Top Posters In This Topic

Having problem. I added version 1.3i and everything was fine until I got to adding a product. I was able to see the preview, but when I hit the submit button for a new product this is the error that I got:

 

Fatal error: Call to undefined function tep_output_generated_category_path_fs() in

................/admin/categories.php on line 236

 

Here is line 236 in the admin/categories.php:

 

$sql_data_array['products_subimage1'] = tep_output_generated_category_path_fs($current_category_id) .tep_db_prepare_input($HTTP_POST_VARS['products_subimage1']);

 

Can anyone help. I have not seen anyone else with this error.

 

Thanks

Link to comment
Share on other sites

Check the install c for the dit to catalog/admin/includes/functions/general.php. the error Call to undefined function means php can't find the function, which means it is not in genera.php

 

lildog

 

Having problem. I added version 1.3i and everything was fine until I got to adding a product. I was able to see the preview, but when I hit the submit button for a new product this is the error that I got:

 

Fatal error: Call to undefined function tep_output_generated_category_path_fs() in

................/admin/categories.php on line 236

 

Here is line 236 in the admin/categories.php:

 

$sql_data_array['products_subimage1'] = tep_output_generated_category_path_fs($current_category_id) .tep_db_prepare_input($HTTP_POST_VARS['products_subimage1']);

 

Can anyone help. I have not seen anyone else with this error.

 

Thanks

Link to comment
Share on other sites

I am running ms 2.2 version. I added contribution for seperate pricing per customer which was on the newest 2007 admin/includes/functions/general.php file. The one on the more pics vers 1.3i is on the general.php file for older version dated 2003. I took the line edits and added to my current general.php file. Here it is:

 

<?php

/*

$Id: general.php 1739 2007-12-20 00:52:16Z hpdl $

adapted for Separate Pricing Per Customer v4.20 2005/01/29

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2007 osCommerce

 

Released under the GNU General Public License

*/

 

////

// 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 .= '>';

 

// BOF Separate Pricing Per Customer

$all_groups=array();

$customers_groups_query = tep_db_query("select customers_group_name, customers_group_id from " . TABLE_CUSTOMERS_GROUPS . " order by customers_group_id ");

while ($existing_groups = tep_db_fetch_array($customers_groups_query)) {

$all_groups[$existing_groups['customers_group_id']]=$existing_groups['customers_group_name'];

}

// EOF Separate Pricing Per Customer

$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)) {

// BOF Separate Price Per Customer

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

$price_query=tep_db_query("select customers_group_price, customers_group_id from " . TABLE_PRODUCTS_GROUPS . " where products_id = " . $products['products_id']);

$product_prices=array();

while($prices_array=tep_db_fetch_array($price_query)){

$product_prices[$prices_array['customers_group_id']]=$prices_array['customers_group_price'];

}

reset($all_groups);

$price_string="";

$sde=0;

while(list($sdek,$sdev)=each($all_groups)){

if (!in_array((int)$products['products_id'].":".(int)$sdek, $exclude)) {

if($sde)

$price_string.=", ";

$price_string.=$sdev.": ".$currencies->format(isset($product_prices[$sdek]) ? $product_prices[$sdek]:$products['products_price']);

$sde=1;

}

}

$select_string .= '<option value="' . $products['products_id'] . '">' . $products['products_name'] . ' (' . $price_string . ')</option>\n';

}

// EOF Separate Pricing Per Customer

} // end while ($products = tep_db_fetch_array($products_query))

 

$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;

}

 

////

// 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) {

// BOF: More Pics 6

$product_subimage1_query = tep_db_query("select products_subimage1 from " . TABLE_PRODUCTS . " where products_id = '" . tep_db_input($product_id) . "'");

$product_subimage1 = tep_db_fetch_array($product_subimage1_query);

 

$duplicate_subimage1_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " where products_subimage1 = '" . tep_db_input($product_subimage1['products_subimage1']) . "'");

$duplicate_subimage1 = tep_db_fetch_array($duplicate_subimage1_query);

 

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

if (file_exists(DIR_FS_CATALOG_IMAGES . $product_subimage1['products_subimage1'])) {

@unlink(DIR_FS_CATALOG_IMAGES . $product_subimage1['products_subimage1']);

}

}

 

$product_subimage2_query = tep_db_query("select products_subimage2 from " . TABLE_PRODUCTS . " where products_id = '" . tep_db_input($product_id) . "'");

$product_subimage2 = tep_db_fetch_array($product_subimage2_query);

 

$duplicate_subimage2_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " where products_subimage2 = '" . tep_db_input($product_subimage2['products_subimage2']) . "'");

$duplicate_subimage2 = tep_db_fetch_array($duplicate_subimage2_query);

 

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

if (file_exists(DIR_FS_CATALOG_IMAGES . $product_subimage2['products_subimage2'])) {

@unlink(DIR_FS_CATALOG_IMAGES . $product_subimage2['products_subimage2']);

}

}

 

$product_subimage3_query = tep_db_query("select products_subimage3 from " . TABLE_PRODUCTS . " where products_id = '" . tep_db_input($product_id) . "'");

$product_subimage3 = tep_db_fetch_array($product_subimage3_query);

 

$duplicate_subimage3_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " where products_subimage3 = '" . tep_db_input($product_subimage3['products_subimage3']) . "'");

$duplicate_subimage3 = tep_db_fetch_array($duplicate_subimage3_query);

 

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

if (file_exists(DIR_FS_CATALOG_IMAGES . $product_subimage3['products_subimage3'])) {

@unlink(DIR_FS_CATALOG_IMAGES . $product_subimage3['products_subimage3']);

}

}

 

$product_subimage4_query = tep_db_query("select products_subimage4 from " . TABLE_PRODUCTS . " where products_id = '" . tep_db_input($product_id) . "'");

$product_subimage4 = tep_db_fetch_array($product_subimage4_query);

 

$duplicate_subimage4_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " where products_subimage4 = '" . tep_db_input($product_subimage4['products_subimage4']) . "'");

$duplicate_subimage4 = tep_db_fetch_array($duplicate_subimage4_query);

 

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

if (file_exists(DIR_FS_CATALOG_IMAGES . $product_subimage4['products_subimage4'])) {

@unlink(DIR_FS_CATALOG_IMAGES . $product_subimage4['products_subimage4']);

}

}

 

$product_subimage5_query = tep_db_query("select products_subimage5 from " . TABLE_PRODUCTS . " where products_id = '" . tep_db_input($product_id) . "'");

$product_subimage5 = tep_db_fetch_array($product_subimage5_query);

 

$duplicate_subimage5_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " where products_subimage5 = '" . tep_db_input($product_subimage5['products_subimage5']) . "'");

$duplicate_subimage5 = tep_db_fetch_array($duplicate_subimage5_query);

 

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

if (file_exists(DIR_FS_CATALOG_IMAGES . $product_subimage5['products_subimage5'])) {

@unlink(DIR_FS_CATALOG_IMAGES . $product_subimage5['products_subimage5']);

}

}

 

$product_subimage6_query = tep_db_query("select products_subimage6 from " . TABLE_PRODUCTS . " where products_id = '" . tep_db_input($product_id) . "'");

$product_subimage6 = tep_db_fetch_array($product_subimage6_query);

 

$duplicate_subimage6_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " where products_subimage6 = '" . tep_db_input($product_subimage6['products_subimage6']) . "'");

$duplicate_subimage6 = tep_db_fetch_array($duplicate_subimage6_query);

 

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

if (file_exists(DIR_FS_CATALOG_IMAGES . $product_subimage6['products_subimage6'])) {

@unlink(DIR_FS_CATALOG_IMAGES . $product_subimage6['products_subimage6']);

}

}

// EOF: More Pics 6

$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 . "'");

// BOF Separate Pricing Per Customer

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

// EOF Separate Pricing Per Customer

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 . "' or products_id like '" . (int)$product_id . "{%'");

tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where products_id = '" . (int)$product_id . "' or products_id like '" . (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, $override = false) {

if ( ( (DISPLAY_PRICE_WITH_TAX == 'true') || ($override == true) ) && ($tax > 0) ) {

return $price + tep_calculate_tax($price, $tax);

} else {

return $price;

}

}

 

// Calculates Tax rounding the result

function tep_calculate_tax($price, $tax) {

return $price * $tax / 100;

}

 

////

// 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;

}

?>

 

 

 

 

 

 

 

 

Sorry to be a pest, but I compared the lines and cannot find the error. If you could take a look, I would apprciate it. I put in bold my addition.

 

Thanks

Link to comment
Share on other sites

In categories

 

DELETE ALL tep_output_generated_category_path_fs($current_category_id) .

 

so the affected lines will look similar to:

 

$sql_data_array['products_subimage6'] = tep_db_prepare_input($HTTP_POST_VARS['products_subimage6']);

 

Sorry for the trouble....I do appreciate your persistance and wish OTHERS would do the same. Because almost definiately you are not the only one to have this problem, just the only one to report it. I will also update a new version to the contrib page.

 

lildog

Link to comment
Share on other sites

That seemed to do the trick. I have one other issue. I am a little lazy and have not checked the previous posts, but it has been a long day. I have the boxes for the subimages when I add a new product, but the parent image box is gone. When I put in several images in the subimage boxes, the parent image for the product is broken. when I click on it, I can see the all of the sub images, but still not the parent image.

Link to comment
Share on other sites

Hi I have installed version 1.3j and all seems to work fine, I would like to know if it is possible to use a lightbox addon with this. also like Joel I can not see the parent image and I can not enter a different image in admin due to no input box.

 

Still a great contribution.....

 

Thanks for your time

Link to comment
Share on other sites

I will look into the parent image problem now and report back.

 

Yes you can use a lightbox addon. There are a bunch of them, but if you look at them most of them just require you to edit the popup link. I used I used lightbox direct from the authors web site. Here is an example of my change, All the other lightbox like mods are almost the same.

 

// BOF Lightbox

/* $mopics_output .= ' <td align="center" class="smallText"><script language="javascript"><!--

document.write(\'<a href="java script:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id'].'&invis='.(MOPICS_GROUP_WITH_PARENT=='true'?$mo_item:($mo_item+1))).'\\\')">' . tep_image(DIR_WS_IMAGES . $mopics_images[$mo_item], addslashes($product_info['products_name']), (MOPICS_RESTRICT_PARENT=='false'&&$mo_item==0&&MOPICS_GROUP_WITH_PARENT=='true'?'':$mopics_image_width), (MOPICS_RESTRICT_PARENT=='false'&&$mo_item==0&&MOPICS_GROUP_WITH_PARENT=='true'?'':$mopics_image_height), 'hspace="5" vspace="5"') . '<br><img border=0 src=images/zoom.gif></a>\');

//--></script><noscript>

<a href="' . tep_href_link(DIR_WS_IMAGES . $mopics_images[$mo_item]) . '" target="_blank">' . tep_image(DIR_WS_IMAGES . $mopics_images[$mo_item], $product_info['products_name'], $mopics_image_width, $mopics_image_height, 'hspace="5" vspace="5"') . '<br><img border=0 src=images/zoom.gif></a>

</noscript></td>'."\n";

*/

 

$mopics_output .= '<td align="center" class="smallText"><a href="' . tep_href_link(DIR_WS_IMAGES . $mopics_images[$mo_item]) . '" target="_blank" rel="lightbox" title="'.$product_info['products_name'].'" >' . tep_image(DIR_WS_IMAGES . $mopics_images[$mo_item], $product_info['products_name'], (MOPICS_RESTRICT_PARENT=='false'?'':PRODUCT_IMAGE_WIDTH), (MOPICS_RESTRICT_PARENT=='false'?'':PRODUCT_IMAGE_HEIGHT), 'hspace="5" vspace="5"') . '<br><img border=0 src=images/zoom.gif></a></td>'."\n";

// EOF Lightbox

 

 

lildog

Link to comment
Share on other sites

I think this is the problem. Please let me know if it solves the problem and I will reup a new version.

 

in catalog/admin/categories.php:

 

FIND:

<td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>

<!-- EOF More Pics -->

<!-- <td class="main" ><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_file_field('products_image') . tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . $pInfo->products_image . tep_draw_hidden_field('products_previous_image', $pInfo->products_image); ?>

<?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . tep_draw_checkbox_field('delete_image_1', 'yes', false) . TEXT_DELETE_IMAGE; ?>

</td> -->

 

CHANGE TO:

<td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>

<!-- EOF More Pics -->

<td class="main" ><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_file_field('products_image') . tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . $pInfo->products_image . tep_draw_hidden_field('products_previous_image', $pInfo->products_image); ?>

<?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . tep_draw_checkbox_field('delete_image_1', 'yes', false) . TEXT_DELETE_IMAGE; ?>

</td>

Link to comment
Share on other sites

I think this is the problem. Please let me know if it solves the problem and I will reup a new version.

 

in catalog/admin/categories.php:

 

FIND:

<td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>

<!-- EOF More Pics -->

<!-- <td class="main" ><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_file_field('products_image') . tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . $pInfo->products_image . tep_draw_hidden_field('products_previous_image', $pInfo->products_image); ?>

<?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . tep_draw_checkbox_field('delete_image_1', 'yes', false) . TEXT_DELETE_IMAGE; ?>

</td> -->

 

CHANGE TO:

<td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>

<!-- EOF More Pics -->

<td class="main" ><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_file_field('products_image') . tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . $pInfo->products_image . tep_draw_hidden_field('products_previous_image', $pInfo->products_image); ?>

<?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . tep_draw_checkbox_field('delete_image_1', 'yes', false) . TEXT_DELETE_IMAGE; ?>

</td>

 

 

Thanks todd,

 

your a STAR............ was going to look at code tomorrow but you saved me lots of time..

 

will have a look at the light box on saturday and let you know how I get on..

 

Thanks for your time. :)

Link to comment
Share on other sites

remove <!-- -->, should have seen this when I was adding your contribution, can I blame the children running around my feet. lol...

 

Thanks :)

 

can't seem to edit post sorry..

Link to comment
Share on other sites

Sure you can blame the kids! That was agian my fault, another contrib interfered again.

 

The exact contrib I think that lightbox stuff came from is: OSCommerce Enlarge Image with Lightbox 2.4

 

let me know if you find anymore problems.....

 

lildog

Link to comment
Share on other sites

I think this is the problem. Please let me know if it solves the problem and I will reup a new version.

 

in catalog/admin/categories.php:

 

FIND:

<td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>

<!-- EOF More Pics -->

<!-- <td class="main" ><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_file_field('products_image') . tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . $pInfo->products_image . tep_draw_hidden_field('products_previous_image', $pInfo->products_image); ?>

<?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . tep_draw_checkbox_field('delete_image_1', 'yes', false) . TEXT_DELETE_IMAGE; ?>

</td> -->

 

CHANGE TO:

<td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>

<!-- EOF More Pics -->

<td class="main" ><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_file_field('products_image') . tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . $pInfo->products_image . tep_draw_hidden_field('products_previous_image', $pInfo->products_image); ?>

<?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . tep_draw_checkbox_field('delete_image_1', 'yes', false) . TEXT_DELETE_IMAGE; ?>

</td>

 

 

That worked great!!! Just one alignment issue. The parent box is to the right of the description when you click on the product. The subimage #3 overlaps the lower corner of the parent box. It may not cover it if you have a long product description. If the subimages were lowered a few lines, it should solve that problem. I am not too familiar with the coding or I would try myself. One other question. On my popups for all images, parent and subimages, I would like to use the lightbox. Do you have a contribution that you would suggest. I used one, but it only opens my parent images that way and rest subimages just pop up.

Link to comment
Share on other sites

Hi there,

 

I have installed More pics 6 v1.3k and I like it a lot. But I have one problem: I cannot remove images. Each time I try in the admin section, the image does not get removed from the database. Is that a problem in the unlink function in the general.php? Does anyone else have these kinds of problems?

 

Thank you and b. regards,

CompuSkill

Link to comment
Share on other sites

See my post above for the lightbox add on I used. It is easy to incorporate. It canalso display all the images(including the subimages) in one box with a Next & Previous button if you like, or it can show each one separately. It is just a small matter of altering the popup linksa for each image. I may incorporate it soon, as popup blockers are starting to block the default popups.

 

What is your site url and I will look into the alignment issue.

 

lildog

 

That worked great!!! Just one alignment issue. The parent box is to the right of the description when you click on the product. The subimage #3 overlaps the lower corner of the parent box. It may not cover it if you have a long product description. If the subimages were lowered a few lines, it should solve that problem. I am not too familiar with the coding or I would try myself. One other question. On my popups for all images, parent and subimages, I would like to use the lightbox. Do you have a contribution that you would suggest. I used one, but it only opens my parent images that way and rest subimages just pop up.
Link to comment
Share on other sites

I don't have time right this second to investigate but the unlink function deletes the pic from the server. I think the db function is an alter query.....

 

lildog

 

 

Hi there,

 

I have installed More pics 6 v1.3k and I like it a lot. But I have one problem: I cannot remove images. Each time I try in the admin section, the image does not get removed from the database. Is that a problem in the unlink function in the general.php? Does anyone else have these kinds of problems?

 

Thank you and b. regards,

CompuSkill

Link to comment
Share on other sites

See my post above for the lightbox add on I used. It is easy to incorporate. It canalso display all the images(including the subimages) in one box with a Next & Previous button if you like, or it can show each one separately. It is just a small matter of altering the popup linksa for each image. I may incorporate it soon, as popup blockers are starting to block the default popups.

 

What is your site url and I will look into the alignment issue.

 

lildog

 

 

Here is the URL. http://autodres.startlogic.com/OSC/ Scroll down until you see the "lexus pics" photo and click it. I am trying to get all my add-ons done first before I add content. My first site I did was www.autodress.com. I changed some of the look around, but this is the first time I have actually been adding the contributions, so I am trying to not only learn as I go, but try to somewhat understand what is going on.

Link to comment
Share on other sites

I am using FireFox3, Safari, and old explorer 5.x and don't see an alignment issue on the lexus page. Maybe a screenshot of the problem? If worse comes to worse in the product_info page you could add a separator, the first paramater is width and the second is height. Each will take a percentage or pixels so the one below is 100% wide and 10 pixels tall, thus pushing the more pics down 10 pixels.

 

 

***ADD:

<?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?>

 

***SOMEWHERE IN:

// BOF: More Pics 6

if (MOPICS_TABLE_LOCATION=='below' && !empty($mopics_output)) {

echo ' <br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

//probably add separator here

<tr>

<td align="center" class="smallText">'.$mopics_output.'</td>

</tr>

</table>'."\n";

}

// EOF: More Pics 6

 

 

lildog

 

 

Here is the URL. http://autodres.startlogic.com/OSC/ Scroll down until you see the "lexus pics" photo and click it. I am trying to get all my add-ons done first before I add content. My first site I did was www.autodress.com. I changed some of the look around, but this is the first time I have actually been adding the contributions, so I am trying to not only learn as I go, but try to somewhat understand what is going on.
Edited by lildog
Link to comment
Share on other sites

I don't have time right this second to investigate but the unlink function deletes the pic from the server. I think the db function is an alter query.....

 

lildog

 

 

Hi all,

 

same problem here, no deleting the database image name, if have searched and tested the something like this ( for the last image, to delete the row in the database but didn't work, any futher progress in the ALTER statement, because the link is in with the checkbox but no query is found in the categories.php or general.php , right ?

 

  	$product_subimage6_query = tep_db_query("select products_subimage6 from " . TABLE_PRODUCTS . " where products_id = '" . tep_db_input($product_id) . "'");
 		$product_subimage6 = tep_db_fetch_array($product_subimage6_query);

 		$duplicate_subimage6_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " where products_subimage6 = '" . tep_db_input($product_subimage6['products_subimage6']) . "'");
 		$duplicate_subimage6 = tep_db_fetch_array($duplicate_subimage6_query);

 		if ($duplicate_subimage6['total'] < 2) {
 		  if (file_exists(DIR_FS_CATALOG_IMAGES . $product_subimage6['products_subimage6'])) {
 			@unlink(DIR_FS_CATALOG_IMAGES . $product_subimage6['products_subimage6']);
 		  }
 	}
 	  	    tep_db_query("delete products_subimage6 from " . TABLE_PRODUCTS . " where products_id = '" . (int)$product_id . "'");

Link to comment
Share on other sites

Thanks for the help on the aligment. I hate to keep posting for help, but I need a little more. I added the lightbox contribution that you suggested. The change for the pop up images is self explanatory, except from what I reading, the change is in the middle of your add on coding for mopics. I have tried to intertwine the two, but keep getting errors. Hopefully you can get me the right coding. Here is what the instructions are:

 

3. Next you need to edit the code which displays popup images and add the relation to lightbox, rel="lightbox", you will find this lower down the product_info.php around line 108 staring with <script language="javascript"><!--

document.write('<?php echo '<a href="java script:popupWindow .

 

If you do a search for "ENLARGE" you should find it

 

With clean MS2.2 Find

 

<script language="javascript"><!--

document.write('<?php echo '<a href="java script:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '\\\')">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>');

//--></script>

<noscript>

<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>

</noscript>

 

Replace with

 

<script language="javascript"><!--

document.write('<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank" rel="lightbox" title="'.$product_info['products_name'].'" >' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>');

//--></script>

<noscript>

<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank" rel="lightbox" title="'.$product_info['products_name'].'" >' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>');

</noscript>

 

 

THIS IS YOUR CODE(I THINK THIS IS THE RIGHT PART TO CHANGE AROUND LINE 150 OR SO):

 

$mopics_output .= ' <td align="center" class="smallText"><script language="javascript"><!--

document.write(\'<a href="java script:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id'].'&invis='.(MOPICS_GROUP_WITH_PARENT=='true'?$mo_item:($mo_item+1))).'\\\')">' . tep_image(DIR_WS_IMAGES . $mopics_images[$mo_item], addslashes($product_info['products_name']), (MOPICS_RESTRICT_PARENT=='false'&&$mo_item==0&&MOPICS_GROUP_WITH_PARENT=='true'?'':$mopics_image_width), (MOPICS_RESTRICT_PARENT=='false'&&$mo_item==0&&MOPICS_GROUP_WITH_PARENT=='true'?'':$mopics_image_height), 'hspace="5" vspace="5"') . '<br><img border=0 src=images/zoom.gif></a>\');

//--></script><noscript>

<a href="' . tep_href_link(DIR_WS_IMAGES . $mopics_images[$mo_item]) . '" target="_blank">' . tep_image(DIR_WS_IMAGES . $mopics_images[$mo_item], $product_info['products_name'], $mopics_image_width, $mopics_image_height, 'hspace="5" vspace="5"') . '<br><img border=0 src=images/zoom.gif></a>

</noscript></td>'."\n";

 

As always, thank you very much

Link to comment
Share on other sites

BTW, I don't know if this is/was your case but I used to have alignment issues sometimes when my description was not at least one entire line long, which helps the 'cell' the description is in expand to it's intended length. Here are the two lightbox references i have in products_info.php:

 

$mopics_output .= '<td align="center" class="smallText"><a href="' . tep_href_link(DIR_WS_IMAGES . $mopics_images[$mo_item]) . '" target="_blank" rel="lightbox" title="'.$product_info['products_name'].'" >' . tep_image(DIR_WS_IMAGES . $mopics_images[$mo_item], $product_info['products_name'], (MOPICS_RESTRICT_PARENT=='false'?'':PRODUCT_IMAGE_WIDTH), (MOPICS_RESTRICT_PARENT=='false'?'':PRODUCT_IMAGE_HEIGHT), 'hspace="5" vspace="5"') . '<br><img border=0 src=images/zoom.gif></a></td>'."\n";

 

 

<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank" rel="lightbox" title="'.$product_info['products_name'].'" >' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], (MOPICS_RESTRICT_PARENT=='false'?'':PRODUCT_IMAGE_WIDTH), (MOPICS_RESTRICT_PARENT=='false'?'':PRODUCT_IMAGE_HEIGHT), 'hspace="5" vspace="5"') . '<br><img border=0 src=images/zoom.gif></a>'; ?>

Link to comment
Share on other sites

BTW, I don't know if this is/was your case but I used to have alignment issues sometimes when my description was not at least one entire line long, which helps the 'cell' the description is in expand to it's intended length. Here are the two lightbox references i have in products_info.php:

 

$mopics_output .= '<td align="center" class="smallText"><a href="' . tep_href_link(DIR_WS_IMAGES . $mopics_images[$mo_item]) . '" target="_blank" rel="lightbox" title="'.$product_info['products_name'].'" >' . tep_image(DIR_WS_IMAGES . $mopics_images[$mo_item], $product_info['products_name'], (MOPICS_RESTRICT_PARENT=='false'?'':PRODUCT_IMAGE_WIDTH), (MOPICS_RESTRICT_PARENT=='false'?'':PRODUCT_IMAGE_HEIGHT), 'hspace="5" vspace="5"') . '<br><img border=0 src=images/zoom.gif></a></td>'."\n";

 

 

<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank" rel="lightbox" title="'.$product_info['products_name'].'" >' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], (MOPICS_RESTRICT_PARENT=='false'?'':PRODUCT_IMAGE_WIDTH), (MOPICS_RESTRICT_PARENT=='false'?'':PRODUCT_IMAGE_HEIGHT), 'hspace="5" vspace="5"') . '<br><img border=0 src=images/zoom.gif></a>'; ?>

 

 

Todd,

 

Here is what I am getting now:

 

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /hermes/bosweb/web291/b2915/sl.autodres/public_html/OSC/product_info.php on line 2

 

Parse error: syntax error, unexpected T_STRING in /hermes/bosweb/web291/b2915/sl.autodres/public_html/OSC/product_info.php on line 2

 

 

Can you give me a little more info where to add those lightbox lines. Maybe I put them in the wrong place.

 

Thanks

 

Joel

Link to comment
Share on other sites

Join the conversation

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

×
×
  • Create New...