Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

KissMT Dynamic SEO Meta & Canonical Header Tags


FWR Media

Recommended Posts

Hello Robert!

 

great contribution - I just tried the base install and had a look the products

and index (also changed kissmt.php in language files) and the metatags work

real perfect.

 

but I have much troubles with the productinformation in GERMAN which can be seen by the

customer - the additional characters are put out totaly wrong :(

also in index

 

 

I tried to explain as good as possible – sorry, I am from Austria ;)

 

greetings :)

 

Hi

 

Are you saying that the text viewable by the customer is incorrect ( showing as html entities ) ?

 

If so there may be double encoding e.g. Your text is input in the database using special characters then KISSMT adds html entity formatting a second time.

 

Is there a site I could view?

Link to comment
Share on other sites

I wrote a pm with the right adress to have a look

 

 

well and it seems that the column problem is only in InternetExplorer ... safari

and firefox looks ok...

 

thx :)

 

Had a look .. meta tags and data look perfect for title / description / keywords ( which is what this contribution does ).

 

The only place I can see bad characters like you mention is in the product description which is nothing to do with KissMT at all.

Link to comment
Share on other sites

hi!

 

thanks 4 looking ... so finally I took an original product_info.php

and changed it - now it works :D :D :D

 

so your information was realy important - thanks a lot

 

 

but I have to nerve with another question cause one point I do not

understand for sure:

 

when I change the currency, the metatags are still the same...does this

problem still exists on my page?

 

the CANONICAL is TRUE but I cannot see any difference in the metatags?!?

so can you please check if the setting is ok and where I can see it?

 

:)

 

CANONICAL_ON

Link to comment
Share on other sites

hi!

 

thanks 4 looking ... so finally I took an original product_info.php

and changed it - now it works :D :D :D

 

so your information was realy important - thanks a lot

 

 

but I have to nerve with another question cause one point I do not

understand for sure:

 

when I change the currency, the metatags are still the same...does this

problem still exists on my page?

 

the CANONICAL is TRUE but I cannot see any difference in the metatags?!?

so can you please check if the setting is ok and where I can see it?

 

:)

 

CANONICAL_ON

 

Regarding the canonical element and taking the same page that you emailed to me .. if you view source in your browser you will see a new element as below ( site domain removed ).

 

<link rel="canonical" href="http://www.mysite.com/catalog/reeferman-seeds-love-potion-p-1152.html">

when I change the currency, the metatags are still the same...does this

problem still exists on my page?

 

There is no reason for meta data to change when you change the currency .. it should however change if you change the language.

Edited by FWR Media
Link to comment
Share on other sites

Hello!

 

ok, thanks for info...so also this canonical seems to work correct :)

 

I just installed all inkl. database so now I only

have to check out how to change the metatags (some small problems but

I will try out and will find a way)

 

have a nice evening - and thanks for your support!!!

Link to comment
Share on other sites

Hello!

 

OK, all great now except one problem:

 

in my german language there are no keywords in the keyword tag?!?

english and spain are doing well...

 

you know why there are now no german keywords???

 

 

all other things are great :)

greetings

Link to comment
Share on other sites

  • 2 weeks later...

Hi, I have installed KissMT Meta Tags on yesterday and it works great!!! Easy to install, good job.

 

Now I am trying to install the Categories & Manufacturer Descriptions Plus H1 Page Titles

 

However, I face a problem when editing my index.php.

 

I can't find

 

<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>

 

and

</table></td>

</tr>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

 

Maybe it is because I am using template. How should i apply the new code into the index.php? Thank you.

 

<?php

/*

 $Id: index.php,v 1.1 2003/06/11 17:37:59 hpdl Exp $



 osCommerce, Open Source E-Commerce Solutions

 http://www.oscommerce.com



 Copyright (c) 2003 osCommerce



 Released under the GNU General Public License

*/









 require('includes/application_top.php');



