TB Posted July 30, 2003 Share Posted July 30, 2003 Can someone please let me know how I can make each page title (in top of browser, not breadcrumb.) dyamically show my store name, and the name of the current product. If no product is selected, then the title will just show my store name. This would make a good contribution which will assist in search engine placements too... Thanks for any assistance offered... Tony Quote "The price of success is perseverance. The price of failure comes much cheaper." Link to comment Share on other sites More sharing options...
little.pm Posted July 30, 2003 Share Posted July 30, 2003 <title><?php echo TITLE . ' : ' . $breadcrumb->currentTitle(); ?></title> and in /catalog/includes/classes/breadcrumb.php add this function function currentTitle() { $tmp = end($this->_trail); return $tmp['title']; } It will work with any language and that is the reason why no one who runs a shop in different languages should ever use it. Google will be confused to get a different title and document content for the same unique URL. But thats more a technical problem. It can be solved when oscommerce in general starts to use the "lang" and "hreflang" and/or "xml:lang" so that google and user who do use reader applications can more easily determine which language currently is being displayed. Without google and other search and indexing applications will fail. However if you run your shop only in english (or in only one language to say it more in general) the above modification will work for you :-) Have a nice day. regards ralf Quote sometimes I change code before reading the comments, sometimes code doesn't even have comments, sometimes I rechange code after I read the code others wrote :-) Link to comment Share on other sites More sharing options...
Guest Posted August 7, 2003 Share Posted August 7, 2003 this did not work can you help Quote Link to comment Share on other sites More sharing options...
little.pm Posted August 7, 2003 Share Posted August 7, 2003 what does your shop send to the client browser as <title> in the documents head section? Do you get an error emssage and if what kind of? what does it say? Wich version of osCommerce are you using? Quote sometimes I change code before reading the comments, sometimes code doesn't even have comments, sometimes I rechange code after I read the code others wrote :-) Link to comment Share on other sites More sharing options...
Guest Posted August 8, 2003 Share Posted August 8, 2003 <title>1MagicShop - Online Magic Shop in NY with Magic Cards, Magic Tricks, Magic Illusions, Magic Books, Magic Videos and more : </title> I does not like like I am getting the title from the product Quote Link to comment Share on other sites More sharing options...
little.pm Posted August 8, 2003 Share Posted August 8, 2003 <title><?php echo STORE_NAME . ' - ' . $breadcrumb->currentTitle(); ?></title> and do not forget to insert these lines function currentTitle() { $tmp = end($this->_trail); return $tmp['title']; } before the closing curly brace of the class breadcrumb in includes/classes/breadcrumb.php under you catalog directory. I am sorry but I can only attempt to guess where the solution for you is as you are not specific enough to let me know what goes wrong or in another way. regards ralf Quote sometimes I change code before reading the comments, sometimes code doesn't even have comments, sometimes I rechange code after I read the code others wrote :-) Link to comment Share on other sites More sharing options...
blueline Posted August 8, 2003 Share Posted August 8, 2003 I have explained how to do this already. Please see: http://www.oscommerce.com/forums/viewtopic.php?t=53662 -Chris Quote Chris Sullivan Link to comment Share on other sites More sharing options...
little.pm Posted August 8, 2003 Share Posted August 8, 2003 right Chris, you already posted a solution. Please allow me to offer another on (which by the way forces no extra database queries) ;-) regards ralf Have a nice day! All decision is left to your taste Quote sometimes I change code before reading the comments, sometimes code doesn't even have comments, sometimes I rechange code after I read the code others wrote :-) Link to comment Share on other sites More sharing options...
blueline Posted August 8, 2003 Share Posted August 8, 2003 No problem. Didn't mean to impose. Quote Chris Sullivan Link to comment Share on other sites More sharing options...
Guest Posted August 8, 2003 Share Posted August 8, 2003 can some one help? Quote Link to comment Share on other sites More sharing options...
Guest Posted August 8, 2003 Share Posted August 8, 2003 I still cant get it working here are my files <?php /* $Id: breadcrumb.php,v 1.3 2003/02/11 00:04:50 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions } else { $trail_string .= $this->_trail[$i]['title']; } if (($i+1) < $n) $trail_string .= $separator; } return $trail_string; } function currentTitle() { $tmp = end($this->_trail); return $tmp['title']; } } ?> <?php /* $Id: product_info.php,v 1.92 2003/02/14 05:51:21 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com''>http://www.oscommerce.com'>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); ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html <?php echo HTML_PARAMS; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> <title><?php echo TITLE . ' : ' . $breadcrumb->currentTitle() ; ?></title> <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,resizab le=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,left=1 50') } //--></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> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2"> <!-- left_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?> <!-- left_navigation_eof //--> </table></td> <!-- 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 $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 = '" . $languages_id . "'"); if (!tep_db_num_rows($product_info_query)) { // product not found in database ?> <tr> <td class="main"><br><?php echo TEXT_PRODUCT_NOT_FOUND; ?></td> </tr> <tr> <td align="right"><br><a href="<?php echo tep_href_link(FILENAME_DEFAULT); ?>"><?php echo tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?></a></td> </tr> <?php } else { 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 = '" . $languages_id . "'"); $product_info = tep_db_fetch_array($product_info_query); 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'])); } ?> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr height="40"> <td class="pageHeading"><?php echo $product_info['products_name']; ?></td> <td align="right" class="pageHeading"><?php echo $products_price; ?></td> </tr> <?php if (PRODUCT_LIST_MODEL > 0) { echo ' <tr>' . "n" . ' <td colspan="2" class="pageHeading">' . $product_info['products_model'] . '</td>' . "n" . ' </tr>' . "n"; } ?> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="main"><table border="0" cellspacing="0" cellpadding="2" align="right"> <?php if (tep_not_null($product_info['products_image'])) { ?> <tr> <td align="center" class="smallText"> <script language="javascript"><!-- document.write('<?php echo '<a href="java script:popupWindow('' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '')">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>'); //--></script> <noscript> <?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '">' . 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> <?php } ?> </table><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 = '" . $languages_id . "'"); $products_attributes = tep_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { echo '<b>' . TEXT_PRODUCT_OPTIONS . '</b><br>' . '<table border="0" cellpadding="0" cellspacing"0">'; $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 = '" . $languages_id . "'"); while ($products_options_name = tep_db_fetch_array($products_options_name_query)) { $selected = 0; $products_options_array = array(); echo '<tr><td class="main">' . $products_options_name['products_options_name'] . ':</td><td>' . "n"; $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 = '" . $products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . $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'])) .') '; } } echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']]); echo '</td></tr>'; } echo '</table>'; } ?> </td> </tr> <?php $reviews = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "'"); $reviews_values = tep_db_fetch_array($reviews); if ($reviews_values['count'] > 0) { ?> <tr> <td class="main"><br><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews_values['count']; ?></td> </tr> <?php } if (tep_not_null($product_info['products_url'])) { ?> <tr> <td class="main"><br><?php echo sprintf(TEXT_MORE_INFORMATION, tep_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($product_info['products_url']), 'NONSSL', true, false)); ?></td> </tr> <?php } if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) { ?> <tr> <td align="center" class="smallText"><br><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></td> </tr> <?php } else { ?> <tr> <td align="center" class="smallText"><br><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td> </tr> <?php } ?> <tr> <td><br><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="main"><a href="<?php echo tep_href_link(FILENAME_PRODUCT_REVIEWS, substr(tep_get_all_get_params(), 0, -1)); ?>"><?php echo tep_image_button('button_reviews.gif', IMAGE_BUTTON_REVIEWS); ?></a></td> <td align="right" class="main"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?></td> </tr> </table></td> </tr> <tr> <td><br> <?php if ( (USE_CACHE == 'true') && !defined('SID')) { echo tep_cache_also_purchased(3600); } else { include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS); } } ?> </td> </tr> </table></form></td> <!-- body_text_eof //--> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2"> <!-- right_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_right.php'); ?> <!-- right_navigation_eof //--> </table></td> </tr> </table> <!-- body_eof //--> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> <br> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> and my title source looks like this if I run it <title>1MagicShop - Online Magic Shop in NY with Magic Cards, Magic Tricks, Magic Illusions, Magic Books, Magic Videos and more : </title> PLEASE HELP ME OUT Quote Link to comment Share on other sites More sharing options...
Guest Posted August 8, 2003 Share Posted August 8, 2003 This solution does not print the product name; instead, it prints the product model number. To print the product name, you would have to either do a database query or change the way breadcrumb->trail is populated. If you check Blueline's posts, apparently he has posted a method with the db query in another thread. When you ask for help, it is easier to diagnose if you explain *what* is not working. Without access to your site, it is a real pain to try to figure things out with nothing more than "I tried this and it didn't work." Is it not working on any page? Or just the product_info pages? Is it showing the dash? Is it giving an error? Have you tried any troubleshooting, like replacing $tmp['title'] with a constant string? Hth, Matt 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.