♥Tsimi Posted July 28, 2016 Share Posted July 28, 2016 (edited) @@LeeFoster Mmmmm... yes and no. It's been a while since I looked at it but as far I remember there is a drop down where you select an option and right side or below that drop down you'll see the a thumbnail of that image. Long, long time ago I tried to create some sort of tile layout with all the thumbnails and you could click on the image to select it. The code can be changed to do more or less anything. Then there is Kymations Option Images for the Modular Product Page which gives you a drop down with name and thumbnail image in it. Looks very nice, unfortunately I was not able to make it work with the Option Types addon. If you can I would recommend to install this Option Types addon in a clean test shop and play around with it before deciding to install this in a live shop. Edited July 28, 2016 by Tsimi Quote Link to comment Share on other sites More sharing options...
LeeFoster Posted July 28, 2016 Share Posted July 28, 2016 Kymations one is for responsive, my site isn't so it won't work. Quote Link to comment Share on other sites More sharing options...
♥Tsimi Posted July 28, 2016 Share Posted July 28, 2016 @@LeeFoster I see... then you won't have many options besides this Option Types addon for non-BS and maybe one or two older addons, just a guess though. Never considered to go a step further up to Responsive? Many cool features already build in from the start... Quote Link to comment Share on other sites More sharing options...
LeeFoster Posted July 28, 2016 Share Posted July 28, 2016 Didn't know how to go the responsive route, I've only ever used standard oscommerce Quote Link to comment Share on other sites More sharing options...
jlous Posted August 1, 2016 Share Posted August 1, 2016 I am doing a new install of the responsive version. This is the first addon that is installed. I am using the database for our old website which is v2.3.2 after making the changes to the database for the responsive version. The only error I have found so far is in Shopping_cart.php. I am using 2 text area attributes. One or both of them can be empty. If both are left blank there are errors in the shopping cart Warning: Illegal string offset 'txt_3' in ...\shopping_cart.php on line 68 Warning: Illegal string offset 'txt_3' in ...\shopping_cart.php on line 69 Warning: Illegal string offset 'txt_5' in ...\shopping_cart.php on line 68 Warning: Illegal string offset 'txt_5' in ...\shopping_cart.php on line 69 If I ignore the error and continue on to checkout everything works until the Confirm Order button is clicked. Then I get Warning: Illegal string offset 'txt_3' in ...\includes\classes\order.php on line 304 Warning: Illegal string offset 'txt_5' in ...\includes\classes\order.php on line 304 Fatal error: Call to undefined function tep_decode_specialchars() in ...\checkout_process.php on line 254 How do I allow for empty fields or insert a default value in them? Quote Link to comment Share on other sites More sharing options...
ShaGGy Posted August 1, 2016 Share Posted August 1, 2016 Hi there, Just installed this contri and have a problem . If i work with chrome i can put text in the productoptions and everything goes well. but in Edge i cant write in the text area just nothing happens Any idea someone thx Danny Just tried it in Edge and works fine Quote Link to comment Share on other sites More sharing options...
ShaGGy Posted August 1, 2016 Share Posted August 1, 2016 Having a small issue with the cart when updating qty or removing it appears that the remove function is trying to remove or update the url it is trying to process is shopping_cart.php?products_id=29{txt_6}testing&action=remove_product this only happens where (i have only used text part) their is a attribute attached to the item If I add an item to the cart that does not have any attribute the remove button works and I think it is related to the ... {txt_6}testing ... it adds in the url (and session) any suggestions? Quote Link to comment Share on other sites More sharing options...
fotogaaf Posted August 1, 2016 Share Posted August 1, 2016 (edited) Same here since 1 week ?????? Cannot update shopping cart?? Try for yourself: http://www.fotogaaf.eu/schoolfotograaf-nederland-aanbieding-betaalbaar-prijs-actie-goedkoop/catalog/index.php/cPath/23 Everything the customers buys he/she HAS to fill in a photonumber....... Even if you delete the shopping cart it stays when you clich shopping cart again ?!!!Please advice Edited August 1, 2016 by fotogaaf Quote Link to comment Share on other sites More sharing options...
♥Tsimi Posted August 2, 2016 Share Posted August 2, 2016 (edited) @@fotogaaf Did everything work before? I can remove the product from your cart when I click on the X button next to the update button. What I cannot do in your shopping cart is update the product quantity and remove all items by clicking on the large red button. I will install this into a clean Edge store and see what the issue is. My current guess would be something in the application_top.php Edited August 2, 2016 by Tsimi Quote Link to comment Share on other sites More sharing options...
ShaGGy Posted August 2, 2016 Share Posted August 2, 2016 @@fotogaaf Did everything work before? I can remove the product from your cart when I click on the X button next to the update button. What I cannot do in your shopping cart is update the product quantity and remove all items by clicking on the large red button. I will install this into a clean Edge store and see what the issue is. My current guess would be something in the application_top.php Keep in mind the new edge no longer supports filenames.php and the shopping_cart.php is now stripped out and you need to install the module for shopping cart http://addons.oscommerce.com/info/9466 My installl is the newest edge release. Quote Link to comment Share on other sites More sharing options...
fotogaaf Posted August 2, 2016 Share Posted August 2, 2016 @@Tsimi thanks for responding. Everything worked fine till about 2-3 weeks before (It's Summer Holidays here, so zero to less orders!) I wasn't aware of http://addons.oscommerce.com/info/9466 ??!!! I didn't change anything since 10 may 2016...........so you think it could be http://addons.oscommerce.com/info/9466 ?? Quote Link to comment Share on other sites More sharing options...
♥Tsimi Posted August 2, 2016 Share Posted August 2, 2016 (edited) At this very moment I can't tell you what it is but if it worked before and now it doesn't then something happened or you never really mention it till today/yesterday. The current osC EDGE has no modular shopping cart yet. So I won't be going there yet. I will install the latest Option Types BS into a clean, fresh downloaded osC Edge and see what is going on. The addon will need an update since the filenames.php is depricated in the latest Edge version. I also need to create modules for the modular product page by kymation and if possible modules for the modular shopping cart by raiwa & co. Edited August 2, 2016 by Tsimi Quote Link to comment Share on other sites More sharing options...
fotogaaf Posted August 2, 2016 Share Posted August 2, 2016 @Tsimi I know 2 things for sure: 1) nothing changed in the last months 2) everything worked fine, for sure till 17 july2016 and I changed nothing ?! Quote Link to comment Share on other sites More sharing options...
♥Tsimi Posted August 2, 2016 Share Posted August 2, 2016 @@jlous Hi Jennifer Do you have the following code inside the catalog/includes/functions/general.php file? function tep_decode_specialchars($string){ $string=str_replace('>', '>', $string); $string=str_replace('<', '<', $string); $string=str_replace(''', "'", $string); $string=str_replace('"', "\"", $string); $string=str_replace('&', '&', $string); return $string; } Did you use some special characters inside the text fields? the fields have a default INPUT and ID. When you go to your admin area -> Products Attributes -> under Option Values you should have/see ID 0 / CUSTOMER-INPUT that is the default and should be not deleted from the database. If that is deleted it won't work. Quote Link to comment Share on other sites More sharing options...
♥Tsimi Posted August 2, 2016 Share Posted August 2, 2016 @@fotogaaf @@ShaGGy So I installed this into a local, brand new, today downloaded Edge osC shop and I created various options and added them to a product. I then added that product to the cart and I can update/remove or even add multiple products and remove them all with that Remove All button. So no issue at all here. I have no clue what is not working in your guys shops. I must admit that this is only tested in a local (XAMPP) environment and not on a real server but I think that shouldn't really matter. The only thing I can tell you guys right now is to double check your codes inside the application_top.php and if possible go quickly over the install manual and re-check if the code pieces are still there inside all the other files. Quote Link to comment Share on other sites More sharing options...
fotogaaf Posted August 2, 2016 Share Posted August 2, 2016 (edited) 1) I have: function tep_decode_specialchars($string){ $string=str_replace('>', '>', $string); $string=str_replace('<', '<', $string); $string=str_replace(''', "'", $string); $string=str_replace('"', "\"", $string); $string=str_replace('&', '&', $string); return $string; } 2) i only use numbers in the text field 3) ID 0 / CUSTOMER-INPUT is the default My catalog/includes/application_top.php is iin the next post I don't see anything special??! Edited August 2, 2016 by fotogaaf Quote Link to comment Share on other sites More sharing options...
fotogaaf Posted August 2, 2016 Share Posted August 2, 2016 <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2014 osCommerce Released under the GNU General Public License */ // start the timer for the page parse time log define('PAGE_PARSE_START_TIME', microtime()); // set the level of error reporting error_reporting(E_ALL & ~E_NOTICE); // check support for register_globals if (function_exists('ini_get') && (ini_get('register_globals') == false) && (PHP_VERSION < 4.3) ) { exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory. Please use PHP 4.3+ if register_globals cannot be enabled on the server.'); } // load server configuration parameters if (file_exists('includes/local/configure.php')) { // for developers include('includes/local/configure.php'); } else { include('includes/configure.php'); } if (DB_SERVER == '') { if (is_dir('install')) { header('Location: install/index.php'); exit; } } // define the project version --- obsolete, now retrieved with tep_get_version() define('PROJECT_VERSION', 'osCommerce Online Merchant v2.3'); // some code to solve compatibility issues require(DIR_WS_FUNCTIONS . 'compatibility.php'); // set the type of request (secure or not) $request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL'; // set php_self in the local scope $req = parse_url($HTTP_SERVER_VARS['SCRIPT_NAME']); $PHP_SELF = substr($req['path'], ($request_type == 'NONSSL') ? strlen(DIR_WS_HTTP_CATALOG) : strlen(DIR_WS_HTTPS_CATALOG)); if ($request_type == 'NONSSL') { define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG); } else { define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG); } // include the list of project filenames require(DIR_WS_INCLUDES . 'filenames.php'); // include the list of project database tables require(DIR_WS_INCLUDES . 'database_tables.php'); // include the database functions require(DIR_WS_FUNCTIONS . 'database.php'); // make a connection to the database... now tep_db_connect() or die('Unable to connect to database server!'); // set the application parameters $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION); while ($configuration = tep_db_fetch_array($configuration_query)) { define($configuration['cfgKey'], $configuration['cfgValue']); } // if gzip_compression is enabled, start to buffer the output if ( (GZIP_COMPRESSION == 'true') && ($ext_zlib_loaded = extension_loaded('zlib')) && !headers_sent() ) { if (($ini_zlib_output_compression = (int)ini_get('zlib.output_compression')) < 1) { if (PHP_VERSION < '5.4' || PHP_VERSION > '5.4.5') { // see PHP bug 55544 if (PHP_VERSION >= '4.0.4') { ob_start('ob_gzhandler'); } elseif (PHP_VERSION >= '4.0.1') { include(DIR_WS_FUNCTIONS . 'gzip_compression.php'); ob_start(); ob_implicit_flush(); } } } elseif (function_exists('ini_set')) { ini_set('zlib.output_compression_level', GZIP_LEVEL); } } // set the HTTP GET parameters manually if search_engine_friendly_urls is enabled if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') { if (strlen(getenv('PATH_INFO')) > 1) { $GET_array = array(); $PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF); $vars = explode('/', substr(getenv('PATH_INFO'), 1)); do_magic_quotes_gpc($vars); $n=sizeof($vars); for ($i=0; $i<$n; $i++) { if (strpos($vars[$i], '[]')) { $GET_array[substr($vars[$i], 0, -2)][] = $vars[$i+1]; } else { $HTTP_GET_VARS[$vars[$i]] = $vars[$i+1]; } $i++; } if ($GET_array !== null) { foreach($GET_array as $key => $value) { $HTTP_GET_VARS[$key] = $value; } } } } // define general functions used application-wide require(DIR_WS_FUNCTIONS . 'general.php'); require(DIR_WS_FUNCTIONS . 'html_output.php'); // set the cookie domain $cookie_domain = (($request_type == 'NONSSL') ? HTTP_COOKIE_DOMAIN : HTTPS_COOKIE_DOMAIN); $cookie_path = (($request_type == 'NONSSL') ? HTTP_COOKIE_PATH : HTTPS_COOKIE_PATH); // include cache functions if enabled if (USE_CACHE == 'true') include(DIR_WS_FUNCTIONS . 'cache.php'); // include shopping cart class require(DIR_WS_CLASSES . 'shopping_cart.php'); // include navigation history class require(DIR_WS_CLASSES . 'navigation_history.php'); // define how the session functions will be used require(DIR_WS_FUNCTIONS . 'sessions.php'); // set the session name and save path tep_session_name('osCsid'); tep_session_save_path(SESSION_WRITE_DIRECTORY); // set the session cookie parameters if (function_exists('session_set_cookie_params')) { session_set_cookie_params(0, $cookie_path, $cookie_domain); } elseif (function_exists('ini_set')) { ini_set('session.cookie_lifetime', '0'); ini_set('session.cookie_path', $cookie_path); ini_set('session.cookie_domain', $cookie_domain); } @ini_set('session.use_only_cookies', (SESSION_FORCE_COOKIE_USE == 'True') ? 1 : 0); // set the session ID if it exists if ( SESSION_FORCE_COOKIE_USE == 'False' ) { if ( isset($HTTP_GET_VARS[tep_session_name()]) && (!isset($HTTP_COOKIE_VARS[tep_session_name()]) || ($HTTP_COOKIE_VARS[tep_session_name()] != $HTTP_GET_VARS[tep_session_name()])) ) { tep_session_id($HTTP_GET_VARS[tep_session_name()]); } elseif ( isset($HTTP_POST_VARS[tep_session_name()]) && (!isset($HTTP_COOKIE_VARS[tep_session_name()]) || ($HTTP_COOKIE_VARS[tep_session_name()] != $HTTP_POST_VARS[tep_session_name()])) ) { tep_session_id($HTTP_POST_VARS[tep_session_name()]); } } // start the session $session_started = false; if (SESSION_FORCE_COOKIE_USE == 'True') { tep_setcookie('cookie_test', 'please_accept_for_session', time()+60*60*24*30, $cookie_path, $cookie_domain); if (isset($HTTP_COOKIE_VARS['cookie_test'])) { tep_session_start(); $session_started = true; } } elseif (SESSION_BLOCK_SPIDERS == 'True') { $user_agent = strtolower(getenv('HTTP_USER_AGENT')); $spider_flag = false; if (tep_not_null($user_agent)) { $spiders = file(DIR_WS_INCLUDES . 'spiders.txt'); $n=sizeof($spiders); for ($i=0; $i<$n; $i++) { if (tep_not_null($spiders[$i])) { if (is_integer(strpos($user_agent, trim($spiders[$i])))) { $spider_flag = true; break; } } } } if ($spider_flag == false) { tep_session_start(); $session_started = true; } } else { tep_session_start(); $session_started = true; } if ( ($session_started == true) && (PHP_VERSION >= 4.3) && function_exists('ini_get') && (ini_get('register_globals') == false) ) { extract($_SESSION, EXTR_OVERWRITE+EXTR_REFS); } // initialize a session token if (!tep_session_is_registered('sessiontoken')) { $sessiontoken = md5(tep_rand() . tep_rand() . tep_rand() . tep_rand()); tep_session_register('sessiontoken'); } // set SID once, even if empty $SID = (defined('SID') ? SID : ''); // verify the ssl_session_id if the feature is enabled if ( ($request_type == 'SSL') && (SESSION_CHECK_SSL_SESSION_ID == 'True') && (ENABLE_SSL == true) && ($session_started == true) ) { $ssl_session_id = getenv('SSL_SESSION_ID'); if (!tep_session_is_registered('SSL_SESSION_ID')) { $SESSION_SSL_ID = $ssl_session_id; tep_session_register('SESSION_SSL_ID'); } if ($SESSION_SSL_ID != $ssl_session_id) { tep_session_destroy(); tep_redirect(tep_href_link(FILENAME_SSL_CHECK)); } } // verify the browser user agent if the feature is enabled if (SESSION_CHECK_USER_AGENT == 'True') { $http_user_agent = getenv('HTTP_USER_AGENT'); if (!tep_session_is_registered('SESSION_USER_AGENT')) { $SESSION_USER_AGENT = $http_user_agent; tep_session_register('SESSION_USER_AGENT'); } if ($SESSION_USER_AGENT != $http_user_agent) { tep_session_destroy(); tep_redirect(tep_href_link(FILENAME_LOGIN)); } } // verify the IP address if the feature is enabled if (SESSION_CHECK_IP_ADDRESS == 'True') { $ip_address = tep_get_ip_address(); if (!tep_session_is_registered('SESSION_IP_ADDRESS')) { $SESSION_IP_ADDRESS = $ip_address; tep_session_register('SESSION_IP_ADDRESS'); } if ($SESSION_IP_ADDRESS != $ip_address) { tep_session_destroy(); tep_redirect(tep_href_link(FILENAME_LOGIN)); } } // create the shopping cart if (!tep_session_is_registered('cart') || !is_object($cart)) { tep_session_register('cart'); $cart = new shoppingCart; } // include currencies class and create an instance require(DIR_WS_CLASSES . 'currencies.php'); $currencies = new currencies(); // include the mail classes require(DIR_WS_CLASSES . 'mime.php'); require(DIR_WS_CLASSES . 'email.php'); // set the language if (!tep_session_is_registered('language') || isset($HTTP_GET_VARS['language'])) { if (!tep_session_is_registered('language')) { tep_session_register('language'); tep_session_register('languages_id'); } include(DIR_WS_CLASSES . 'language.php'); $lng = new language(); if (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) { $lng->set_language($HTTP_GET_VARS['language']); } else { $lng->get_browser_language(); } $language = $lng->language['directory']; $languages_id = $lng->language['id']; } // include the language translations $_system_locale_numeric = setlocale(LC_NUMERIC, 0); require(DIR_WS_LANGUAGES . $language . '.php'); setlocale(LC_NUMERIC, $_system_locale_numeric); // Prevent LC_ALL from setting LC_NUMERIC to a locale with 1,0 float/decimal values instead of 1.0 (see bug #634) // currency if (!tep_session_is_registered('currency') || isset($HTTP_GET_VARS['currency']) || ( (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && (LANGUAGE_CURRENCY != $currency) ) ) { if (!tep_session_is_registered('currency')) tep_session_register('currency'); if (isset($HTTP_GET_VARS['currency']) && $currencies->is_set($HTTP_GET_VARS['currency'])) { $currency = $HTTP_GET_VARS['currency']; } else { $currency = ((USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && $currencies->is_set(LANGUAGE_CURRENCY)) ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY; } } // navigation history if (!tep_session_is_registered('navigation') || !is_object($navigation)) { tep_session_register('navigation'); $navigation = new navigationHistory; } $navigation->add_current_page(); // action recorder include('includes/classes/action_recorder.php'); //BOF - Zappo - Option Types v2 - Moved infobox and messageStack here from below // infobox require(DIR_WS_CLASSES . 'boxes.php'); // initialize the message stack for output messages require(DIR_WS_CLASSES . 'alertbox.php'); require(DIR_WS_CLASSES . 'message_stack.php'); $messageStack = new messageStack; // Shopping cart actions if (isset($HTTP_GET_VARS['action'])) { // redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled if ($session_started == false) { tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE)); } if (DISPLAY_CART == 'true') { $goto = FILENAME_SHOPPING_CART; $parameters = array('action', 'cPath', 'products_id', 'pid'); } else { $goto = $PHP_SELF; if ($HTTP_GET_VARS['action'] == 'buy_now') { $parameters = array('action', 'pid', 'products_id'); } else { $parameters = array('action', 'pid'); } } switch ($HTTP_GET_VARS['action']) { ////BOF - Zappo - Option Types v2 JOLI BUG FIX FOR CLEAR CART TEXT FIELDS case 'clear_cart': $cart->remove_all(); tep_redirect(tep_href_link(FILENAME_SHOPPING_CART)); break; ////EOF - Zappo - Option Types v2 JOLI BUG FIX FOR CLEAR CART TEXT FIELDS // customer wants to update the product quantity in their shopping cart case 'update_product' : $n=sizeof($HTTP_POST_VARS['products_id']); for ($i=0; $i<$n; $i++) { if (in_array($HTTP_POST_VARS['products_id'][$i], (is_array($HTTP_POST_VARS['cart_delete']) ? $HTTP_POST_VARS['cart_delete'] : array()))) { $cart->remove($HTTP_POST_VARS['products_id'][$i]); $messageStack->add_session('product_action', sprintf(PRODUCT_REMOVED, tep_get_products_name($HTTP_POST_VARS['products_id'][$i])), 'warning'); } else { $attributes = ($HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]]) ? $HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]] : ''; $cart->add_cart($HTTP_POST_VARS['products_id'][$i], $HTTP_POST_VARS['cart_quantity'][$i], $attributes, false); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; // customer adds a product from the products page //BOF - Zappo - Option Types v2 - File uploading: Purge the Temporary Upload Dir case 'add_product' : if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) { $purgeDir = opendir(TMP_DIR) or die ('Could not open '.TMP_DIR); while ($file = readdir($purgeDir)) { if ($file != ('.htaccess') && $file != ('.') && $file != ('..') && filemtime(TMP_DIR . $file) < strtotime(OPTIONS_TYPE_PURGETIME)) { unlink(TMP_DIR . $file); // Delete file from server... tep_db_query("delete from files_uploaded where files_uploaded_name = '" . $file . "'"); // Remove File's database entry.... } } closedir($purgeDir); //EOF - Zappo - Option Types v2 - File uploading: Purge the Temporary Upload Dir //BOF - Zappo - Option Types v2 - ONE LINE - Set real_ids for processing $real_ids = $HTTP_POST_VARS['id']; //BOF - Zappo - Option Types v2 - File uploading: save uploaded files with unique file names, in the proper folder if ($HTTP_POST_VARS['number_of_uploads'] > 0) { require(DIR_WS_CLASSES . 'upload.php'); for ($i = 1; $i <= $HTTP_POST_VARS['number_of_uploads']; $i++) { $TEMP_FILE = $_FILES['id']['tmp_name'][TEXT_PREFIX . $HTTP_POST_VARS[uPLOAD_PREFIX . $i]]; if (tep_not_null($TEMP_FILE) && $TEMP_FILE != 'none') { $products_options_file = new upload('id'); //BOF - Zappo - Option Types v2 - Set Upload directory (Registered customers in Uploads, other in Temporary folder) if (tep_session_is_registered('customer_id')) { // IF the customer is registered, use Upload Dir $products_options_file->set_destination(UPL_DIR); } else { // If the customer is not registered, use Temporary Dir $products_options_file->set_destination(TMP_DIR); } //EOF - Zappo - Option Types v2 - Set Upload directory (Registered customers in Uploads, other in Temporary folder) incl. RAIWA FIX! if ($products_options_file->parse(TEXT_PREFIX . $HTTP_POST_VARS[uPLOAD_PREFIX . $i])) { if (tep_session_is_registered('customer_id')) { tep_db_query("insert into files_uploaded (sesskey, customers_id, files_uploaded_name, date) values('" . tep_session_id() . "', '" . $customer_id . "', '" . tep_db_input($products_options_file->filename) . "', '" . date("d-m-y") . "')"); } else { tep_db_query("insert into files_uploaded (sesskey, files_uploaded_name, date) values('" . tep_session_id() . "', '" . tep_db_input($products_options_file->filename) . "', '" . date("d-m-y") . "')"); // @@raiwa added 2 lines for guest file upload compatibility with OsC 2.3. $guestSessionID = tep_session_id(); if (!tep_session_is_registered('guestSessionID')) tep_session_register('guestSessionID'); } //BOF - Zappo - Option Types v2 - Set File Prefix if (OPTIONS_TYPE_FILEPREFIX == 'Database') { // Database ID as File prefix $insert_id = tep_db_insert_id() . '_'; } else { // Date, time or both as File prefix (Change date formatting here) if (OPTIONS_TYPE_FILEPREFIX == 'Date' || OPTIONS_TYPE_FILEPREFIX == 'DateTime') { $insert_id = 'D'.date("d-m-y_"); } $insert_id .= (OPTIONS_TYPE_FILEPREFIX == 'DateTime' || OPTIONS_TYPE_FILEPREFIX == 'Time') ? 'T'.date("H-i_") : ''; } //EOF - Zappo - Option Types v2 - Set File Prefix // Update filename in Database with correct prefix (For comparing database names with real files) tep_db_query("update files_uploaded set files_uploaded_name = '" . tep_db_input($insert_id . $products_options_file->filename) . "' where sesskey = '" . tep_session_id() . "' and files_uploaded_name = '" . tep_db_input($products_options_file->filename) . "' and date = '" . date("d-m-y") . "'"); $real_ids[TEXT_PREFIX . $HTTP_POST_VARS[uPLOAD_PREFIX . $i]] = $insert_id . $products_options_file->filename; $products_options_file->set_filename($insert_id . $products_options_file->filename); if (!($products_options_file->save())) { break 2; } } else { break 2; } } else { // No file uploaded -- use previously uploaded file (From Dropdown) $real_ids[TEXT_PREFIX . $HTTP_POST_VARS[uPLOAD_PREFIX . $i]] = $HTTP_POST_VARS[TEXT_PREFIX . UPLOAD_PREFIX . $i]; } } } //EOF - Zappo - Option Types v2 - File uploading: save uploaded files with unique file names, in the proper folder //BOF - Zappo - Option Types v2 - ONE LINE - Replace the posted array with the processed one. //BOF JOHN ADDED QUANTITY BOX TO PRODUCT INFO $cart->add_cart($_POST['products_id'], $cart->get_quantity(tep_get_uprid($_POST['products_id'], $real_ids))+ $_POST['cart_quantity'], $real_ids); // $cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $real_ids))+1, $real_ids); //EOF JOHN ADDED QUANTITY BOX TO PRODUCT INFO } $messageStack->add_session('product_action', sprintf(PRODUCT_ADDED, tep_get_products_name((int)$HTTP_POST_VARS['products_id'])), 'success'); tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; // customer removes a product from their shopping cart case 'remove_product' : if (isset($HTTP_GET_VARS['products_id'])) { $cart->remove($HTTP_GET_VARS['products_id']); $messageStack->add_session('product_action', sprintf(PRODUCT_REMOVED, tep_get_products_name($HTTP_GET_VARS['products_id'])), 'warning'); } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; // performed by the 'buy now' button in product listings and review page case 'buy_now' : if (isset($HTTP_GET_VARS['products_id'])) { if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) { tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id'])); } else { $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1); $messageStack->add_session('product_action', sprintf(PRODUCT_ADDED, tep_get_products_name((int)$HTTP_GET_VARS['products_id'])), 'success'); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; case 'notify' : if (tep_session_is_registered('customer_id')) { if (isset($HTTP_GET_VARS['products_id'])) { $notify = $HTTP_GET_VARS['products_id']; } elseif (isset($HTTP_GET_VARS['notify'])) { $notify = $HTTP_GET_VARS['notify']; } elseif (isset($HTTP_POST_VARS['notify'])) { $notify = $HTTP_POST_VARS['notify']; } else { tep_redirect(tep_href_link($PHP_SELF, tep_get_all_get_params(array('action', 'notify')))); } if (!is_array($notify)) $notify = array($notify); $n=sizeof($notify); for ($i=0; $i<$n; $i++) { $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . (int)$notify[$i] . "' and customers_id = '" . (int)$customer_id . "'"); $check = tep_db_fetch_array($check_query); if ($check['count'] < 1) { tep_db_query("insert into " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id, customers_id, date_added) values ('" . (int)$notify[$i] . "', '" . (int)$customer_id . "', now())"); } } $messageStack->add_session('product_action', sprintf(PRODUCT_SUBSCRIBED, tep_get_products_name((int)$HTTP_GET_VARS['products_id'])), 'success'); tep_redirect(tep_href_link($PHP_SELF, tep_get_all_get_params(array('action', 'notify')))); } else { $navigation->set_snapshot(); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } break; case 'notify_remove' : if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['products_id'])) { $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and customers_id = '" . (int)$customer_id . "'"); $check = tep_db_fetch_array($check_query); if ($check['count'] > 0) { tep_db_query("delete from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and customers_id = '" . (int)$customer_id . "'"); } $messageStack->add_session('product_action', sprintf(PRODUCT_UNSUBSCRIBED, tep_get_products_name((int)$HTTP_GET_VARS['products_id'])), 'warning'); tep_redirect(tep_href_link($PHP_SELF, tep_get_all_get_params(array('action')))); } else { $navigation->set_snapshot(); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } break; case 'cust_order' : if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['pid'])) { if (tep_has_product_attributes($HTTP_GET_VARS['pid'])) { tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['pid'])); } else { $cart->add_cart($HTTP_GET_VARS['pid'], $cart->get_quantity($HTTP_GET_VARS['pid'])+1); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; } } // include the who's online functions require(DIR_WS_FUNCTIONS . 'whos_online.php'); tep_update_whos_online(); // include the password crypto functions require(DIR_WS_FUNCTIONS . 'password_funcs.php'); // include validation functions (right now only email address) require(DIR_WS_FUNCTIONS . 'validations.php'); // split-page-results require(DIR_WS_CLASSES . 'split_page_results.php'); //BOF - Zappo - Option Types v2 - ONE LINE - infobox moved up from here... // infobox //require(DIR_WS_CLASSES . 'boxes.php'); // auto activate and expire banners require(DIR_WS_FUNCTIONS . 'banner.php'); tep_activate_banners(); tep_expire_banners(); // auto expire special products require(DIR_WS_FUNCTIONS . 'specials.php'); tep_expire_specials(); require(DIR_WS_CLASSES . 'osc_template.php'); $oscTemplate = new oscTemplate(); // calculate category path if (isset($HTTP_GET_VARS['cPath'])) { $cPath = $HTTP_GET_VARS['cPath']; } elseif (isset($HTTP_GET_VARS['products_id']) && !isset($HTTP_GET_VARS['manufacturers_id'])) { $cPath = tep_get_product_path($HTTP_GET_VARS['products_id']); } else { $cPath = ''; } if (tep_not_null($cPath)) { $cPath_array = tep_parse_category_path($cPath); $cPath = implode('_', $cPath_array); $current_category_id = end($cPath_array); } else { $current_category_id = 0; } // include category tree class require(DIR_WS_CLASSES . 'category_tree.php'); // include the breadcrumb class and start the breadcrumb trail require(DIR_WS_CLASSES . 'breadcrumb.php'); $breadcrumb = new breadcrumb; $breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER); $breadcrumb->add(HEADER_TITLE_CATALOG, tep_href_link(FILENAME_DEFAULT)); // add category names or the manufacturer name to the breadcrumb trail if (isset($cPath_array)) { $n=sizeof($cPath_array); for ($i=0; $i<$n; $i++) { $categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'"); if (tep_db_num_rows($categories_query) > 0) { $categories = tep_db_fetch_array($categories_query); $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); } else { break; } } } elseif (isset($HTTP_GET_VARS['manufacturers_id'])) { $manufacturers_query = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"); if (tep_db_num_rows($manufacturers_query)) { $manufacturers = tep_db_fetch_array($manufacturers_query); $breadcrumb->add($manufacturers['manufacturers_name'], tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'])); } } // add the products model to the breadcrumb trail if (isset($HTTP_GET_VARS['products_id'])) { $model_query = tep_db_query("select products_model from " . TABLE_PRODUCTS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'"); if (tep_db_num_rows($model_query)) { $model = tep_db_fetch_array($model_query); $breadcrumb->add($model['products_model'], tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $HTTP_GET_VARS['products_id'])); } } // Discount Code 3.2 - start if (MODULE_ORDER_TOTAL_DISCOUNT_STATUS == 'true') { if (!tep_session_is_registered('sess_discount_code')) tep_session_register('sess_discount_code'); if (!empty($HTTP_GET_VARS['discount_code'])) $sess_discount_code = tep_db_prepare_input($HTTP_GET_VARS['discount_code']); if (!empty($HTTP_POST_VARS['discount_code'])) $sess_discount_code = tep_db_prepare_input($HTTP_POST_VARS['discount_code']); } // Discount Code 3.2 - end Quote Link to comment Share on other sites More sharing options...
♥Tsimi Posted August 2, 2016 Share Posted August 2, 2016 (edited) @@fotogaaf The special character stuff was not meant for you. ;) Your application_top.php file looks good. Compared it to mine and they are same. Can you show me your shopping_cart.php file? Please use the code input feature ( < > icon ) to paste code or use pastebin.com Edited August 2, 2016 by Tsimi Quote Link to comment Share on other sites More sharing options...
♥Tsimi Posted August 2, 2016 Share Posted August 2, 2016 @@fotogaaf Roy Forget about the shopping_cart.php file. What ever is going on in your shop has probably nothing to do with the Option Types BS addon. Did you change anything on your session or cache settings in your admin? I tried to add various products from your shop to the cart and I enter a number and click the cart button but it won't add anything to the shopping cart "unless" i click another product link or go away from the product_info.php page. Same goes for the shopping_cart.php page, I click on the remove all button and nothing happens then I click on any link to go to some other page and if I go back to the shopping_cart.php page the products are all gone. That is weird behaviour which sure requires some attention otherwise you won't be able to sell anything like that. Can you once create a test product without any options and let's see if that one behaves weird too. Quote Link to comment Share on other sites More sharing options...
fotogaaf Posted August 2, 2016 Share Posted August 2, 2016 Thanks for trying !! I have 1 article: http://www.fotogaaf.eu/schoolfotograaf-nederland-aanbieding-betaalbaar-prijs-actie-goedkoop/catalog/product_info.php/products_id/147 That one behaves the same.......... So yes, i think also has probably nothing to do with the Option Types BS addon :( :( Cache : Use Cache true Cache Directory/public/sites/www.fotogaaf.eu/schoolfotograaf-nederland-aanbieding-betaalbaar-prijs-actie-goedkoop/catalog/includes/work/ Sessions: Titel Waarde Actie Session Directory /public/sites/www.fotogaaf.eu/schoolfotograaf-nederland-aanbieding-betaalbaar-prijs-actie-goedkoop/catalog/includes/work/ Force Cookie Use True Check SSL Session ID False Check User Agent False Check IP Address False Prevent Spider Sessions True Recreate Session True Quote Link to comment Share on other sites More sharing options...
ShaGGy Posted August 2, 2016 Share Posted August 2, 2016 (edited) @@fotogaaf @@ShaGGy So I installed this into a local, brand new, today downloaded Edge osC shop and I created various options and added them to a product. I then added that product to the cart and I can update/remove or even add multiple products and remove them all with that Remove All button. So no issue at all here. I have no clue what is not working in your guys shops. I must admit that this is only tested in a local (XAMPP) environment and not on a real server but I think that shouldn't really matter. The only thing I can tell you guys right now is to double check your codes inside the application_top.php and if possible go quickly over the install manual and re-check if the code pieces are still there inside all the other files. Remove all works fine on mine. I only have issue with any item that has an attribute attached to it (does not need to have attribute added to it in cart just the item has a attribute assigned in admin) If it had No attributes it will update qty and remove as it should. If it has a attribute it will update qty but will not remove. I noticed that the remover url contains contains products_id=xx{xx} and does not work but items that have no attributes use url products_id=xx (it appears it has something to do with the {xx} part? Also tried removing {xx} from basket in database but it still inserted it so it appears to be getting the url from the session? Edited August 2, 2016 by ShaGGy Quote Link to comment Share on other sites More sharing options...
ShaGGy Posted August 2, 2016 Share Posted August 2, 2016 (edited) @@fotogaaf Roy Forget about the shopping_cart.php file. What ever is going on in your shop has probably nothing to do with the Option Types BS addon. Did you change anything on your session or cache settings in your admin? I tried to add various products from your shop to the cart and I enter a number and click the cart button but it won't add anything to the shopping cart "unless" i click another product link or go away from the product_info.php page. Same goes for the shopping_cart.php page, I click on the remove all button and nothing happens then I click on any link to go to some other page and if I go back to the shopping_cart.php page the products are all gone. That is weird behaviour which sure requires some attention otherwise you won't be able to sell anything like that. Can you once create a test product without any options and let's see if that one behaves weird too. I tried his also with same results on @@fotogaaf site if you add two items then remove one the one disapears but then when you remove the remaining one the first reappears :) this appears to be installed incorrectly somewhere. Edited August 2, 2016 by ShaGGy Quote Link to comment Share on other sites More sharing options...
fotogaaf Posted August 3, 2016 Share Posted August 3, 2016 pffff...beats me whats going on?! Quote Link to comment Share on other sites More sharing options...
♥Tsimi Posted August 3, 2016 Share Posted August 3, 2016 @@fotogaaf Set Force Cookie Use to False and make sure the folder work for cache is still there and the path is correct. Quote Link to comment Share on other sites More sharing options...
ShaGGy Posted August 3, 2016 Share Posted August 3, 2016 @@Tsimiin addition to my post above I have just noticed if I adjust qty up or down it updates and if i set qty to zero it removes it which is working using the product_id only. If I use the remove item on the line it then includes the {XX} after the products_id example = shopping_cart.php?products_id=29{txt_6}&action=remove_product I think the remove function in application top needs modifying to allow for the {XX} for item that have attributes? Apart from this the addon appears to be working fine. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.