// the following cPath references come from application_top.php

 $category_depth = 'top';

 if (isset($cPath) && tep_not_null($cPath)) {

   $categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");

   $cateqories_products = tep_db_fetch_array($categories_products_query);

   if ($cateqories_products['total'] > 0) {

     $category_depth = 'products'; // display products

   } else {

     $category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'");

     $category_parent = tep_db_fetch_array($category_parent_query);

     if ($category_parent['total'] > 0) {

       $category_depth = 'nested'; // navigate through the categories

     } else {

       $category_depth = 'products'; // category has no products, but display the 'no products' message

     }

   }

 }



 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);

?>

<!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; ?>">

<?php include_once DIR_WS_MODULES . 'kiss_meta_tags/kiss_meta_tags.php'; ?>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">

<link rel="stylesheet" type="text/css" href="stylesheet.css">


</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="1024" cellspacing="0" cellpadding="0">

<tr>

 	<td valign="top">

<!-- left_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>

<!-- left_navigation_eof //-->

</td>

<!-- body_text //-->

<?php

 if ($category_depth == 'nested') {

   $category_query = tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'");

   $category = tep_db_fetch_array($category_query);

?>

   <td width="1024" valign="top">



<?  tep_draw_heading_top();?>



<? new contentBoxHeading_ProdNew($info_box_contents);?>



<?  tep_draw_heading_top_1();?>









				<table border="0" cellspacing="2" cellpadding="0" align="center" class="box_width_cont product">



					<tr>

<?php

if (isset($cPath) && strpos('_', $cPath)) {

// check to see if there are deeper categories within the current category

  $category_links = array_reverse($cPath_array);

  for($i=0, $n=sizeof($category_links); $i<$n; $i++) {

	$categories_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");

	$categories = tep_db_fetch_array($categories_query);

	if ($categories['total'] < 1) {

	  // do nothing, go through the loop

	} else {

	  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");

	  break; // we've found the deepest category the customer is in

	}

  }

} else {

  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");

}



$number_of_categories = tep_db_num_rows($categories_query);



$rows = 0;

while ($categories = tep_db_fetch_array($categories_query)) {

  $rows++;

  $cPath_new = tep_get_path($categories['categories_id']);

  $width = (int)(100 / MAX_DISPLAY_CATEGORIES_PER_ROW) . '%';

  echo '               



		<td  align="center" width="' . $width . '">'.tep_draw_prod_top().'

				<table cellspacing="0" cellpadding="0" border="0" >

					<tr>

						<td width="157" height="47"><br style="line-height:15px">

						 <a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . $categories['categories_name'] . '</a></td>

					</tr>

					<tr>

					  <td width="157" height="150" class="pic" align="center"><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '</a><br></td>

					</tr>

				</table>			

		'.tep_draw_prod_bottom().'



		</td>



  ' . "\n";

			  if ($col!=(MAX_DISPLAY_CATEGORIES_PER_ROW-1)){

			  echo '

										<td>'.tep_draw_separator('spacer.gif', '12', '1').'</td>

										<td class="bg6">'.tep_draw_separator('spacer.gif', '1', '1').'</td>

										<td>'.tep_draw_separator('spacer.gif', '16', '1').'</td>

					';

			  }

			 else{			      



  if ((($rows / MAX_DISPLAY_CATEGORIES_PER_ROW) == floor($rows / MAX_DISPLAY_CATEGORIES_PER_ROW)) && ($rows != $number_of_categories)) {

	echo '              </tr><tr><td colspan="9"> </td></tr>' . "\n";

	echo '              <tr>' . "\n";

  }

}

if ($col==MAX_DISPLAY_CATEGORIES_PER_ROW-1){

$col=0;

}else{

$col++;

}

}	



// needed for the new products module shown below

$new_products_category_id = $current_category_id;

?>





			</table>



<?  tep_draw_heading_bottom_1();?>				

<? tep_draw_heading_bottom();?>



<table cellpadding="0" cellspacing="0"><tr><td height="1"></td></tr></table>



<? tep_draw_heading_top();?>



<? new contentBoxHeading_WHATS_NEW($info_box_contents, true, false);?>



<? tep_draw_heading_top_1();?>			



		<?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?>



<? tep_draw_heading_bottom_1();?>



<? tep_draw_heading_bottom();?>	







</td>



<?php

 } elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) {

// create column list

   $define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,

                        'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,

                        'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,

                        'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,

                        'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,

                        'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,

                        'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,

                        'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);



   asort($define_list);



   $column_list = array();

   reset($define_list);

   while (list($key, $value) = each($define_list)) {

     if ($value > 0) $column_list[] = $key;

   }



   $select_column_list = '';



   for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {

     switch ($column_list[$i]) {

       case 'PRODUCT_LIST_MODEL':

         $select_column_list .= 'p.products_model, ';

         break;

       case 'PRODUCT_LIST_NAME':

         $select_column_list .= 'pd.products_name, ';

         break;

       case 'PRODUCT_LIST_MANUFACTURER':

         $select_column_list .= 'm.manufacturers_name, ';

         break;

       case 'PRODUCT_LIST_QUANTITY':

         $select_column_list .= 'p.products_quantity, ';

         break;

       case 'PRODUCT_LIST_IMAGE':

         $select_column_list .= 'p.products_image, ';

         break;

       case 'PRODUCT_LIST_WEIGHT':

         $select_column_list .= 'p.products_weight, ';

         break;

     }

   }



// show the products of a specified manufacturer

   if (isset($HTTP_GET_VARS['manufacturers_id'])) {

     if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {

// We are asked to show only a specific category

       $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'";

     } else {

// We show them all

       $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'";

     }

   } else {

// show the products in a given categorie

     if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {

// We are asked to show only specific catgeory

       $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";

     } else {

// We show them all

       $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";

     }

   }



   if ( (!isset($HTTP_GET_VARS['sort'])) || (!ereg('[1-8][ad]', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {

     for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {

       if ($column_list[$i] == 'PRODUCT_LIST_NAME') {

         $HTTP_GET_VARS['sort'] = $i+1 . 'a';

         $listing_sql .= " order by pd.products_name";

         break;

       }

     }

   } else {

     $sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);

     $sort_order = substr($HTTP_GET_VARS['sort'], 1);

     $listing_sql .= ' order by ';

     switch ($column_list[$sort_col-1]) {

       case 'PRODUCT_LIST_MODEL':

         $listing_sql .= "p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";

         break;

       case 'PRODUCT_LIST_NAME':

         $listing_sql .= "pd.products_name " . ($sort_order == 'd' ? 'desc' : '');

         break;

       case 'PRODUCT_LIST_MANUFACTURER':

         $listing_sql .= "m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";

         break;

       case 'PRODUCT_LIST_QUANTITY':

         $listing_sql .= "p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";

         break;

       case 'PRODUCT_LIST_IMAGE':

         $listing_sql .= "pd.products_name";

         break;

       case 'PRODUCT_LIST_WEIGHT':

         $listing_sql .= "p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";

         break;

       case 'PRODUCT_LIST_PRICE':

         $listing_sql .= "final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";

         break;

     }

   }

?>

   <td width="1024" valign="top">







<? tep_draw_heading_top();?>	  







		  <table border="0" cellspacing="0" cellpadding="0" align="center" class="box_width_cont">

		  		<tr>

<?php

// optional Product List Filter

 /*  if (PRODUCT_LIST_FILTER > 0) {

     if (isset($HTTP_GET_VARS['manufacturers_id'])) {

       $filterlist_sql = "select distinct c.categories_id as id, cd.categories_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and p2c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' order by cd.categories_name";

     } else {

       $filterlist_sql= "select distinct m.manufacturers_id as id, m.manufacturers_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by m.manufacturers_name";

     }

     $filterlist_query = tep_db_query($filterlist_sql);

     if (tep_db_num_rows($filterlist_query) > 1) {

       echo '            <td align="center" class="main">' . tep_draw_form('filter', FILENAME_DEFAULT, 'get') . TEXT_SHOW . ' ';

       if (isset($HTTP_GET_VARS['manufacturers_id'])) {

         echo tep_draw_hidden_field('manufacturers_id', $HTTP_GET_VARS['manufacturers_id']);

         $options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES));

       } else {

         echo tep_draw_hidden_field('cPath', $cPath);

         $options = array(array('id' => '', 'text' => TEXT_ALL_MANUFACTURERS));

       }

       echo tep_draw_hidden_field('sort', $HTTP_GET_VARS['sort']);

       while ($filterlist = tep_db_fetch_array($filterlist_query)) {

         $options[] = array('id' => $filterlist['id'], 'text' => $filterlist['name']);

       }

       echo tep_draw_pull_down_menu('filter_id', $options, (isset($HTTP_GET_VARS['filter_id']) ? $HTTP_GET_VARS['filter_id'] : ''), 'onchange="this.form.submit()"');

       echo '</form></td>' . "\n";

     }

   }*/



// Get the right image for the top-right

   $image = DIR_WS_IMAGES . 'table_background_list.gif';

   if (isset($HTTP_GET_VARS['manufacturers_id'])) {

     $image = tep_db_query("select manufacturers_image from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");

     $image = tep_db_fetch_array($image);

     $image = $image['manufacturers_image'];

   } elseif ($current_category_id) {

     $image = tep_db_query("select categories_image from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");

  $image = tep_db_fetch_array($image);

     $image = $image['categories_image'];

  $name = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$current_category_id . "'");

  $name = tep_db_fetch_array($name);

     $name = $name['categories_name'];

   }

?>



				</tr>

			</table>

			<table border="0" cellspacing="0" cellpadding="0" align="center" class="box_width_cont">

				<tr><td align="center" valign="top"><?php include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING); ?></td></tr>

			</table>



<? tep_draw_heading_bottom_1(); ?>



<? tep_draw_heading_bottom(); ?>



	</td>



<?php

 } else { // default page

?>

   <td width="1024" valign="top">

<?php require(DIR_WS_BOXES . 'panel_top.php'); ?>



<? tep_draw_heading_top();?>



<? new contentBoxHeading_ProdNew($info_box_contents);?>



<? tep_draw_heading_top_1();?>





				<table border="0" cellspacing="0" cellpadding="0" align="center" class="box_width_cont">

					<tr><td><?php include(DIR_WS_MODULES . FILENAME_FEATURED_SETS); ?></td> </tr>

							<?php include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS);?>

				</table>



