jwalker Posted October 25, 2007 Share Posted October 25, 2007 Hello I just installed this contribution, and it seemed to work fine. However, I do have one question. As I scroll through pages on my site http://www.ginelectronics.com/catalog (if you nned to look), the Header tags begin with categories that the page nis in, i.e., <title>Speaker Wire / Cable Ultralink Speaker Wire / Cable - GIN Electronics</title> <meta name="description" content="Speaker Wire / Cable Ultralink Speaker Wire / Cable"> <meta name="keywords" content="Speaker Wire / Cable Ultralink Speaker Wire / Cable"> I just wrote in this to make it simple. I went to edit the tags to my own instead of default, and I just wrote in the same for all three (title, keywords, & desription) Ultralink Speaker Wire / Cable, and instead I got the above. Is this the manner in which it supposed to work? Johnnie Walker :'( Quote Link to comment Share on other sites More sharing options...
GemRock Posted October 25, 2007 Author Share Posted October 25, 2007 . Is this the manner in which it supposed to work? Johnnie Walker :'( By deault, that is, if you dont fill in the text boxes for tilte, keyword or description, then it uses product name for keyword, product description for the description meta tag. If, however, you enter text in any of the 3 text boxes in admin, then it will use what you enter for the title, keyword and description neta tags, respectively. ifyou only enter text in the title box then only the the title meta tag will be affected, and so are the other two text boxes. It will not fill in all the 3 meta tags with what you enter in only one of the text boxes, ie, each text box corresponds to only one meta tag. Ken Quote commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile). over 20 years of computer programming experience. Link to comment Share on other sites More sharing options...
jwalker Posted October 25, 2007 Share Posted October 25, 2007 Thanks For The Reply: I filled in all 3 boxes, but what shows it not what I filled in, but what I filled in and some extra, as shown above. . . Johnnie Walker Quote Link to comment Share on other sites More sharing options...
GemRock Posted October 25, 2007 Author Share Posted October 25, 2007 Then make sure you use the following standard way of propagating the tags: <title><?php echo $header_tags[title_tag]; ?></title> <meta name="description" content="<?php echo $header_tags[desc_tag]; ?>"> <meta name="keywords" content="<?php echo $header_tags[keywords_tag]; ?>"> Ken Quote commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile). over 20 years of computer programming experience. Link to comment Share on other sites More sharing options...
jwalker Posted October 25, 2007 Share Posted October 25, 2007 Here is what I have now on Index.php: <head> <title><?php echo (strlen($categories['categories_name']) > 1) || (strlen($manufacturers['manufacturers_name']) > 1) ? $breadcrumb_tags->trail_tags(' ') . ' - ' . TITLE : TITLE; ?></title> <meta name="description" content="<?php echo (strlen($categories['categories_name']) > 1) || (strlen($manufacturers['manufacturers_name']) > 1) ? strip_tags($breadcrumb_tags->trail_tags(' ')) : 'Sales of speaker wire, in wall speakers, monster cable, 70 volt speakers & 70v amplifiers, volume controls, and more'; ?>"> <meta name="keywords" content="<?php echo (strlen($categories['categories_name']) > 1) || (strlen($manufacturers['manufacturers_name']) > 1) ? strip_tags($breadcrumb_tags->trail_tags(' ')) : 'speaker wire, in wall speakers, monster cable, audio systems, 70 volt speakers, 70v amplifiers, monster cable, volume controls, intercoms, observation security, tv mount, a v cables, video screens, video projectors, rg6 rg59, coax cat5 cable'; ?>"> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> and this on product info.php <head> <title><?php echo $header_tags[title_tag]; ?></title> <meta name="description" content="<?php echo $header_tags[desc_tag]; ?>"> <meta name="keywords" content="<?php echo $header_tags[keywords_tag]; ?>"> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> <link rel="stylesheet" type="text/css" href="stylesheet.css"> <script language="javascript"><!-- function popupWindow(url) { window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,res izable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,le ft=150') } //--></script> </head> Does this help? Quote Link to comment Share on other sites More sharing options...
GemRock Posted October 25, 2007 Author Share Posted October 25, 2007 What I said only applied to the product_info page, and not the index.php home page. your product info page should show the 3 meta tags correctly based on what you posted above. Quote commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile). over 20 years of computer programming experience. Link to comment Share on other sites More sharing options...
jwalker Posted October 29, 2007 Share Posted October 29, 2007 Hello and Thanks Again- was out of town a few days. I replaced the product info php pagw with what you sent, and still no luck. Am I running the correct version? header_tags_for_novice_v3 Quote Link to comment Share on other sites More sharing options...
GemRock Posted October 30, 2007 Author Share Posted October 30, 2007 is this not what you entered for this product at admin - edit header tags: <meta name="description" content="Siamese RG59/U Cable & 18-Gauge Power Wire"><meta name="keywords" content="Siamese RG59/U Cable & 18-Gauge Power Wire"> you obviously enterred the same info for both descr & keyword tags, or your installation has some problem which I dont know for sure (it could be anything). Ken Quote commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile). over 20 years of computer programming experience. Link to comment Share on other sites More sharing options...
GemRock Posted October 30, 2007 Author Share Posted October 30, 2007 to test your installation, you can try to delete what you enterred for the header & keyword tags, ie, use the product name for keyword tag and product description for descrip tag, which is the default. If you can see that happens, then your installation is correct and it should work. Ken Quote commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile). over 20 years of computer programming experience. Link to comment Share on other sites More sharing options...
futurestar Posted November 1, 2007 Share Posted November 1, 2007 I installed a couple other meta tag contributions and never liked them or didn't get them to work. This contribution looks great and I would love to be able to use it, but I'm afraid I screwed up something with my previous contribution installs. After many hours of trying to resolve this myself I have come to the conclusion that I need help! I can see the admin section no problem, and I added meta tags for each prodcut, but the meta tags are not added to my pages. I set each meta tag for "BD TEST" on this page: http://www.vegasmaximus.com/store/catalog/...;products_id=28 But everything comes up as "DVDs", which is the category. I am using STS for the index page, but not the product_info pages, so I don't believe STS has anything to do with it. If anybody can resolve this for me I would be extremely appreciative. Below are my application_top and product_info files. If there are more files I need to post, just let me know which ones and I will post them. THANKS! Here we go. application_top.php code: ********************************************************* <?php /* $Id: $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2007 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.'); } // 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 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']); } // 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); } // set the session ID if it exists if (isset($HTTP_POST_VARS[tep_session_name()])) { tep_session_id($HTTP_POST_VARS[tep_session_name()]); } elseif ( ($request_type == 'SSL') && isset($HTTP_GET_VARS[tep_session_name()]) ) { tep_session_id($HTTP_GET_VARS[tep_session_name()]); } // start the session $session_started = false; if (SESSION_FORCE_COOKIE_USE == 'True') { tep_setcookie('cookie_test', 'please_accept_for_session', time()+60*60*24*30, $cookie_path, $cookie_domain); if (isset($HTTP_COOKIE_VARS['cookie_test'])) { tep_session_start(); $session_started = true; } } elseif (SESSION_BLOCK_SPIDERS == 'True') { $user_agent = strtolower(getenv('HTTP_USER_AGENT')); $spider_flag = false; if (tep_not_null($user_agent)) { $spiders = file(DIR_WS_INCLUDES . 'spiders.txt'); for ($i=0, $n=sizeof($spiders); $i<$n; $i++) { if (tep_not_null($spiders[$i])) { if (is_integer(strpos($user_agent, trim($spiders[$i])))) { $spider_flag = true; break; } } } } if ($spider_flag == false) { tep_session_start(); $session_started = true; } } else { tep_session_start(); $session_started = true; } 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(); // include the mail classes require(DIR_WS_CLASSES . 'mime.php'); require(DIR_WS_CLASSES . 'email.php'); // set the language if (!tep_session_is_registered('language') || isset($HTTP_GET_VARS['language'])) { if (!tep_session_is_registered('language')) { tep_session_register('language'); tep_session_register('languages_id'); } include(DIR_WS_CLASSES . 'language.php'); $lng = new language(); if (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) { $lng->set_language($HTTP_GET_VARS['language']); } else { $lng->get_browser_language(); } $language = $lng->language['directory']; $languages_id = $lng->language['id']; } // include the language translations require(DIR_WS_LANGUAGES . $language . '.php'); // currency if (!tep_session_is_registered('currency') || isset($HTTP_GET_VARS['currency']) || ( (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && (LANGUAGE_CURRENCY != $currency) ) ) { if (!tep_session_is_registered('currency')) tep_session_register('currency'); if (isset($HTTP_GET_VARS['currency']) && $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(); // Shopping cart actions if (isset($HTTP_GET_VARS['action'])) { // redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled if ($session_started == false) { tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE)); } if (DISPLAY_CART == 'true') { $goto = FILENAME_SHOPPING_CART; $parameters = array('action', 'cPath', 'products_id', 'pid'); } else { $goto = basename($PHP_SELF); if ($HTTP_GET_VARS['action'] == 'buy_now') { $parameters = array('action', 'pid', 'products_id'); } else { $parameters = array('action', 'pid'); } } switch ($HTTP_GET_VARS['action']) { // customer wants to update the product quantity in their shopping cart case 'update_product' : for ($i=0, $n=sizeof($HTTP_POST_VARS['products_id']); $i<$n; $i++) { if (in_array($HTTP_POST_VARS['products_id'][$i], (is_array($HTTP_POST_VARS['cart_delete']) ? $HTTP_POST_VARS['cart_delete'] : array()))) { $cart->remove($HTTP_POST_VARS['products_id'][$i]); } else { if (PHP_VERSION < 4) { // if PHP3, make correction for lack of multidimensional array. reset($HTTP_POST_VARS); while (list($key, $value) = each($HTTP_POST_VARS)) { if (is_array($value)) { while (list($key2, $value2) = each($value)) { if (ereg ("(.*)\]\[(.*)", $key2, $var)) { $id2[$var[1]][$var[2]] = $value2; } } } } $attributes = ($id2[$HTTP_POST_VARS['products_id'][$i]]) ? $id2[$HTTP_POST_VARS['products_id'][$i]] : ''; } else { $attributes = ($HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]]) ? $HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]] : ''; } $cart->add_cart($HTTP_POST_VARS['products_id'][$i], $HTTP_POST_VARS['cart_quantity'][$i], $attributes, false); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; // customer adds a product from the products page //// bof: Added 2gether (contribution 3929) case 'add_product' : if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) { if (tep_get_products_stock($HTTP_POST_VARS['products_id']) > 0) $cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id']))+1, $HTTP_POST_VARS['id']); } if (isset($HTTP_POST_VARS['buy_tinn_add']) && is_numeric($HTTP_POST_VARS['buy_tinn_add'])) { if (tep_get_products_stock($HTTP_POST_VARS['buy_tinn_add']) > 0) { $cart->add_cart($HTTP_POST_VARS['buy_tinn_add'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['buy_tinn_add'], $HTTP_POST_VARS['id']))+1, $HTTP_POST_VARS['id']); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; //// eof: Added 2gether (contribution 3929) // performed by the 'buy now' button in product listings and review page case 'buy_now' : if (isset($HTTP_GET_VARS['products_id'])) { if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) { tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id'])); } else { $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; case 'notify' : if (tep_session_is_registered('customer_id')) { if (isset($HTTP_GET_VARS['products_id'])) { $notify = $HTTP_GET_VARS['products_id']; } elseif (isset($HTTP_GET_VARS['notify'])) { $notify = $HTTP_GET_VARS['notify']; } elseif (isset($HTTP_POST_VARS['notify'])) { $notify = $HTTP_POST_VARS['notify']; } else { tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify')))); } if (!is_array($notify)) $notify = array($notify); for ($i=0, $n=sizeof($notify); $i<$n; $i++) { $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $notify[$i] . "' and customers_id = '" . $customer_id . "'"); $check = tep_db_fetch_array($check_query); if ($check['count'] < 1) { tep_db_query("insert into " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id, customers_id, date_added) values ('" . $notify[$i] . "', '" . $customer_id . "', now())"); } } tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify')))); } else { $navigation->set_snapshot(); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } break; case 'notify_remove' : if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['products_id'])) { $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'"); $check = tep_db_fetch_array($check_query); if ($check['count'] > 0) { tep_db_query("delete from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'"); } tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')))); } else { $navigation->set_snapshot(); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } break; case 'cust_order' : if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['pid'])) { if (tep_has_product_attributes($HTTP_GET_VARS['pid'])) { tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['pid'])); } else { $cart->add_cart($HTTP_GET_VARS['pid'], $cart->get_quantity($HTTP_GET_VARS['pid'])+1); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; } } // include the who's online functions require(DIR_WS_FUNCTIONS . 'whos_online.php'); tep_update_whos_online(); // include the password crypto functions require(DIR_WS_FUNCTIONS . 'password_funcs.php'); // include validation functions (right now only email address) require(DIR_WS_FUNCTIONS . 'validations.php'); // split-page-results require(DIR_WS_CLASSES . 'split_page_results.php'); // infobox require(DIR_WS_CLASSES . 'boxes.php'); // auto activate and expire banners require(DIR_WS_FUNCTIONS . 'banner.php'); tep_activate_banners(); tep_expire_banners(); // auto expire special products require(DIR_WS_FUNCTIONS . 'specials.php'); tep_expire_specials(); // calculate category path if (isset($HTTP_GET_VARS['cPath'])) { $cPath = $HTTP_GET_VARS['cPath']; } elseif (isset($HTTP_GET_VARS['products_id']) && !isset($HTTP_GET_VARS['manufacturers_id'])) { $cPath = tep_get_product_path($HTTP_GET_VARS['products_id']); } else { $cPath = ''; } if (tep_not_null($cPath)) { $cPath_array = tep_parse_category_path($cPath); $cPath = implode('_', $cPath_array); $current_category_id = $cPath_array[(sizeof($cPath_array)-1)]; } else { $current_category_id = 0; } // include the breadcrumb class and start the breadcrumb trail require(DIR_WS_CLASSES . 'breadcrumb.php'); $breadcrumb = new breadcrumb; // include the breadcrumb_tags class and start the breadcrumb_tags trail - GemRock require(DIR_WS_CLASSES . 'breadcrumb_tags.php'); $breadcrumb_tags = new breadcrumb_tags; // added code ends - GR $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 // modified by GemRock for auto fill header tags if (isset($cPath_array)) { for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) { $categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'"); if (tep_db_num_rows($categories_query) > 0) { $categories = tep_db_fetch_array($categories_query); $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); $breadcrumb_tags->add($categories['categories_name']); } 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'])); $breadcrumb_tags->add($manufacturers['manufacturers_name']); } } // end of modified code - GR // 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'])); } } // added code to prepare for the title tag, description tag & keywords tag - By Gemrock // IF IT'S FIRST TIME TO RUN, THEN ADD 3 NEW FIELDS - CAN BE DELETED ONCE RUN SUCCESSFULLY if (!mysql_query("SELECT title_tag FROM " . TABLE_PRODUCTS_DESCRIPTION)){ tep_db_query("ALTER TABLE " . TABLE_PRODUCTS_DESCRIPTION . " ADD COLUMN title_tag VARCHAR(255) NULL, ADD COLUMN desc_tag TEXT NULL, ADD COLUMN keywords_tag VARCHAR(255) NULL"); } // END OF CODE ADDING FIELDS if (isset($HTTP_GET_VARS['products_id'])) { $header_tags_query = tep_db_query("select products_name, products_description, title_tag, desc_tag, keywords_tag from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'"); if (tep_db_num_rows($header_tags_query)) { $header_tags = tep_db_fetch_array($header_tags_query); $header_tags[products_name]= trim($header_tags[products_name]); $header_tags[title_tag]= trim(strip_tags($header_tags[title_tag])); $header_tags[desc_tag]= trim(strip_tags($header_tags[desc_tag])); $header_tags[keywords_tag]= trim(strip_tags($header_tags[keywords_tag])); $header_tags[products_description] = substr(preg_replace('/\s\s+/', ' ',(strip_tags($header_tags[products_description]))),0,1000); // if a tag is less than 2 charactors, then use default if (strlen($header_tags[title_tag])< 2) { //set product name as page title $header_tags[title_tag]= $header_tags[products_name]; } //add category name to page title if (strlen($categories['categories_name'])>1) $header_tags[title_tag] = $categories['categories_name'] . ' ' . $header_tags[title_tag]; if (strlen($manufacturers['manufacturers_name'])>1) $header_tags[title_tag] .= ' ' . $manufacturers['manufacturers_name'] . ' ' . $header_tags[title_tag]; if (strlen($header_tags[desc_tag])< 2) $header_tags[desc_tag] = $header_tags[products_description]; if (strlen($header_tags[keywords_tag])< 2) $header_tags[keywords_tag] = $header_tags[products_name]; } } // end of added code - By Gemrock // START STS 4.5 require (DIR_WS_CLASSES.'sts.php'); $sts= new sts(); $sts->start_capture(); // END STS // 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'); ?> ********************************************************* product_info.php code: ********************************************************* <?php /* $Id: product_info.php,v 1.97 2003/07/01 14:34:54 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2003 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO); $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_check = tep_db_fetch_array($product_check_query); ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html <?php echo HTML_PARAMS; ?>> <head> <title><?php echo $header_tags[title_tag]; ?></title> <meta name="description" content="<?php echo $header_tags[desc_tag]; ?>"> <meta name="keywords" content="<?php echo $header_tags[keywords_tag]; ?>"> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> <link rel="stylesheet" type="text/css" href="stylesheet.css"> <script language="javascript"><!-- function popupWindow(url) { window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,res izable=yes,copyhistory=no,width=200,height=250,screenX=150,screenY=150,top=200,le ft=200') } //--></script> </head> <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"> <!-- header //--> <?php require(DIR_WS_INCLUDES . 'header.php'); ?> <!-- header_eof //--> <!-- body //--> <table border="0" width="100%" cellspacing="3" cellpadding="3"> <tr> <!-- body_text //--> <td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <?php if ($product_check['total'] < 1) { ?> <tr> <td colspan="2"> <?php new infoBox(array(array('text' => TEXT_PRODUCT_NOT_FOUND))); ?> </td> </tr> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td colspan="2"><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td> </td> </tr> </table></td> </tr> <?php } else { $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_info = tep_db_fetch_array($product_info_query); tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'"); if ($new_price = tep_get_products_special_price($product_info['products_id'])) { $products_price = '<s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>'; } else { $products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])); } if (tep_not_null($product_info['products_model'])) { $products_name = $product_info['products_name'] . '<br><span class="smallText">[' . $product_info['products_model'] . ']</span>'; } else { $products_name = $product_info['products_name']; } ?> <tr> <td colspan="2"></td> </tr> <tr> <td colspan="2" align="center"><hr></td> </tr> <tr> <td width="25%" align="center"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> <td width="75%"> </td> </tr> <tr> <td colspan="2"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr align="left" valign="top"> <td align="center">Only: <?php echo $products_price; ?>!</td> <td> </td> </tr> <tr align="left" valign="top"> <td width="25%" align="center"> <?php if (tep_not_null($product_info['products_image'])) { ?> <table border="0" cellspacing="0" cellpadding="2" align="left"> <tr> <td align="center" class="smallText"> <script language="JavaScript" type="text/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> </td> </tr> </table> <?php } ?> <br> <br> <br> </td> <td width="75%"><p><?php echo stripslashes($product_info['products_description']); ?></p> <?php $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'"); $products_attributes = tep_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { ?> <table border="0" cellspacing="0" cellpadding="2"> <tr> <td class="main" colspan="2"><?php echo TEXT_PRODUCT_OPTIONS; ?></td> </tr> <?php $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name"); while ($products_options_name = tep_db_fetch_array($products_options_name_query)) { $products_options_array = array(); $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'"); while ($products_options = tep_db_fetch_array($products_options_query)) { $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']); if ($products_options['options_values_price'] != '0') { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') '; } } if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) { $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']]; } else { $selected_attribute = false; } ?> <tr> <td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td> <td class="main"><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?></td> </tr> <?php } ?> </table> <?php } ?> </td> </tr> </table></td> </tr> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'"); $reviews = tep_db_fetch_array($reviews_query); if ($reviews['count'] > 0) { ?> <?php } if (tep_not_null($product_info['products_url'])) { ?> <tr> <td colspan="2" class="main"><?php echo sprintf(TEXT_MORE_INFORMATION, tep_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($product_info['products_url']), 'NONSSL', true, false)); ?></td> </tr> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php } if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) { ?> <tr> <td colspan="2" align="center" class="smallText"> </td> </tr> <?php } else { ?> <tr> <td colspan="2" align="center" class="smallText"> </td> </tr> <?php } ?> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td colspan="2"><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="10"><br> <br> <?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> <td class="main"> </td> <td class="main" align="right"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?></td> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> </tr> <tr> <td colspan="4"><br> </td> </tr> </table></td> </tr> </table></td> </tr> <tr> <td colspan="2"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><hr></td> </tr> <tr align="center"> <td> <?php if (MODULE_2GETHER_DISCOUNT_STATUS) { include(DIR_WS_MODULES . '2gether.php'); } ?> </td> </tr> <tr> <td><hr></td> </tr> <tr> <td align="center"> <?php if ((USE_CACHE == 'true') && empty($SID)) { echo tep_cache_also_purchased(3600); } else { include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS); } } ?> </td> </tr> </table> <?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> <td width="0%"></form> </tr> </table></td> <!-- body_text_eof //--> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="0" cellspacing="0" cellpadding="2"> </table></td> </tr> </table> <!-- body_eof //--> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> Quote Link to comment Share on other sites More sharing options...
GemRock Posted November 2, 2007 Author Share Posted November 2, 2007 It seems you are the second person to report this. I dont have time at the moment but will try to look into this issue and conduct more tests under different server conditions, then post back here. Normally it doesnt take several hrs to install this contribution and it should work straightaway. Meantime, if you could give some info regarding your hosting server such as php version and things like register_globals settings. Good Luck! Ken Quote commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile). over 20 years of computer programming experience. Link to comment Share on other sites More sharing options...
futurestar Posted November 2, 2007 Share Posted November 2, 2007 It seems you are the second person to report this. I dont have time at the moment but will try to look into this issue and conduct more tests under different server conditions, then post back here.Normally it doesnt take several hrs to install this contribution and it should work straightaway. Meantime, if you could give some info regarding your hosting server such as php version and things like register_globals settings. Good Luck! Ken Thanks for the response GemRock. Yeah, your contribution looks very well done and easy to implement but I got myself in trouble by installing and uninstalling too many meta tag contributions. Here is the server info you requested: http://www.vegasmaximus.com/server_info.html Thanks again for your help. Quote Link to comment Share on other sites More sharing options...
futurestar Posted November 7, 2007 Share Posted November 7, 2007 Just wanted to follow-up on this. Any luck? Thanks Quote Link to comment Share on other sites More sharing options...
GemRock Posted December 3, 2007 Author Share Posted December 3, 2007 Sorry guys, its taken so long to respond. :o I have re-tested the contribution (dynamic header tags for novices) on php 4.4.4 and 5.2.0 to 5.2.4, with register_globals on or off, and do not see any problems as mentioned in Brian (futurestar)'s posts. I have set up a demo site so that you can take a look if you like. The demo will allow you to edit the title tag, keyword tag and description tag (remember to click the Update button to save your entry), and see the result by clicking on the product name then look at the page source. This demo site is running under php 5.2.4 with register_globals set to OFF. To access the demo site, go to my home page on the left (view member profile), on the ecommerce link on the home page, click on the osCommerce logo. Please do not try to access other parts of the admin area on the demo site. If there is any problem, please let me know. Ken Quote commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile). over 20 years of computer programming experience. Link to comment Share on other sites More sharing options...
nlholland Posted December 3, 2007 Share Posted December 3, 2007 Great mod but I'm having a problem with it. The Category pages are showing the right meta data, but the product pages don't. These pages have the same as that of the category above it... Another thing: When I manually insert metadata, it doesn't show up on the page. Quote Link to comment Share on other sites More sharing options...
GemRock Posted December 3, 2007 Author Share Posted December 3, 2007 hi Johan have you looked at/tried the demo I posted above? you'd see it works as intended. The demo site basically uses the default installation for the contribution. below is what I put in the product_info.php (I am actually copying it from the demo site): <title><?php echo $header_tags[title_tag] . ' | '. TITLE; ?></title> <meta name="description" content="<?php echo $header_tags[desc_tag]; ?>"> <meta name="keywords" content="<?php echo $header_tags[keywords_tag]; ?>"> I may post the contribution and installation instructions on the site when I got more time. Ken Quote commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile). over 20 years of computer programming experience. Link to comment Share on other sites More sharing options...
rajonbh Posted December 16, 2007 Share Posted December 16, 2007 For all you using STS with this contrib, here's my mod for it. Page title: if landing on a Category page -> Name of site - Category 1 - Category 2..etc if landing on a Product page -> Name of site - Category 1 | Productname if landing on all other pages -> Name of site - Heading title Of course, if you have defined any headertags (title,keywords,description) in admin then these will show instead. in includes/modules/sts_inc/general.php: $sts->template['headertags']= "<title>"; $sts->template['headertags'] .= (strlen($breadcrumb_tags->trail_tags(' - ')) > 0) ? TITLE . ' - ' . $breadcrumb_tags->trail_tags(' - ') . ' | ' . $header_tags[title_tag] : TITLE . ' - ' . HEADING_TITLE; $sts->template['headertags'] .= "</title>\n"; $sts->template['headertags'] .= "<meta name=\"description\" content=\""; $sts->template['headertags'] .= htmlspecialchars(strlen($header_tags[products_name])>0?$header_tags[products_name]:HEADING_TITLE) . ' ' . htmlspecialchars($header_tags[desc_tag]); $sts->template['headertags'] .= "\">\n<meta name=\"keywords\" content=\""; $sts->template['headertags'] .= htmlspecialchars($header_tags[keywords_tag]); $sts->template['headertags'] .= "\">\n"; Since pages created with ie. Information Pages Unlimited or Extra pages-info box w/Admin don't define a Heading Title we need to add some extra code for this. For Information Pages Unlimited: in information.php: Find ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> Change to define('HEADING_TITLE', $title); ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> For Extra pages-info box w/Admin: in extra_info_pages.php: Find ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> Change to define('HEADING_TITLE', $page_check[pages_title]); ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> Quote Link to comment Share on other sites More sharing options...
-Jeff- Posted January 10, 2008 Share Posted January 10, 2008 (edited) This works wonderfully. Thank you so much! The only problem is that on product pages I'm getting a double product name in the title with the above code ??? Store - Manufacturer | product title Manufacturer product title Edited January 10, 2008 by -Jeff- Quote Link to comment Share on other sites More sharing options...
GemRock Posted January 12, 2008 Author Share Posted January 12, 2008 This works wonderfully. Thank you so much! The only problem is that on product pages I'm getting a double product name in the title with the above code ??? Store - Manufacturer | product title Manufacturer product title sorry but I dont use any of the template add-ons, hope someone who uses STS & my contribution would be able to answer your question if you have not figured it out by now (doesnt look like a difficult one). Good luck! Ken Quote commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile). over 20 years of computer programming experience. Link to comment Share on other sites More sharing options...
-Jeff- Posted January 13, 2008 Share Posted January 13, 2008 sorry but I dont use any of the template add-ons, hope someone who uses STS & my contribution would be able to answer your question if you have not figured it out by now (doesnt look like a difficult one). Good luck! Ken I haven't figured it out yet, but the answer must be in the code above that seems to be the best (and in all other respects works great) Using $sts->template['headertags']= "<title>"; $sts->template['headertags'] .= (strlen($breadcrumb_tags->trail_tags(' - ')) > 0) ? TITLE . ' - ' . $breadcrumb_tags->trail_tags(' - ') . ' | ' . $header_tags[title_tag] : TITLE . ' - ' . HEADING_TITLE; $sts->template['headertags'] .= "</title>\n"; $sts->template['headertags'] .= "<meta name=\"description\" content=\""; $sts->template['headertags'] .= htmlspecialchars(strlen($header_tags[products_name])>0?$header_tags[products_name]:HEADING_TITLE) . ' ' . htmlspecialchars($header_tags[desc_tag]); $sts->template['headertags'] .= "\">\n<meta name=\"keywords\" content=\""; $sts->template['headertags'] .= htmlspecialchars($header_tags[keywords_tag]); $sts->template['headertags'] .= "\">\n"; Instead of the designed if landing on a Product page -> Name of site - Category 1 | Productname if I load a URL such as product_info.php?cPath=53&products_id=516 I get Name of site - category | category Productname One other issue I have that is more pressing: If I load simply index.php?cPath=53 (or any category) I am seeing a good page title Name of site - category | but description is <meta name="description" content="Let's See What We Have Here "> <meta name="keywords" content=""> How do I get the category name into the description instead of "let's see what we have here"? Quote Link to comment Share on other sites More sharing options...
GemRock Posted January 13, 2008 Author Share Posted January 13, 2008 (edited) This is the relevant part of the code: $sts->template['headertags'] .= (strlen($breadcrumb_tags->trail_tags(' - ')) > 0) ? TITLE . ' - ' . $breadcrumb_tags->trail_tags(' - ') . ' | ' . $header_tags[title_tag] : TITLE . ' - ' . HEADING_TITLE; there are 3 parts: 1. strlen($breadcrumb_tags->trail_tags(' - ')) > 0 if it is not a zero length string, then shows: 2. TITLE . ' - ' . $breadcrumb_tags->trail_tags(' - ') . ' | ' . $header_tags[title_tag] otherwise shows: 3. TITLE . ' - ' . HEADING_TITLE; . the problem is with 2 above. I guess you just need to delete ' - ' . $breadcrumb_tags->trail_tags(' - ') . in 2, ie, anything between TITLE . and ' | '. so now it becomes: $sts->template['headertags'] .= (strlen($breadcrumb_tags->trail_tags(' - ')) > 0) ? TITLE . ' | ' . $header_tags[title_tag] : TITLE . ' - ' . HEADING_TITLE; For your second question, it is because theres no product name on the home/index page so it just shows the HEADING_TITLE, which is something to do with the STS add-on you used. so you just need to replace HEADING_TITLE (in english.php or index.php - language file) with anything you like, or delete it. eg, instead of the original ?$header_tags[products_name]:HEADING_TITLE) . ' ' . htmlspecialchars($header_tags[desc_tag]); you can change it to: ?$header_tags[products_name]:'wonderful products from the best manufacturers using space technology etc') . ' ' . htmlspecialchars($header_tags[desc_tag]); Ken Edited January 13, 2008 by GemRock Quote commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile). over 20 years of computer programming experience. Link to comment Share on other sites More sharing options...
porrier Posted January 18, 2008 Share Posted January 18, 2008 Hello! I didn't want to open a new topic so I decided to stay in this thread. I just installed this great contribtution and works like a charme. One question to the producrs-description. Wouldn't it be good to limit the description of a product to let's say 200 signs or letters or so? How could one achieve this? Or am I wrong? I mean by default wihtout a product description added in header_tags_edit.php the description of the product is used and that is usually very long. So just limiting it by displaying the first 200 charackers would be enough? cheers Andreas Quote Link to comment Share on other sites More sharing options...
GemRock Posted January 19, 2008 Author Share Posted January 19, 2008 ...Wouldn't it be good to limit the description of a product to let's say200 signs or letters or so? How could one achieve this? Or am I wrong?... Thats exactly what it does - 1000 characters, ie, 200 words - as far as I remember. The limit is in the code added to application_top.php: notice the number 1000? Ken Quote commercial support - unProtected channel, not to be confused with the forum with same name - open to everyone who need some professional help: either PM/email me, or go to my website (URL can be found in my profile). over 20 years of computer programming experience. Link to comment Share on other sites More sharing options...
porrier Posted January 19, 2008 Share Posted January 19, 2008 Thats exactly what it does - 1000 characters, ie, 200 words - as far as I remember. The limit is in the code added to application_top.php: notice the number 1000? Ken Ah, allright! Didn't see that. Thank you! Andreas Quote Link to comment Share on other sites More sharing options...
Guest Posted January 19, 2008 Share Posted January 19, 2008 Thats exactly what it does - 1000 characters, ie, 200 words - as far as I remember. The limit is in the code added to application_top.php: notice the number 1000? Ken Hi Ken Great contribution, thank you. 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.