Jump to content

danic

Members
  • Content count

    34
  • Joined

  • Last visited

Everything posted by danic

  1. At my shop it's not possible to complete a purchase with cookies disabled in the browser, I have tested and I'm not even allowed to add products at the shopping cart. I did a quick search in the contributions library and found this: Session Start Mod Saying: The mod has been designed so that you can switch off 'force cookie usage' in the shop configuration without appending a session ID to the query string. That means that users without cookies switched on can still buy products. Session Start Mod Great! and it works on the page from the example. I implemented the contribution at my site including 'force cookie usage = off’ My problem is that if I add something to the shopping cart, then I get the error message that cookies are not enabled. I have double checked all the files, but I could be that I have some other stuff that influence on this contribution. Any ideas? I have added my application_top.php for further investigation: <?php /* $Id: $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2007 osCommerce Released under the GNU General Public License */ //-MS- SEO-G Added if ( !isset($g_seo_flag) || $g_seo_flag !== true) { // start the timer for the page parse time log define('PAGE_PARSE_START_TIME', microtime()); // set the level of error reporting //Fix egrg deprecated in PHP 5.3 error_reporting(E_ALL & ~E_NOTICE); //error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED); // 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.'); } // Set the local configuration parameters - mainly for developers if (file_exists('includes/local/configure.php')) include('includes/local/configure.php'); // include server parameters require('includes/configure.php'); if (strlen(DB_SERVER) < 1) { if (is_dir('install')) { header('Location: install/index.php'); } } // define the project version define('PROJECT_VERSION', 'osCommerce Online Merchant v2.2 RC1'); // 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 if (!isset($PHP_SELF)) $PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF']; if ($request_type == 'NONSSL') { define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG); } else { define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG); } // include the IP Trap require(DIR_WS_INCLUDES . 'secret.php'); // include the list of project filenames require(DIR_WS_INCLUDES . 'filenames.php'); // include the list of project database tables require(DIR_WS_INCLUDES . 'database_tables.php'); // customization for the design layout define('BOX_WIDTH', 125); // how wide the boxes should be in pixels (default: 125) // include the database functions require(DIR_WS_FUNCTIONS . 'database.php'); // make a connection to the database... now tep_db_connect() or die('Unable to connect to database server!'); // set the application parameters $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION); while ($configuration = tep_db_fetch_array($configuration_query)) { define($configuration['cfgKey'], $configuration['cfgValue']); } //-MS- SEO URLs Support Added require(DIR_WS_CLASSES . 'seo_url.php'); $g_seo_url = new seoURL; //-MS- SEO URLs Support Added EOM } //-MS- SEO-G Added EOM // if gzip_compression is enabled, start to buffer the output if ( (GZIP_COMPRESSION == 'true') && ($ext_zlib_loaded = extension_loaded('zlib')) && (PHP_VERSION >= '4') ) { if (($ini_zlib_output_compression = (int)ini_get('zlib.output_compression')) < 1) { if (PHP_VERSION >= '4.0.4') { ob_start('ob_gzhandler'); } else { include(DIR_WS_FUNCTIONS . 'gzip_compression.php'); ob_start(); ob_implicit_flush(); } } else { ini_set('zlib.output_compression_level', GZIP_LEVEL); } } // set the HTTP GET parameters manually if search_engine_friendly_urls is enabled if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') { if (strlen(getenv('PATH_INFO')) > 1) { $GET_array = array(); $PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF); $vars = explode('/', substr(getenv('PATH_INFO'), 1)); for ($i=0, $n=sizeof($vars); $i<$n; $i++) { if (strpos($vars[$i], '[]')) { $GET_array[substr($vars[$i], 0, -2)][] = $vars[$i+1]; } else { $HTTP_GET_VARS[$vars[$i]] = $vars[$i+1]; } $i++; } if (sizeof($GET_array) > 0) { while (list($key, $value) = each($GET_array)) { $HTTP_GET_VARS[$key] = $value; } } } } // define general functions used application-wide require(DIR_WS_FUNCTIONS . 'general.php'); require(DIR_WS_FUNCTIONS . 'html_output.php'); // set the cookie domain $cookie_domain = (($request_type == 'NONSSL') ? HTTP_COOKIE_DOMAIN : HTTPS_COOKIE_DOMAIN); $cookie_path = (($request_type == 'NONSSL') ? HTTP_COOKIE_PATH : HTTPS_COOKIE_PATH); // include cache functions if enabled if (USE_CACHE == 'true') include(DIR_WS_FUNCTIONS . 'cache.php'); // include shopping cart class require(DIR_WS_CLASSES . 'shopping_cart.php'); // include navigation history class require(DIR_WS_CLASSES . 'navigation_history.php'); // check if sessions are supported, otherwise use the php3 compatible session class if (!function_exists('session_start')) { define('PHP_SESSION_NAME', 'osCsid'); define('PHP_SESSION_PATH', $cookie_path); define('PHP_SESSION_DOMAIN', $cookie_domain); define('PHP_SESSION_SAVE_PATH', SESSION_WRITE_DIRECTORY); include(DIR_WS_CLASSES . 'sessions.php'); } // define how the session functions will be used require(DIR_WS_FUNCTIONS . 'sessions.php'); // set the session name and save path tep_session_name('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); } // coding.1-fix.com: Session Start Mod $ba_SID = false; // set the session ID if it exists if (isset($HTTP_POST_VARS[tep_session_name()])) { tep_session_id($HTTP_POST_VARS[tep_session_name()]); $ba_SID = true; } elseif ( ($request_type == 'SSL') && isset($HTTP_GET_VARS[tep_session_name()]) ) { tep_session_id($HTTP_GET_VARS[tep_session_name()]); $ba_SID = true; } if ((isset($HTTP_GET_VARS[tep_session_name()])) || (isset($HTTP_COOKIE_VARS[tep_session_name()]))){ $ba_SID = true; } $ba_StartSession = isset($ba_StartSession)?$ba_StartSession:false; // coding.1-fix.com: End Changes $session_started = false; if (($ba_StartSession == true) || ($ba_SID == true)){ if (SESSION_FORCE_COOKIE_USE == 'True') { tep_setcookie('cookie_test', 'please_accept_for_session', time()+60*60*24*30, $cookie_path, $cookie_domain); if (isset($HTTP_COOKIE_VARS['cookie_test'])) { tep_session_start(); $session_started = true; } } elseif (SESSION_BLOCK_SPIDERS == 'True') { $user_agent = strtolower(getenv('HTTP_USER_AGENT')); $spider_flag = false; if (tep_not_null($user_agent)) { $spiders = file(DIR_WS_INCLUDES . 'spiders.txt'); for ($i=0, $n=sizeof($spiders); $i<$n; $i++) { if (tep_not_null($spiders[$i])) { if (is_integer(strpos($user_agent, trim($spiders[$i])))) { $spider_flag = true; break; } } } } if ($spider_flag == false) { tep_session_start(); $session_started = true; } } else { tep_session_start(); $session_started = true; } } if ( ($session_started == true) && (PHP_VERSION >= 4.3) && function_exists('ini_get') && (ini_get('register_globals') == false) ) { extract($_SESSION, EXTR_OVERWRITE+EXTR_REFS); } // set SID once, even if empty $SID = (defined('SID') ? SID : ''); // verify the ssl_session_id if the feature is enabled if ( ($request_type == 'SSL') && (SESSION_CHECK_SSL_SESSION_ID == 'True') && (ENABLE_SSL == true) && ($session_started == true) ) { $ssl_session_id = getenv('SSL_SESSION_ID'); if (!tep_session_is_registered('SSL_SESSION_ID')) { $SESSION_SSL_ID = $ssl_session_id; tep_session_register('SESSION_SSL_ID'); } if ($SESSION_SSL_ID != $ssl_session_id) { tep_session_destroy(); tep_redirect(tep_href_link(FILENAME_SSL_CHECK)); } } // verify the browser user agent if the feature is enabled if (SESSION_CHECK_USER_AGENT == 'True') { $http_user_agent = getenv('HTTP_USER_AGENT'); if (!tep_session_is_registered('SESSION_USER_AGENT')) { $SESSION_USER_AGENT = $http_user_agent; tep_session_register('SESSION_USER_AGENT'); } if ($SESSION_USER_AGENT != $http_user_agent) { tep_session_destroy(); tep_redirect(tep_href_link(FILENAME_LOGIN)); } } // verify the IP address if the feature is enabled if (SESSION_CHECK_IP_ADDRESS == 'True') { $ip_address = tep_get_ip_address(); if (!tep_session_is_registered('SESSION_IP_ADDRESS')) { $SESSION_IP_ADDRESS = $ip_address; tep_session_register('SESSION_IP_ADDRESS'); } if ($SESSION_IP_ADDRESS != $ip_address) { tep_session_destroy(); tep_redirect(tep_href_link(FILENAME_LOGIN)); } } // create the shopping cart & fix the cart if necesary if (tep_session_is_registered('cart') && is_object($cart)) { if (PHP_VERSION < 4) { $broken_cart = $cart; $cart = new shoppingCart; $cart->unserialize($broken_cart); } } else { tep_session_register('cart'); $cart = new shoppingCart; } // include currencies class and create an instance require(DIR_WS_CLASSES . 'currencies.php'); $currencies = new currencies(); // BOF QPBPP_v1_3_6 // include the price formatter classes for the price breaks contribution require(DIR_WS_CLASSES . 'PriceFormatter.php'); $pf = new PriceFormatter; require(DIR_WS_CLASSES . 'PriceFormatterStore.php'); $pfs = new PriceFormatterStore; // EOF QPBPP_v1_3_6 // 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 { if (AUTO_DETECT_BROWSER_LANGUAGE == "Ja") { $lng->get_browser_language(); } else { $lng->set_language(DEFAULT_LANGUAGE); } } $language = $lng->language['directory']; $languages_id = $lng->language['id']; } // include the language translations require(DIR_WS_LANGUAGES . $language . '.php'); // currency if (!tep_session_is_registered('currency') || isset($HTTP_GET_VARS['currency']) || ( (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && (LANGUAGE_CURRENCY != $currency) ) ) { if (!tep_session_is_registered('currency')) tep_session_register('currency'); if (isset($HTTP_GET_VARS['currency']) && $currencies->is_set($HTTP_GET_VARS['currency'])) { $currency = $HTTP_GET_VARS['currency']; } else { $currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY; } } // navigation history if (tep_session_is_registered('navigation')) { if (PHP_VERSION < 4) { $broken_navigation = $navigation; $navigation = new navigationHistory; $navigation->unserialize($broken_navigation); } } else { tep_session_register('navigation'); $navigation = new navigationHistory; } $navigation->add_current_page(); // BOF: Down for Maintenance except for admin ip if (EXCLUDE_ADMIN_IP_FOR_MAINTENANCE != getenv('REMOTE_ADDR')){ if (DOWN_FOR_MAINTENANCE=='true' and !strstr($PHP_SELF,DOWN_FOR_MAINTENANCE_FILENAME)) { tep_redirect(tep_href_link(DOWN_FOR_MAINTENANCE_FILENAME)); } } // do not let people get to down for maintenance page if not turned on if (DOWN_FOR_MAINTENANCE=='false' and strstr($PHP_SELF,DOWN_FOR_MAINTENANCE_FILENAME)) { tep_redirect(tep_href_link(FILENAME_DEFAULT)); } // EOF: WebMakers.com Added: Down for Maintenance // Shopping cart actions if (isset($HTTP_GET_VARS['action'])) { // redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled if ($session_started == false) { tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE)); } if (DISPLAY_CART == 'true') { $goto = FILENAME_SHOPPING_CART; $parameters = array('action', 'cPath', 'products_id', 'pid'); } else { $goto = basename($PHP_SELF); // MOD for buy now on xsell. also purchased for correct redirect on the product_info page. if ($HTTP_GET_VARS['action'] == 'buy_now') { // BOE: XSell if (isset($HTTP_GET_VARS['product_to_buy_id'])) { $parameters = array('action', 'pid', 'products_to_but_id'); } else { $parameters = array('action', 'pid', 'products_id'); } // EOE: XSell } else { $parameters = array('action', 'pid'); } } tep_session_unregister('shipping'); switch ($HTTP_GET_VARS['action']) { // shopping_cart http://www.oscommerce.com/community/contributions,3326 case 'remove_product' : $cart->remove($HTTP_GET_VARS['products_id']); tep_redirect(tep_href_link($goto)); break; // customer wants to update the product quantity in their shopping cart case 'update_product' : for ($i=0, $n=sizeof($HTTP_POST_VARS['products_id']); $i<$n; $i++) { if (in_array($HTTP_POST_VARS['products_id'][$i], (is_array($HTTP_POST_VARS['cart_delete']) ? $HTTP_POST_VARS['cart_delete'] : array()))) { $cart->remove($HTTP_POST_VARS['products_id'][$i]); } else { if (PHP_VERSION < 4) { // if PHP3, make correction for lack of multidimensional array. reset($HTTP_POST_VARS); while (list($key, $value) = each($HTTP_POST_VARS)) { if (is_array($value)) { while (list($key2, $value2) = each($value)) { if (preg_match ("/(.*)\]\[(.*)/", $key2, $var)) { $id2[$var[1]][$var[2]] = $value2; } } } } $attributes = ($id2[$HTTP_POST_VARS['products_id'][$i]]) ? $id2[$HTTP_POST_VARS['products_id'][$i]] : ''; } else { $attributes = ($HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]]) ? $HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]] : ''; } $cart->add_cart($HTTP_POST_VARS['products_id'][$i], $HTTP_POST_VARS['cart_quantity'][$i], $attributes, false); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; // customer adds a product from the products page case 'add_product' : if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) { //++++ QT Pro: Begin Changed code $attributes=array(); if (isset($HTTP_POST_VARS['attrcomb']) && (preg_match("/^\d{1,10}-\d{1,10}(,\d{1,10}-\d{1,10})*$/",$HTTP_POST_VARS['attrcomb']))) { $attrlist=explode(',',$HTTP_POST_VARS['attrcomb']); foreach ($attrlist as $attr) { list($oid, $oval)=explode('-',$attr); if (is_numeric($oid) && $oid==(int)$oid && is_numeric($oval) && $oval==(int)$oval) $attributes[$oid]=$oval; } } if (isset($HTTP_POST_VARS['id']) && is_array($HTTP_POST_VARS['id'])) { foreach ($HTTP_POST_VARS['id'] as $key=>$val) { if (is_numeric($key) && $key==(int)$key && is_numeric($val) && $val==(int)$val) $attributes=$attributes + $HTTP_POST_VARS['id']; } } //BOF QPBPP_v1_3_6 //$cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $attributes))+1, $attributes); $cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $attributes)) + $HTTP_POST_VARS['cart_quantity'], $attributes); //EOF QPBPP_v1_3_6 //++++ QT Pro: End Changed Code } 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 // BOF: XSell case 'buy_now' : if (isset($HTTP_GET_VARS['product_to_buy_id'])) { if (tep_has_product_attributes($HTTP_GET_VARS['product_to_buy_id'])) { tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['product_to_buy_id'])); } else { $cart->add_cart($HTTP_GET_VARS['product_to_buy_id'], $cart->get_quantity($HTTP_GET_VARS['product_to_buy_id'])+1); } } elseif (isset($HTTP_GET_VARS['products_id'])) { // EOF: XSell if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) { tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id'])); } else { $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; case 'notify' : if (tep_session_is_registered('customer_id')) { if (isset($HTTP_GET_VARS['products_id'])) { $notify = $HTTP_GET_VARS['products_id']; } elseif (isset($HTTP_GET_VARS['notify'])) { $notify = $HTTP_GET_VARS['notify']; } elseif (isset($HTTP_POST_VARS['notify'])) { $notify = $HTTP_POST_VARS['notify']; } else { tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify')))); } if (!is_array($notify)) $notify = array($notify); for ($i=0, $n=sizeof($notify); $i<$n; $i++) { $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $notify[$i] . "' and customers_id = '" . $customer_id . "'"); $check = tep_db_fetch_array($check_query); if ($check['count'] < 1) { tep_db_query("insert into " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id, customers_id, date_added) values ('" . $notify[$i] . "', '" . $customer_id . "', now())"); } } tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify')))); } else { $navigation->set_snapshot(); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } break; case 'notify_remove' : if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['products_id'])) { $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'"); $check = tep_db_fetch_array($check_query); if ($check['count'] > 0) { tep_db_query("delete from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'"); } tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')))); } else { $navigation->set_snapshot(); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } break; case 'cust_order' : if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['pid'])) { if (tep_has_product_attributes($HTTP_GET_VARS['pid'])) { tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['pid'])); } else { $cart->add_cart($HTTP_GET_VARS['pid'], $cart->get_quantity($HTTP_GET_VARS['pid'])+1); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; } } // include the who's online functions require(DIR_WS_FUNCTIONS . 'whos_online.php'); tep_update_whos_online(); // include the password crypto functions require(DIR_WS_FUNCTIONS . 'password_funcs.php'); // include validation functions (right now only email address) require(DIR_WS_FUNCTIONS . 'validations.php'); // split-page-results require(DIR_WS_CLASSES . 'split_page_results.php'); // infobox require(DIR_WS_CLASSES . 'boxes.php'); // auto activate and expire banners require(DIR_WS_FUNCTIONS . 'banner.php'); tep_activate_banners(); tep_expire_banners(); // auto expire special products require(DIR_WS_FUNCTIONS . 'specials.php'); tep_expire_specials(); // calculate category path if (isset($HTTP_GET_VARS['cPath'])) { $cPath = $HTTP_GET_VARS['cPath']; } elseif (isset($HTTP_GET_VARS['products_id']) && !isset($HTTP_GET_VARS['manufacturers_id'])) { $cPath = tep_get_product_path($HTTP_GET_VARS['products_id']); } else { $cPath = ''; } if (tep_not_null($cPath)) { $cPath_array = tep_parse_category_path($cPath); $cPath = implode('_', $cPath_array); $current_category_id = $cPath_array[(sizeof($cPath_array)-1)]; } else { $current_category_id = 0; } // include the breadcrumb class and start the breadcrumb trail require(DIR_WS_CLASSES . 'breadcrumb.php'); ////////////////////////////////////////////////////////////// if ( ($HTTP_GET_VARS['currency']) ) { tep_session_register('kill_sid'); $kill_sid=false; } if (basename($_SERVER['HTTP_REFERER']) == 'allprods.php' ) $kill_sid = true; if ( ( !tep_session_is_registered('customer_id') ) && ( $cart->count_contents()==0 ) && (!tep_session_is_registered('kill_sid') ) ) $kill_sid = true; if ((basename($PHP_SELF) == FILENAME_LOGIN) && ($HTTP_GET_VARS['action'] == 'process') ) $kill_sid = false; if (basename($PHP_SELF) == FILENAME_CREATE_ACCOUNT_PROCESS) $kill_sid = false; // Uncomment line bellow to disable SID Killer // $kill_sid = false; ////////////////////////////////////////////////////////////// require(DIR_WS_CLASSES . 'breadcrumb_title.php'); require(DIR_WS_CLASSES . 'breadcrumb_product_decription.php'); $breadcrumb = new breadcrumb; $breadcrumb_title = new breadcrumb_title; $breadcrumb_product_decription = new breadcrumb_product_decription; // $breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER); $breadcrumb->add(HEADER_TITLE_CATALOG, tep_href_link(FILENAME_DEFAULT)); /*** Begin Header Tags SEO ***/ // add category names or the manufacturer name to the breadcrumb trail if (isset($cPath_array)) { for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) { $categories_query = tep_db_query("select categories_htc_title_tag, categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "' LIMIT 1"); if (tep_db_num_rows($categories_query) > 0) { $categories = tep_db_fetch_array($categories_query); //$breadcrumb->add($categories['categories_htc_title_tag'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); $breadcrumb_title->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); $breadcrumb_product_decription->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); } else { break; } } } elseif (isset($_GET['manufacturers_id'])) { $manufacturers_query = tep_db_query("select manufacturers_htc_title_tag from " . TABLE_MANUFACTURERS_INFO . " where manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "' AND languages_id = '" . (int)$languages_id . "' LIMIT 1"); if (tep_db_num_rows($manufacturers_query)) { $manufacturers = tep_db_fetch_array($manufacturers_query); $breadcrumb->add($manufacturers['manufacturers_htc_title_tag'], tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $_GET['manufacturers_id'])); $breadcrumb_title->add($manufacturers['manufacturers_name'], tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'])); $breadcrumb_product_decription->add($manufacturers['manufacturers_name'], tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'])); } } // add the products name to the breadcrumb trail if (isset($_GET['products_id'])) { $products_query = tep_db_query("select pd.products_head_title_tag, pd.products_name from " . TABLE_PRODUCTS . " p left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on p.products_id = pd.products_id where p.products_id = '" . (int)$_GET['products_id'] . "' and pd.language_id ='" . (int)$languages_id . "' LIMIT 1"); if (tep_db_num_rows($products_query)) { $products = tep_db_fetch_array($products_query); //$breadcrumb->add($products['products_head_title_tag'], tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $_GET['products_id'])); $breadcrumb->add($products['products_name'], tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $_GET['products_id'])); $breadcrumb_title->add($name['products_name']); } } /*** End Header Tags SEO ***/ // include the articles functions require(DIR_WS_FUNCTIONS . 'articles.php'); require(DIR_WS_FUNCTIONS . 'article_header_tags.php'); // calculate topic path if (isset($HTTP_GET_VARS['tPath'])) { $tPath = $HTTP_GET_VARS['tPath']; } elseif (isset($HTTP_GET_VARS['articles_id']) && !isset($HTTP_GET_VARS['authors_id'])) { $tPath = tep_get_article_path($HTTP_GET_VARS['articles_id']); } else { $tPath = ''; } if (tep_not_null($tPath)) { $tPath_array = tep_parse_topic_path($tPath); $tPath = implode('_', $tPath_array); $current_topic_id = $tPath_array[(sizeof($tPath_array)-1)]; } else { $current_topic_id = 0; } // add topic names or the author name to the breadcrumb trail if (isset($tPath_array)) { for ($i=0, $n=sizeof($tPath_array); $i<$n; $i++) { $topics_query = tep_db_query("select topics_name from " . TABLE_TOPICS_DESCRIPTION . " where topics_id = '" . (int)$tPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'"); if (tep_db_num_rows($topics_query) > 0) { $topics = tep_db_fetch_array($topics_query); $breadcrumb->add($topics['topics_name'], tep_href_link(FILENAME_ARTICLES, 'tPath=' . implode('_', array_slice($tPath_array, 0, ($i+1))))); } else { break; } } } elseif (isset($HTTP_GET_VARS['authors_id'])) { $authors_query = tep_db_query("select authors_name from " . TABLE_AUTHORS . " where authors_id = '" . (int)$HTTP_GET_VARS['authors_id'] . "'"); if (tep_db_num_rows($authors_query)) { $authors = tep_db_fetch_array($authors_query); $breadcrumb->add('Articles by ' . $authors['authors_name'], tep_href_link(FILENAME_ARTICLES, 'authors_id=' . $HTTP_GET_VARS['authors_id'])); } } // add the articles name to the breadcrumb trail if (isset($HTTP_GET_VARS['articles_id'])) { $article_query = tep_db_query("select articles_name from " . TABLE_ARTICLES_DESCRIPTION . " where articles_id = '" . (int)$HTTP_GET_VARS['articles_id'] . "'"); if (tep_db_num_rows($article_query)) { $article = tep_db_fetch_array($article_query); if (isset($HTTP_GET_VARS['authors_id'])) { $breadcrumb->add($article['articles_name'], tep_href_link(FILENAME_ARTICLE_INFO, 'authors_id=' . $HTTP_GET_VARS['authors_id'] . '&articles_id=' . $HTTP_GET_VARS['articles_id'])); } else { $breadcrumb->add($article['articles_name'], tep_href_link(FILENAME_ARTICLE_INFO, 'tPath=' . $tPath . '&articles_id=' . $HTTP_GET_VARS['articles_id'])); } } } /* // add only if Header Tags not already installed require(DIR_WS_FUNCTIONS . 'clean_html_comments.php'); // $breadcrumb_title->add('finder du hos ' .STORE_NAME); // Hent side title og metatags for produkter $product_header_info_query = tep_db_query("select products_page_title, products_meta_keywords, products_meta_description from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'"); $product_header_info = tep_db_fetch_array($product_header_info_query); $p_pagetitle = $product_header_info['products_page_title']; $p_meta_keywords = $product_header_info['products_meta_keywords']; $p_meta_description = $product_header_info['products_meta_description']; // Hent side title og metatags for Kategorier $categories_header_info_query = tep_db_query("select categories_page_title, categories_meta_keywords, categories_meta_description from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$current_category_id . "' and language_id = '" . (int)$languages_id . "'"); $categories_header_info = tep_db_fetch_array($categories_header_info_query); $c_pagetitle = $categories_header_info['categories_page_title']; $c_meta_keywords = $categories_header_info['categories_meta_keywords']; $c_meta_description = $categories_header_info['categories_meta_description']; */ // initialize the message stack for output messages require(DIR_WS_CLASSES . 'message_stack.php'); $messageStack = new messageStack; // set which precautions should be checked define('WARN_INSTALL_EXISTENCE', 'true'); define('WARN_CONFIG_WRITEABLE', 'true'); define('WARN_SESSION_DIRECTORY_NOT_WRITEABLE', 'true'); define('WARN_SESSION_AUTO_START', 'true'); define('WARN_DOWNLOAD_DIRECTORY_NOT_READABLE', 'true'); // PWA BOF if (tep_session_is_registered('customer_id') && $customer_id == 0 && substr(basename($PHP_SELF),0,7)=='account') tep_redirect(tep_href_link(FILENAME_SHOPPING_CART)); // PWA EOF require(DIR_WS_INCLUDES . 'add_ccgvdc_application_top.php'); // CCGV if (STORE_SUPPORT_EMAIL_ADDRESS=='') { define(STORE_SUPPORT_EMAIL_ADDRESS, STORE_EMAIL_ADDRESS); } if (STORE_SALES_EMAIL_ADDRESS=='') { define(STORE_SALES_EMAIL_ADDRESS, STORE_EMAIL_ADDRESS); } if (STORE_SUPPORT_PHONE=='') { define(STORE_SUPPORT_PHONE, STORE_PHONE); } ?>
  2. danic

    Header Tags SEO

    Sometimes I link one product from one category to another category. Like this: Category 1 - product A - product B - product C Category 2 - Product E - Product F - Product A (link) The problem is that HT SEO is not always displaying the category_title from the current "selected" category: So Category 2 Product A (link) is displaying the category_title from Category 1 or Category 1 product A is displaying the category_title from Category 2 Can someone explain how this works? Thanks,
  3. danic

    Header Tags SEO

    Line 66 - in includes/functions/header_tags.php function FillHeaderTagsArray( ... $header_tags_array['title'] = ltrim(tep_db_prepare_input(implode(' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION . ' ', $sortOrder['title'])), ' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION); Result = <title>Ansigtspleje - Urtegaarden - - Ansigtsserum</title> $header_tags_array['title'] = ltrim(tep_db_prepare_input(implode(' ', $sortOrder['title'])), ' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION); Result = <title>Ansigtspleje - Urtegaarden Ansigtsserum</title> $header_tags_array['title'] = ltrim(tep_db_prepare_input(implode(' - ', $sortOrder['title'])), ' ' . HEADER_TAGS_SEPARATOR_DESCRIPTION); Result = <title>Ansigtspleje - Urtegaarden - - Ansigtsserum</title> Strange it's - - or non ?
  4. danic

    Header Tags SEO

    I'm running with the manufacture name for known products, and non if the products are unknown. It should be possible to add "if isset $manufacturename echo..." or make - part of the manufacture name "'- '. $manufacturename" ? I just don't know where its located.
  5. danic

    Header Tags SEO

    The title should be displayed like this: Category title tag Category title tag – manufacture name – product title tag But I have a problem with doublet tags “–“ like this Category title tag – manufacture name – - product title tag And if there is no manufacture name defined: Category title tag - - product title tag Where do I delete this “–“ ?
  6. Can anyone explain why non-breaking space & # 1 6 0 ; is displayed in my feed? is it the FCK editor? <p>&#38;#160;</p> <p>Christys egen&#38;#160;beskrivelse af varen:</p> <p>Available in palette of&#38;#160;rich colours, by using 100% organic cotton and low impact dyes, we have created a range of natural products that are not only soft and luxurious to touch, but also environmentally friendly.</p>
  7. danic

    Header Tags SEO

    Oh I see, It looks like It can't read SEO pages, but article_info.php?articles_id=10 works - Thanks! Lets hope someone will integrate the admin/articles.php within SEO_header_tag some day :-)
  8. danic

    Header Tags SEO

    I was thinking of individual titles and descriptions of each article like categories and products.
  9. danic

    Header Tags SEO

    My articles.php is just displaying <title>Article Info </title> <meta name="Description" content="" > <meta name="Keywords" content="Article Info " > at the font page. I like to display the name of the title there and the meta information. articles.php looks like this: <?php // Mofification of Header Tags Contribution // BOF: WebMakers.com Changed: Header Tag Controller v1.0 // Replaced by header_tags.php if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) { require(DIR_WS_INCLUDES . 'header_tags.php'); } else { ?> <title><?php echo TITLE ?></title> <?php } // EOF: WebMakers.com Changed: Header Tag Controller v1.0 ?> In header_tags.php // article_info.php case (basename($_SERVER['PHP_SELF']) === FILENAME_ARTICLE_INFO): $header_tags_array = tep_header_tag_page(FILENAME_ARTICLE_INFO); break; I'm running HeaderTags_SEO_V_3.1.8 and ArticlesManager_1.57_3 Any ideas?
  10. danic

    Article Manager v1.0

    My RSS feed is also empty but I have tryed the same without luck. The SQL "$news_query_raw" from article_rss.php is working, but there are no output in firefox. Any help?
  11. Hi, I'm looking for an improved articles listing. Today I have a list in bold text, what I really need is something like the product_listing One headline, One small picture and a small description could be the first. Where should I search for this?
  12. I'm using SEO-G that provides automatic generation of URLs, this contribution googlexml_sitemap_seo don't support this. I get results like this: product_info.php?products_id=68 Is it OK (In the name of SEO) to submit it to google, or should I update the XML with my SEO-G names?
  13. danic

    Automatic generation of URLs?

    The function tep_href_link() is part of the html_output.php file, I found out that index.php only require html_output.php in this function: //if ( file_exists(DIR_WS_CLASSES . 'seo.class.php') ){ if ( file_exists(DIR_WS_CLASSES . 'seo_url.php') ){ if (! defined("tep_get_parent_categories")) { function tep_get_parent_categories(&$categories, $categories_id) { $parent_categories_query = tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$categories_id . "'"); while ($parent_categories = tep_db_fetch_array($parent_categories_query)) { if ($parent_categories['parent_id'] == 0) return true; $categories[sizeof($categories)] = $parent_categories['parent_id']; if ($parent_categories['parent_id'] != $categories_id) { tep_get_parent_categories($categories, $parent_categories['parent_id']); } } } } //require_once(DIR_WS_CLASSES . 'seo.class.php'); require_once(DIR_WS_CLASSES . 'seo_url.php'); $seo_urls = new SEO_URL($languages_id); } require_once(DIR_WS_FUNCTIONS . 'html_output.php'); if ( file_exists(DIR_WS_CLASSES . 'cache.class.php') ){ include(DIR_WS_CLASSES . 'cache.class.php'); $cache = new cache($languages_id); if ( file_exists('includes/seo_cache.php') ){ include('includes/seo_cache.php'); } $cache->get_cache('GLOBAL'); } } # end if I'm not using Ultimate SEO 'seo.class.php' but G-SEO 'seo_url.php' I made change but I still get the same error: PHP Fatal error: Call to undefined function tep_href_link() as far as I know the 'cache.class.php' is only for Ultimate SEO so I should exclude that part.
  14. danic

    Automatic generation of URLs?

    If I make the change, then I get this error: PHP Fatal error: Call to undefined function tep_href_link() If I turn the code back, then it works again, strange as it the same function.
  15. danic

    NEW! Complete Order Editing Tool!

    When I add a product in edit_orders_add_product.php then it insert the amont in the orders_total tabel, but also bold html tag: <b>19,95DKK</b> How do I prevent the html tags? Br. Dan
  16. I’m searching for a contribution or code that add the estimated shipping price to the shopping_cart box. I have a fixed flat_rate and free shipping over a fixed amount.
  17. Some more information i get this error Call to a member function Output() on a non-object from the $pdf->Output, the rest semes to work.
  18. 1) I have installed the old version of the contrib - InvoicePDF1.5, because I only need it from Admin (It works, I can see the Invoices as PDF) 2) From pdf_invoice_email_attachment_v1.2 I have added: - function tep_mail_string_attachment to general.php so I can send attachments - function add_string_attachment to the class email.php In orders.php I have added: // BEGIN added for pdfinvoice email attachment include_once('invoice.php'); $pdf_data = $pdf->Output('' , 'S'); // Send the email tep_mail_string_attachment($check_status['customers_name'], $check_status['customers_email_address'], $new_mail_subject, $email_order, STORE_NAME, STORE__EMAIL_ADDRESS, $pdf_data, $file_name); // END added for pdfinvoice email attachment Both the include_once('invoice.php'); and the $pdf_data = $pdf->Output('' , 'S'); fails (If I take them out I get a empty pdf-file by email) Can someone help me with the orders.php file? Because I'm not sure how to extract the PDF file into ($pdf_data, $file_name).
×