<? tep_draw_heading_bottom_1();?>



<? tep_draw_heading_bottom();?>



</td>

<?php

 }

?>

<!-- body_text_eof //-->

   <td valign="top">

<!-- right_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>

<!-- right_navigation_eof //-->

   </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'); ?>

Link to comment
Share on other sites

Hi, I have installed KissMT Meta Tags on yesterday and it works great!!! Easy to install, good job.

 

Now I am trying to install the Categories & Manufacturer Descriptions Plus H1 Page Titles

 

However, I face a problem when editing my index.php.

 

I can't find

 

<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>

 

 

Please don't post full files it makes the support thread a nightmare for other people.

 

If you have a template you have to read between the lines.

 

E.g. if it is the page title you have to replace the page title code in your template. if it is the description then wherever you want the description to appear.

 

I have to write the install based on the fresh RC2a code as it is impossible to cater to third party code and templates.

Link to comment
Share on other sites

First I want to say thank you for this fabulous contribution. It has saved me hours of work.

I saw someone asking the STS compatibility. I found an easy way to make these two contributions to work together. Just need to modify two files.

 

In the KissMT Dynamic SEO Meta Tags installation instructions skip the second step and let the <title><?php echo TITLE; ?></title> unmodified.

 

In catalog\includes\modules\sts_inc\general.php

