Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Sign in to follow this  
TB

How do I make store title show 'Store Name - Product Name'?

Recommended Posts

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


"The price of success is perseverance. The price of failure comes much cheaper."

Share this post


Link to post
Share on other sites

	<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


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 :-)

Share this post


Link to post
Share on other sites
Guest

this did not work can you help

Share this post


Link to post
Share on other sites

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?


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 :-)

Share this post


Link to post
Share on other sites
Guest

<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

Share this post


Link to post
Share on other sites

<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


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 :-)

Share this post


Link to post
Share on other sites

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


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 :-)

Share this post


Link to post
Share on other sites
Guest

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

Share this post


Link to post
Share on other sites
Guest

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×