ADD this code just before the last ?>

$sts->start_capture();
 if ( file_exists(DIR_WS_MODULES . 'kiss_meta_tags/kiss_meta_tags.php') ) {
include_once DIR_WS_MODULES . 'kiss_meta_tags/kiss_meta_tags.php';
 } 
 $sts->stop_capture('headertags');

 

In your template file (like includes/sts_templates/test/sts_template.html),

FIND

<head>

 

ADD BELOW

$headertags

 

That is all. Good luck.

Current Version of STS 4.6 the above is almost correct. In your sts_template.html file just insure that <!--$headcontent--> is included as all the meta tag info is placed with this not $headertags

 

So Your head section should look like this

<head>
$warning_header$
<!--$headcontent-->
 <link rel="stylesheet" type="text/css" href="stylesheet.css">
   <link rel="stylesheet" type="text/css" href="$templatedir$/stylesheet.css">
</head>

Link to comment
Share on other sites

  • 4 weeks later...

Will this contribution work with osc 2.3.1?

 

Cheers

 

Yes

Link to comment
Share on other sites

2 - File modifications

 

All you have to do is the following to catalog/index.php and catalog/product_info.php

 

Find ..

<title><?php echo TITLE; ?></title>

 

Replace with ...

<?php include_once DIR_WS_MODULES . 'kiss_meta_tags/kiss_meta_tags.php'; ?>

 

None of these are found, neither in catalog/index.php or catalog/product_info.php?

 

I see in other thread's that some modification need to be done, does that apply to osc 2.3.1 also?

Edited by pederb
Link to comment
Share on other sites

None of these are found, neither in catalog/index.php or catalog/product_info.php?

 

I see in other thread's that some modification need to be done, does that apply to osc 2.3.1 also?

 

It is just a matter of reading between the lines.

 

RC2 has doctype and head in all of the root files.

 

RC3 has doctype and head only in template_top.php

 

So with RC3 you only have to change <title></title> in one file .. template_top.php

Link to comment
Share on other sites

Installation instructions for RC3 - It is EVEN MORE SIMPLE

 

Regardless of how modified your osCommerce shop is .. this is ridiculously easy for such a powerful system.

 

1 - Uploads (These files are all brand new so won't affect your shop)

 

Upload all of the files in the "uploads" directory maintaining the directory structure.

 

Ensure that the following directory is writeable ( 0755 or 0777 dependent on server ) catalog/includes/modules/kiss_meta_tags/cache/

2 - File modifications

 

All you have to do is the following to catalog/includes/template_top.php

 

Find ..

 

<title><?php echo tep_output_string_protected($oscTemplate->getTitle()); ?></title>

 

Replace with ...

 

<?php include_once DIR_WS_MODULES . 'kiss_meta_tags/kiss_meta_tags.php' ?>

I'm sure you won't believe this until you try but once you have completed the above KissMT is already producing complex SEO meta and canonical tags on your site ... Go and check .. view some categories/products and choose a manufacturer from the dropdown. View source to see the keywords and description.

 

What we recommend you do from here ( in order of importance )

  • 1) Get used to and try out the base install before going any further
  • 2) Read - getting_the_most_out_of_the_base_install.html
  • 3) Read - optional_extras/about_optional_extras.html

Edited by FWR Media
Link to comment
Share on other sites

Hi Rob,

 

Just found something odd, on one item it seem not to work?

 

http://www.koolkatja...ghts-p-354.html

 

But all other seem to work, any ideas?

 

Cheers

 

Reset the cache. Something you added?

Link to comment
Share on other sites

The reset did the job,

 

Thank you

 

I'm about to add the breadcrumb contribution but I noticed that catalog/includes/application_top.php does not match with the one in 2.3.1?

 

Cheers

Link to comment
Share on other sites

  • 4 weeks later...

hi

 

i'm on 2.3.1

 

 

and in the init.php some of the options aren't working : for example : KISSMT_TITLE_SEPARATOR

 

what ever i do , nothing change.

 

thanks for your help

 

Why are you trying to change init.php?

 

The settings for KISSMT_TITLE_SEPARATOR are in the admin panel.

Link to comment
Share on other sites

Wow!

 

What more can one say

 

 

But I have one problem...

 

My store name has a hyphen followed by a capital letter:

 

Xpajun Off-Road

 

it's being converted to Xpajun Off-road, which is not right at all!

 

any chance of a work around?

My store is currently running Phoenix 1.0.3.0

I'm currently working on 1.0.7.2 and hope to get it live before 1.0.8.0 arrives (maybe 🙄 )

I used to have a list of add-ons here but I've found that with the ones that supporters of Phoenix get any other add-ons are not really neccessary

Link to comment
Share on other sites

any chance of a work around?

 

The difficulty is that KissMT has no idea how you require EVERY hyphenated string to be formatted, therefore it simply takes the string and capitalises the first letter as it does with all other strings.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...