Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Header Tags SEO


Jack_mcs

Recommended Posts

Hi Jack.

 

I have two little problems with this great contribution.

 

When I go to the Test page I got following error:

 

http://www.xxx.de/admin/FILENAME_HEADER_TAGS_TEST (browser line)

 

"The requested document was not found on this server." But I upload the header tags test

 

 

Second:

 

After I marked the Meta Tags Infos (NOODP etc.) and refresh the site the changes are lost.

 

Thanks a lot!

I have this too.However it is not a problem

Just need 2 additional codes:

1)admin/includes/filenames.php

----find:------

/*** Begin Header Tags SEO ***/

define('FILENAME_HEADER_TAGS_SEO', 'header_tags_seo.php');

define('FILENAME_HEADER_TAGS_FILL_TAGS', 'header_tags_fill_tags.php');

/*** End Header Tags SEO ***/

-----change to------

/*** Begin Header Tags SEO ***/

define('FILENAME_HEADER_TAGS_SEO', 'header_tags_seo.php');

define('FILENAME_HEADER_TAGS_FILL_TAGS', 'header_tags_fill_tags.php');

define('FILENAME_HEADER_TAGS_TEST', 'header_tags_test.php');

/*** End Header Tags SEO ***/

 

2)admin/includes/languages/english.php

------find-------

/*** Begin Header Tags SEO ***/

// header_tags_seo text in includes/boxes/header_tags_seo.php

define('BOX_HEADING_HEADER_TAGS_SEO', 'Header Tags SEO');

define('BOX_HEADER_TAGS_ADD_A_PAGE', 'Page Control');

define('BOX_HEADER_TAGS_FILL_TAGS', 'Fill Tags');

/*** End Header Tags SEO ***/

-------change to------

/*** Begin Header Tags SEO ***/

// header_tags_seo text in includes/boxes/header_tags_seo.php

define('BOX_HEADING_HEADER_TAGS_SEO', 'Header Tags SEO');

define('BOX_HEADER_TAGS_ADD_A_PAGE', 'Page Control');

define('BOX_HEADER_TAGS_FILL_TAGS', 'Fill Tags');

define('BOX_HEADER_TAGS_TEST', 'Test');

/*** End Header Tags SEO ***/

 

Thank Jack again for the new version!

Link to comment
Share on other sites

hi Jack,

Thanks for the new version.awesome!the "Page Control" in admin/header_tags_seo.php works well now,before this version I had 30 seconds time out error.

But in the new version I don't know how the "root" works.What is the root pls?is it the meta work for homepage?I can't find a place to set root metg.

I go to "page control",select "index.php" ,exclude product and root option,click "update" button,thenI have a error:

Missing sort orders are not allowed -> index.php

and error when I open homepage:

Warning: implode() [function.implode]: Invalid arguments passed in /home/environment/public_html/includes/functions/header_tags.php on line 43

 

Warning: implode() [function.implode]: Invalid arguments passed in /home/environment/public_html/includes/functions/header_tags.php on line 44

 

Warning: implode() [function.implode]: Invalid arguments passed in /home/environment/public_html/includes/functions/header_tags.php on line 45

 

Warning: implode() [function.implode]: Invalid arguments passed in /home/environment/public_html/includes/functions/header_tags.php on line 46

 

If include "root" in index.php,above 2 errors won't happen,But category and products pages don't have pure unique meta.I mean:

if index.php have title "aaa",I am not able to set category title as "bbb",it must be "aaa - bbb"

if a category have title "bbb",its product title won't be "ccc",it must be "bbb - ccc"

 

Lso I get:

 

Test Results

 

Missing Database Error:

The products_head_title_tag field cannot be found in the products_description table.

The categories_htc_title_tag field cannot be found in the categories_description table.

The manufacturers_htc_title_tag field cannot be found in the manufacturers_info table.

 

I check database carefully,in fact those fields all exist,also website page have title tags.

 

Sorry that I have so many questions,I'm not good at php,I just begun to learn some from the day I knew oscommerce.

Thank you again for your great add-ons.

Link to comment
Share on other sites

But in the new version I don't know how the "root" works.What is the root pls?is it the meta work for homepage?I can't find a place to set root metg.I check database carefully,in fact those fields all exist,also website page have title tags.

If you go to page control and select a page, say index.php, you will see four boxes for that page, title, description, keywords, logo. These have always been there in this contribution. These are being called the root. If you have the root box selected, they show up on the page. If you don't have it selected, they don't show up on the page.

 

Missing sort orders are not allowed -> index.php

 

The message says a sort order is required. There is a sort order box on the page next to the index position. If you leave the sort order empty, it causes an error. The fix is to put in a sort order number.

 

Sorry that I have so many questions,I'm not good at php,I just begun to learn some from the day I knew oscommerce.

What type of shop are you running - standard, STS or BTS?

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

If you go to page control and select a page, say index.php, you will see four boxes for that page, title, description, keywords, logo. These have always been there in this contribution. These are being called the root. If you have the root box selected, they show up on the page. If you don't have it selected, they don't show up on the page.

 

 

 

The message says a sort order is required. There is a sort order box on the page next to the index position. If you leave the sort order empty, it causes an error. The fix is to put in a sort order number.

 

 

What type of shop are you running - standard, STS or BTS?

 

Jack

 

Hi Jack,

Thanks for your answer.I use a shop template,not standard but not big difference.

In order to set pure unique category/product meta tags,I have to exclude "root" box.But if I do this,the homepage will not have any meta tags and have error as I said above.Can you figure out how to have homepage meta as well as pure unique category/product meta?

Link to comment
Share on other sites

Hi Jack,

Thanks for your answer.I use a shop template,not standard but not big difference.

In order to set pure unique category/product meta tags,I have to exclude "root" box.But if I do this,the homepage will not have any meta tags and have error as I said above.Can you figure out how to have homepage meta as well as pure unique category/product meta?

I had this working but removed it for a last minute test and forgot to add it back in. To fix it, edit the includes/header_tags.php file and change this code in the index section, line 38
if ($pageTags['append_root'])

to

	if ($pageTags['append_root'] || $category_depth == 'top' )

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

I had this working but removed it for a last minute test and forgot to add it back in. To fix it, edit the includes/header_tags.php file and change this code in the index section, line 38
if ($pageTags['append_root'])

to

	if ($pageTags['append_root'] || $category_depth == 'top' )

 

Jack

Yeah this can fix it,thank you!

But there are 2 bugs I till found:

 

1)If you don't select "root" in index.php,you must write tags for each category,cant leave blank,otherwise get this error:

Warning: implode() [function.implode]: Invalid arguments passed in /home/environment/public_html/includes/functions/header_tags.php on line 43

 

Warning: implode() [function.implode]: Invalid arguments passed in /home/environment/public_html/includes/functions/header_tags.php on line 44

 

Warning: implode() [function.implode]: Invalid arguments passed in /home/environment/public_html/includes/functions/header_tags.php on line 45

 

Warning: implode() [function.implode]: Invalid arguments passed in /home/environment/public_html/includes/functions/header_tags.php on line 46

 

2)in product_info.php,no matter you select "root" or not,product page meta must contain its category meta.

 

These bugs are no problems for my store now since you solve the unique category meta issue.However if you can look at it that will help much for others.

Thanks for great support :)

Link to comment
Share on other sites

Add the following to admin/includes/function/general.php before the last ?>

 function tep_get_category_htc_title($category_id, $language_id) {
$category_query = tep_db_query("select categories_htc_title_tag from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$category_id . "' and language_id = '" . (int)$language_id . "'");
$category = tep_db_fetch_array($category_query);

return $category['categories_htc_title_tag'];
 }

 function tep_get_category_htc_desc($category_id, $language_id) {
$category_query = tep_db_query("select categories_htc_desc_tag from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$category_id . "' and language_id = '" . (int)$language_id . "'");
$category = tep_db_fetch_array($category_query);

return $category['categories_htc_desc_tag'];
 }

 function tep_get_category_htc_keywords($category_id, $language_id) {
$category_query = tep_db_query("select categories_htc_keywords_tag from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$category_id . "' and language_id = '" . (int)$language_id . "'");
$category = tep_db_fetch_array($category_query);

return $category['categories_htc_keywords_tag'];
 }

 function tep_get_category_htc_description($category_id, $language_id) {
$category_query = tep_db_query("select categories_htc_description from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$category_id . "' and language_id = '" . (int)$language_id . "'");
$category = tep_db_fetch_array($category_query);

return $category['categories_htc_description'];
 }

 function tep_get_products_head_title_tag($product_id, $language_id) {
$product_query = tep_db_query("select products_head_title_tag from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'");
$product = tep_db_fetch_array($product_query);

return $product['products_head_title_tag'];
 }

 function tep_get_products_head_desc_tag($product_id, $language_id) {
$product_query = tep_db_query("select products_head_desc_tag from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'");
$product = tep_db_fetch_array($product_query);

return $product['products_head_desc_tag'];
 }

 function tep_get_products_head_keywords_tag($product_id, $language_id) {
$product_query = tep_db_query("select products_head_keywords_tag from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language_id . "'");
$product = tep_db_fetch_array($product_query);

return $product['products_head_keywords_tag'];
 }
 function tep_get_manufacturer_htc_title($manufacturer_id, $language_id) {
$manufacturer_query = tep_db_query("select manufacturers_htc_title_tag from " . TABLE_MANUFACTURERS_INFO . " where manufacturers_id = '" . (int)$manufacturer_id . "' and languages_id = '" . (int)$language_id . "'");
$manufacturer = tep_db_fetch_array($manufacturer_query);

return $manufacturer['manufacturers_htc_title_tag'];
 }

 function tep_get_manufacturer_htc_desc($manufacturer_id, $language_id) {
$manufacturer_query = tep_db_query("select manufacturers_htc_desc_tag from " . TABLE_MANUFACTURERS_INFO . " where manufacturers_id = '" . (int)$manufacturer_id . "' and languages_id = '" . (int)$language_id . "'");
$manufacturer = tep_db_fetch_array($manufacturer_query);

return $manufacturer['manufacturers_htc_desc_tag'];
 }

 function tep_get_manufacturer_htc_keywords($manufacturer_id, $language_id) {
$manufacturer_query = tep_db_query("select manufacturers_htc_keywords_tag from " . TABLE_MANUFACTURERS_INFO . " where manufacturers_id = '" . (int)$manufacturer_id . "' and languages_id = '" . (int)$language_id . "'");
$manufacturer = tep_db_fetch_array($manufacturer_query);

return $manufacturer['manufacturers_htc_keywords_tag'];
 } 

 function tep_get_manufacturer_htc_description($manufacturer_id, $language_id) {
$manufacturer_query = tep_db_query("select manufacturers_htc_description from " . TABLE_MANUFACTURERS_INFO . " where manufacturers_id = '" . (int)$manufacturer_id . "' and languages_id = '" . (int)$language_id . "'");
$manufacturer = tep_db_fetch_array($manufacturer_query);

return $manufacturer['manufacturers_htc_description'];
 }   

===================================================================
Add to admin/includes/column_left.php before the closing ?>

require(DIR_WS_BOXES . 'header_tags_controller.php');

===================================================================
Add to admin/includes/filenames.php anywhere before the closing ?>

define('FILENAME_HEADER_TAGS_CONTROLLER', 'header_tags_controller.php');
define('FILENAME_HEADER_TAGS_ENGLISH', 'header_tags_english.php');
define('FILENAME_HEADER_TAGS_FILL_TAGS', 'header_tags_fill_tags.php');

===================================================================  
Add to admin/includes/languages/english.php before the closing ?>. Repeat
for any other language you would like Header Tags to work with.

// header_tags_controller text in includes/boxes/header_tags_controller.php
define('BOX_HEADING_HEADER_TAGS_CONTROLLER', 'Header Tags');
define('BOX_HEADER_TAGS_ADD_A_PAGE', 'Page Control');
define('BOX_HEADER_TAGS_ENGLISH', 'Text Control');
define('BOX_HEADER_TAGS_FILL_TAGS', 'Fill Tags');

===================================================================
Add the following in admin/includes/languages/english/categories.php
anywhere before the closing ?>. Repeat for any other language you would 
like Header Tags to work with.

define('TEXT_PRODUCT_METTA_INFO', '<b>Meta Tag Information</b>');
define('TEXT_PRODUCTS_PAGE_TITLE', 'Product Title Tag:');
define('TEXT_PRODUCTS_HEADER_DESCRIPTION', 'Product Description Tag:');
define('TEXT_PRODUCTS_KEYWORDS', 'Product Keywords Tag:');

===================================================================
Make the following changes to admin/categories.php

FIND (about line 61)

for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
	  $categories_name_array = $HTTP_POST_VARS['categories_name'];

ADD after it

	  //HTC BOC
	  $categories_htc_title_array = $HTTP_POST_VARS['categories_htc_title_tag'];
	  $categories_htc_desc_array = $HTTP_POST_VARS['categories_htc_desc_tag'];
	  $categories_htc_keywords_array = $HTTP_POST_VARS['categories_htc_keywords_tag'];
	  $categories_htc_description_array = $HTTP_POST_VARS['categories_htc_description'];
	  //HTC EOC

FIND (a few lines down - around line 72)

  $sql_data_array = array('categories_name' => tep_db_prepare_input($categories_name_array[$language_id]));

REPLACE with

  //HTC BOC
  $sql_data_array = array('categories_name' => tep_db_prepare_input($categories_name_array[$language_id]),
	   'categories_htc_title_tag' => (tep_not_null($categories_htc_title_array[$language_id]) ? tep_db_prepare_input($categories_htc_title_array[$language_id]) :  tep_db_prepare_input($categories_name_array[$language_id])),
	   'categories_htc_desc_tag' => (tep_not_null($categories_htc_desc_array[$language_id]) ? tep_db_prepare_input($categories_htc_desc_array[$language_id]) :  tep_db_prepare_input($categories_name_array[$language_id])),
	   'categories_htc_keywords_tag' => (tep_not_null($categories_htc_keywords_array[$language_id]) ? tep_db_prepare_input($categories_htc_keywords_array[$language_id]) :  tep_db_prepare_input($categories_name_array[$language_id])),
	   'categories_htc_description' => tep_db_prepare_input($categories_htc_description_array[$language_id]));
  //HTC EOC 

===================================================================
Around line 260, find these lines

		$sql_data_array = array('products_name' => tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id]),
								'products_description' => tep_db_prepare_input($HTTP_POST_VARS['products_description'][$language_id]),
								'products_url' => tep_db_prepare_input($HTTP_POST_VARS['products_url'][$language_id]));

REPLACE it with

	   //HTC BOC
		$sql_data_array = array('products_name' => tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id]),
								'products_description' => tep_db_prepare_input($HTTP_POST_VARS['products_description'][$language_id]),
								'products_url' => tep_db_prepare_input($HTTP_POST_VARS['products_url'][$language_id]),
								'products_head_title_tag' => ((tep_not_null($HTTP_POST_VARS['products_head_title_tag'][$language_id])) ? tep_db_prepare_input($HTTP_POST_VARS['products_head_title_tag'][$language_id]) : tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id])),
								'products_head_desc_tag' => ((tep_not_null($HTTP_POST_VARS['products_head_desc_tag'][$language_id])) ? tep_db_prepare_input($HTTP_POST_VARS['products_head_desc_tag'][$language_id]) : tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id])),
								'products_head_keywords_tag' => ((tep_not_null($HTTP_POST_VARS['products_head_keywords_tag'][$language_id])) ? tep_db_prepare_input($HTTP_POST_VARS['products_head_keywords_tag'][$language_id]) : tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id])));									 
	   //HTC EOC

===================================================================
Around line 311, find these lines

		$description_query = tep_db_query("select language_id, products_name, products_description, products_url from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$products_id . "'");
		while ($description = tep_db_fetch_array($description_query)) {
		  tep_db_query("insert into " . TABLE_PRODUCTS_DESCRIPTION . " (products_id, language_id, products_name, products_description, products_url, products_viewed) values ('" . (int)$dup_products_id . "', '" . (int)$description['language_id'] . "', '" . tep_db_input($description['products_name']) . "', '" . tep_db_input($description['products_description']) . "', '" . tep_db_input($description['products_url']) . "', '0')");
		}

Replace with the following

	   //HTC BOC 
		$description_query = tep_db_query("select language_id, products_name, products_description, products_head_title_tag, products_head_desc_tag, products_head_keywords_tag, products_url from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$products_id . "'");
		while ($description = tep_db_fetch_array($description_query)) {
		  tep_db_query("insert into " . TABLE_PRODUCTS_DESCRIPTION . " (products_id, language_id, products_name, products_description, products_head_title_tag, products_head_desc_tag, products_head_keywords_tag, products_url, products_viewed) values ('" . (int)$dup_products_id . "', '" . (int)$description['language_id'] . "', '" . tep_db_input($description['products_name']) . "', '" . tep_db_input($description['products_description']) . "', '" . tep_db_input($description['products_head_title_tag']) . "', '" . tep_db_input($description['products_head_desc_tag']) . "', '" . tep_db_input($description['products_head_keywords_tag']) . "', '" . tep_db_input($description['products_url']) . "', '0')");
		}	   
	   //HTC EOC			

===================================================================
Around line 394, find this lines

if (isset($HTTP_GET_VARS['pID']) && empty($HTTP_POST_VARS)) {
  $product_query = tep_db_query("select pd.products_name, pd.products_description, pd.products_url, p.products_id, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as products_date_available, p.products_status, p.products_tax_class_id, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'");
  $product = tep_db_fetch_array($product_query);

Replace with the following

  //HTC BOC
  if (isset ($HTTP_GET_VARS['pID']) && (!$HTTP_POST_VARS) ) {
  $product_query = tep_db_query("select pd.products_name, pd.products_description, pd.products_head_title_tag, pd.products_head_desc_tag, pd.products_head_keywords_tag, pd.products_url, p.products_id, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as products_date_available, p.products_status, p.products_tax_class_id, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'");
  $product = tep_db_fetch_array($product_query);							
  //HTC EOC 

=================================================================== 
Around line 519, find this section of code. 

NOTE: There can be several instances of the code: 
for ($i=0, $n=sizeof($languages); $i<$n; $i++)	
so you need to be sure you have the correct one. The best way is to do a 
search for TEXT_PRODUCTS_DESCRIPTION, which is part of the code to be replaced.

<?php
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
	  <tr>
		<td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_DESCRIPTION; ?></td>
		<td><table border="0" cellspacing="0" cellpadding="0">
		  <tr>
			<td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td>
			<td class="main"><?php echo tep_draw_textarea_field('products_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (($products_description[$languages[$i]['id']]) ? stripslashes($products_description[$languages[$i]['id']]) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td>
		  </tr>
		</table></td>
	  </tr>
<?php
}
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>

Replace with the following 

<!-- HTC BOC //-->
<?php
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
	 <tr>
		<td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_DESCRIPTION; ?></td>
		<td><table border="0" cellspacing="0" cellpadding="0">
		  <tr>
			<td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td>
			<td class="main"><?php echo tep_draw_textarea_field('products_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (isset($products_description[$languages[$i]['id']]) ? stripslashes($products_description[$languages[$i]['id']]) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td>
		  </tr>
		</table></td>
	  </tr>
<?php
}
?>
	  <tr>
		<td colspan="2" class="main"><hr><?php echo TEXT_PRODUCT_METTA_INFO; ?></td>
	  </tr>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>		  
<?php		 
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
	  <tr>
		<td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_PAGE_TITLE; ?></td>
		<td><table border="0" cellspacing="0" cellpadding="0">
		  <tr>
			<td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td>
			<td class="main"><?php echo tep_draw_textarea_field('products_head_title_tag[' . $languages[$i]['id'] . ']', 'soft', '70', '5', (isset($products_head_title_tag[$languages[$i]['id']]) ? stripslashes($products_head_title_tag[$languages[$i]['id']]) : tep_get_products_head_title_tag($pInfo->products_id, $languages[$i]['id']))); ?></td>
		  </tr>
		</table></td>
	  </tr>
<?php
}
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>		  
	   <tr>
		<td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_HEADER_DESCRIPTION; ?></td>
		<td><table border="0" cellspacing="0" cellpadding="0">
		  <tr>
			<td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td>
			<td class="main"><?php echo tep_draw_textarea_field('products_head_desc_tag[' . $languages[$i]['id'] . ']', 'soft', '70', '5', (isset($products_head_desc_tag[$languages[$i]['id']]) ? stripslashes($products_head_desc_tag[$languages[$i]['id']]) : tep_get_products_head_desc_tag($pInfo->products_id, $languages[$i]['id']))); ?></td>
		  </tr>
		</table></td>
	  </tr>
<?php
}
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>		  
	   <tr>
		<td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_KEYWORDS; ?></td>
		<td><table border="0" cellspacing="0" cellpadding="0">
		  <tr>
			<td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td>
			<td class="main"><?php echo tep_draw_textarea_field('products_head_keywords_tag[' . $languages[$i]['id'] . ']', 'soft', '70', '5', (isset($products_head_keywords_tag[$languages[$i]['id']]) ? stripslashes($products_head_keywords_tag[$languages[$i]['id']]) : tep_get_products_head_keywords_tag($pInfo->products_id, $languages[$i]['id']))); ?></td>
		  </tr>
		</table></td>
	  </tr>
<?php
}
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
	  <tr>
		<td colspan="2" class="main"><hr></td>
	  </tr>
<!-- HTC EOC //-->

===================================================================											  
Around line 679, find this section of code

<?php
 } elseif ($action == 'new_product_preview') {
if (tep_not_null($HTTP_POST_VARS)) {
  $pInfo = new objectInfo($HTTP_POST_VARS);
  $products_name = $HTTP_POST_VARS['products_name'];
  $products_description = $HTTP_POST_VARS['products_description'];
  $products_url = $HTTP_POST_VARS['products_url'];
  } else {
  $product_query = tep_db_query("select p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id  from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");
  $product = tep_db_fetch_array($product_query);

Replace with the following	 

<!-- HTC BOC //-->	 
<?php
 } elseif ($action == 'new_product_preview') {
if (tep_not_null($HTTP_POST_VARS)) {
  $pInfo = new objectInfo($HTTP_POST_VARS);
  $products_name = $HTTP_POST_VARS['products_name'];
  $products_description = $HTTP_POST_VARS['products_description'];
  $products_head_title_tag = $HTTP_POST_VARS['products_head_title_tag'];
  $products_head_desc_tag = $HTTP_POST_VARS['products_head_desc_tag'];
  $products_head_keywords_tag = $HTTP_POST_VARS['products_head_keywords_tag'];
  $products_url = $HTTP_POST_VARS['products_url'];
} else {
  $product_query = tep_db_query("select p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_head_title_tag, pd.products_head_desc_tag, pd.products_head_keywords_tag, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id  from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");
  $product = tep_db_fetch_array($product_query); 
// HTC EOC

===================================================================	  
Around line 702, find this section of code

$languages = tep_get_languages();
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
  if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
	$pInfo->products_name = tep_get_products_name($pInfo->products_id, $languages[$i]['id']);
	$pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']);
	$pInfo->products_url = tep_get_products_url($pInfo->products_id, $languages[$i]['id']);
  } else {
	$pInfo->products_name = tep_db_prepare_input($products_name[$languages[$i]['id']]);
	$pInfo->products_description = tep_db_prepare_input($products_description[$languages[$i]['id']]);
	$pInfo->products_url = tep_db_prepare_input($products_url[$languages[$i]['id']]);
  }

Replace with the following	

// HTC BOC		 
$languages = tep_get_languages();
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
  if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
	$pInfo->products_name = tep_get_products_name($pInfo->products_id, $languages[$i]['id']);
	$pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']);
	$pInfo->products_head_title_tag = tep_db_prepare_input($products_head_title_tag[$languages[$i]['id']]);
	$pInfo->products_head_desc_tag = tep_db_prepare_input($products_head_desc_tag[$languages[$i]['id']]);
	$pInfo->products_head_keywords_tag = tep_db_prepare_input($products_head_keywords_tag[$languages[$i]['id']]);
	$pInfo->products_url = tep_get_products_url($pInfo->products_id, $languages[$i]['id']);
  } else {
	$pInfo->products_name = tep_db_prepare_input($products_name[$languages[$i]['id']]);
	$pInfo->products_description = tep_db_prepare_input($products_description[$languages[$i]['id']]);
	$pInfo->products_head_title_tag = tep_db_prepare_input($products_head_title_tag[$languages[$i]['id']]);
	$pInfo->products_head_desc_tag = tep_db_prepare_input($products_head_desc_tag[$languages[$i]['id']]);
	$pInfo->products_head_keywords_tag = tep_db_prepare_input($products_head_keywords_tag[$languages[$i]['id']]);
	$pInfo->products_url = tep_db_prepare_input($products_url[$languages[$i]['id']]);
  }		 
// HTC EOC

=================================================================== 
Around line 805, find this section of code

  $languages = tep_get_languages();
  for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
	echo tep_draw_hidden_field('products_name[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_name[$languages[$i]['id']])));
	echo tep_draw_hidden_field('products_description[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_description[$languages[$i]['id']])));
	echo tep_draw_hidden_field('products_url[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_url[$languages[$i]['id']])));
  }	  

Replace with the following	   

  // HTC BOC
  $languages = tep_get_languages();
  for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
	echo tep_draw_hidden_field('products_name[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_name[$languages[$i]['id']])));
	echo tep_draw_hidden_field('products_description[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_description[$languages[$i]['id']])));
	echo tep_draw_hidden_field('products_head_title_tag[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_title_tag[$languages[$i]['id']])));
	echo tep_draw_hidden_field('products_head_desc_tag[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_desc_tag[$languages[$i]['id']])));
	echo tep_draw_hidden_field('products_head_keywords_tag[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_keywords_tag[$languages[$i]['id']])));
	echo tep_draw_hidden_field('products_url[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_url[$languages[$i]['id']])));
  }	   
  // HTC EOC  

===================================================================	 
Around line 877, find this code

  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and cd.categories_name like '%" . tep_db_input($search) . "%' order by c.sort_order, cd.categories_name");
} else {
  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified 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 c.sort_order, cd.categories_name");

  and replace it with

// HTC BOC 
  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified, cd.categories_htc_title_tag, cd.categories_htc_desc_tag, cd.categories_htc_keywords_tag, cd.categories_htc_description from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and cd.categories_name like '%" . tep_db_input($search) . "%' order by c.sort_order, cd.categories_name");
} else {
  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified, cd.categories_htc_title_tag, cd.categories_htc_desc_tag, cd.categories_htc_keywords_tag, cd.categories_htc_description 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 c.sort_order, cd.categories_name");
// HTC EOC

=================================================================== 
Around line 984, find

  $category_inputs_string = '';
  $languages = tep_get_languages();
	for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
	  $category_inputs_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_name[' . $languages[$i]['id'] . ']');

ADD under it

	  // HTC BOC
	  $category_htc_title_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_title_tag[' . $languages[$i]['id'] . ']');
	  $category_htc_desc_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_desc_tag[' . $languages[$i]['id'] . ']');
	  $category_htc_keywords_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_keywords_tag[' . $languages[$i]['id'] . ']');
	  $category_htc_description_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_textarea_field('categories_htc_description[' . $languages[$i]['id'] . ']', 'hard', 30, 5, '');
	  // HTC EOC

===================================================================
FIND around line 988
 $contents[] = array('text' => '<br>' . TEXT_SORT_ORDER . '<br>' . tep_draw_input_field('sort_order', '', 'size="2"')); 

ADD under it

	// HTC BOC
	$contents[] = array('text' => '<br>' . 'Header Tags Category Title' . $category_htc_title_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Category Description' . $category_htc_desc_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Category Keywords' . $category_htc_keywords_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Categories Description' . $category_htc_description_string);
	// HTC EOC

===================================================================
FIND (about line 1013)

$category_inputs_string = '';
	$languages = tep_get_languages();
	for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
	  $category_inputs_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_name[' . $languages[$i]['id'] . ']', tep_get_category_name($cInfo->categories_id, $languages[$i]['id']));	

ADD under it

	  // HTC BOC
	  $category_htc_title_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_title_tag[' . $languages[$i]['id'] . ']', tep_get_category_htc_title($cInfo->categories_id, $languages[$i]['id']));
	  $category_htc_desc_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_desc_tag[' . $languages[$i]['id'] . ']', tep_get_category_htc_desc($cInfo->categories_id, $languages[$i]['id']));
	  $category_htc_keywords_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('categories_htc_keywords_tag[' . $languages[$i]['id'] . ']', tep_get_category_htc_keywords($cInfo->categories_id, $languages[$i]['id']));
	  $category_htc_description_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_textarea_field('categories_htc_description[' . $languages[$i]['id'] . ']', 'hard', 30, 5, tep_get_category_htc_description($cInfo->categories_id, $languages[$i]['id']));
	  // HTC EOC

===================================================================
FIND (about line 1022)
  $contents[] = array('text' => '<br>' . TEXT_EDIT_SORT_ORDER . '<br>' . tep_draw_input_field('sort_order', $cInfo->sort_order, 'size="2"'));

ADD under it

	// HTC BOC
	$contents[] = array('text' => '<br>' . 'Header Tags Category Title' . $category_htc_title_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Category Description' . $category_htc_desc_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Category Keywords' . $category_htc_keywords_string);
	$contents[] = array('text' => '<br>' . 'Header Tags Categories Description' . $category_htc_description_string);
	// HTC EOC

=================================================================== 
Make the following changes to admin/manufacturers.php

FIND (about line 46)

  for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
	  $manufacturers_url_array = $HTTP_POST_VARS['manufacturers_url'];

ADD under it

	  //HTC BOC
	  $manufacturers_htc_title_array = $HTTP_POST_VARS['manufacturers_htc_title_tag'];
	  $manufacturers_htc_desc_array = $HTTP_POST_VARS['manufacturers_htc_desc_tag'];
	  $manufacturers_htc_keywords_array = $HTTP_POST_VARS['manufacturers_htc_keywords_tag'];
	  $manufacturers_htc_description_array = $HTTP_POST_VARS['manufacturers_htc_description'];
	  //HTC EOC

===================================================================
FIND (around line 56)

	 $sql_data_array = array('manufacturers_url' => tep_db_prepare_input($manufacturers_url_array[$language_id]));

REPLACE with

	 //HTC BOC
	  $sql_data_array = array('manufacturers_url' => tep_db_prepare_input($manufacturers_url_array[$language_id]),
	   'manufacturers_htc_title_tag' => (tep_not_null($manufacturers_htc_title_array[$language_id]) ? tep_db_prepare_input($manufacturers_htc_title_array[$language_id]) : $manufacturers_name),
	   'manufacturers_htc_desc_tag' => (tep_not_null($manufacturers_htc_desc_array[$language_id]) ? tep_db_prepare_input($manufacturers_htc_desc_array[$language_id]) : $manufacturers_name),
	   'manufacturers_htc_keywords_tag' => (tep_not_null($manufacturers_htc_keywords_array[$language_id]) ? tep_db_prepare_input($manufacturers_htc_keywords_array[$language_id]) : $manufacturers_name),
	   'manufacturers_htc_description' => tep_db_prepare_input($manufacturers_htc_description_array[$language_id]));
	  //HTC EOC 

===================================================================
FIND (around line 156)

$manufacturers_query_raw = "select manufacturers_id, manufacturers_name, manufacturers_image, date_added, last_modified from " . TABLE_MANUFACTURERS . " order by manufacturers_name";

REPLACE with

//BOC HTC
 $manufacturers_query_raw = "select m.manufacturers_id, m.manufacturers_name, m.manufacturers_image, m.date_added, m.last_modified, mi.manufacturers_htc_title_tag from " . TABLE_MANUFACTURERS . " m LEFT JOIN " .  TABLE_MANUFACTURERS_INFO . " mi on m.manufacturers_id = mi.manufacturers_id where mi.languages_id = '".$languages_id ."' order by m.manufacturers_name";
//EOC HTC

===================================================================
FIND (around line 214)

  for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
	$manufacturer_inputs_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('manufacturers_url[' . $languages[$i]['id'] . ']');

ADD under it

  //BOC HTC 
	$manufacturer_htc_title_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('manufacturers_htc_title_tag[' . $languages[$i]['id'] . ']');
	$manufacturer_htc_desc_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('manufacturers_htc_desc_tag[' . $languages[$i]['id'] . ']');
	$manufacturer_htc_keywords_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('manufacturers_htc_keywords_tag[' . $languages[$i]['id'] . ']');
	$manufacturer_htc_description_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_textarea_field('manufacturers_htc_description[' . $languages[$i]['id'] . ']', 'hard', 30, 5, '');
  // EOC HTC

===================================================================
FIND (around line 224)

  $contents[] = array('text' => '<br>' . TEXT_MANUFACTURERS_URL . $manufacturer_inputs_string);

ADD under it

  // HTC BOC
  $contents[] = array('text' => '<br>' . 'Header Tags Manufacturer Title' . $manufacturer_htc_title_string);
  $contents[] = array('text' => '<br>' . 'Header Tags Manufacturer Description' . $manufacturer_htc_desc_string);
  $contents[] = array('text' => '<br>' . 'Header Tags Manufacturer Keywords' . $manufacturer_htc_keywords_string);
  $contents[] = array('text' => '<br>' . 'Header Tags Manufacturer Description' . $manufacturer_htc_description_string);
  // HTC EOC

===================================================================
FIND (around line 243)

  for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
	$manufacturer_inputs_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('manufacturers_url[' . $languages[$i]['id'] . ']', tep_get_manufacturer_url($mInfo->manufacturers_id, $languages[$i]['id']));

ADD under it

   //BOC HTC 
	$manufacturer_htc_title_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('manufacturers_htc_title_tag[' . $languages[$i]['id'] . ']', tep_get_manufacturer_htc_title($mInfo->manufacturers_id, $languages[$i]['id']));
	$manufacturer_htc_desc_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('manufacturers_htc_desc_tag[' . $languages[$i]['id'] . ']', tep_get_manufacturer_htc_desc($mInfo->manufacturers_id, $languages[$i]['id']));
	$manufacturer_htc_keywords_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('manufacturers_htc_keywords_tag[' . $languages[$i]['id'] . ']', tep_get_manufacturer_htc_keywords($mInfo->manufacturers_id, $languages[$i]['id']));
	$manufacturer_htc_description_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_textarea_field('manufacturers_htc_description[' . $languages[$i]['id'] . ']', 'hard', 30, 5, tep_get_manufacturer_htc_description($mInfo->manufacturers_id, $languages[$i]['id']));
   // EOC HTC

===================================================================
FIND (around line 253)

  $contents[] = array('text' => '<br>' . TEXT_MANUFACTURERS_URL . $manufacturer_inputs_string);

ADD under it

  // HTC BOC
  $contents[] = array('text' => '<br>' . 'Header Tags Manufacturer Title' . $manufacturer_htc_title_string);
  $contents[] = array('text' => '<br>' . 'Header Tags Manufacturer Description' . $manufacturer_htc_desc_string);
  $contents[] = array('text' => '<br>' . 'Header Tags Manufacturer Keywords' . $manufacturer_htc_keywords_string);
  $contents[] = array('text' => '<br>' . 'Header Tags Manufacturer Description' . $manufacturer_htc_description_string);
  // HTC EOC 

===================================================================

===================================================================
That's all;-)

 

ARE YOU KIDDING???

 

DO YOU EXPECT US TO MAKE ALL THOSE CHANGES JUST TO BE ABLE TO CHANGE THE META TAGS??

 

YOU COULD AT LEAST HAVE TOLD IN YOUR README THAT THIS PROCEDURE WAS SO RIDICULOUS LONG TO HAVE TIME TO STOP IN THE FIRST PLACE AND LOOK FOR SOME OTHER CONTRIB NOT THIS JOKE.

Link to comment
Share on other sites

Yeah this can fix it,thank you!

But there are 2 bugs I till found:

 

1)If you don't select "root" in index.php,you must write tags for each category,cant leave blank,otherwise get this error:

 

2)in product_info.php,no matter you select "root" or not,product page meta must contain its category meta.

 

These bugs are no problems for my store now since you solve the unique category meta issue.However if you can look at it that will help much for others.

Thanks for great support :)

1 - If the title and tags are not filled in, is there a point to installing the contribution? In the note I added when I announced this version, I said it was possible to not have any tags at all. I see I should have explained further but I meant that that woud be an error. If one doesn't want unique titles for each page, this contribution shouldn't be used.

 

2 - When I select product_info.php in Page Control and turn off (uncheck) all options except for product, only the product name is displayed when on the product page. Are you saying this isn't the case with your shop?

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

A new version has been uploaded. It just fixes the mistakes mentioned since the last update. They are:

 

- Corrected the upgrade instructions

- Added fix to allow home page and category titles and tags to be unique

- Fixed coding mistake that caused the meta tag options to not be recorded

 

For those that had already upgraded to 3.0.5, just uploaded the admin/headertags_seo.php file from this contribution.

 

Jack

Edited by Jack_mcs

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Hi Jack.

 

Many thanks for bugfixes.

 

Now I have another problem with the special characters. I often must use the " in my titles (product name).

 

After the " he cut everything in the keywords

 

For example:

 

Title: MS Mouse black "Fire" USB/PS 2 RX1000

 

In the Keywords you can only read: MS Mouse black

 

Also he cut the default keywords after that, when you use it.

Edited by Tom14
Link to comment
Share on other sites

Does anyone else get this problem, after I have setup quite alot of pages, the information gets mixed up

 

Example:

 

My article page was setup in the title as: Article Database

 

But now it listed as: Advanced Search

 

I have checked several pages and some of them have gone awol and swapped with another title, is it because I have too many pages listed?

Link to comment
Share on other sites

Hi Jack.

 

Many thanks for bugfixes.

 

Now I have another problem with the special characters. I often must use the " in my titles (product name).

 

After the " he cut everything in the keywords

 

For example:

 

Title: MS Mouse black "Fire" USB/PS 2 RX1000

 

In the Keywords you can only read: MS Mouse black

 

Also he cut the default keywords after that, when you use it.

You could try using " instead of ".

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

1 - If the title and tags are not filled in, is there a point to installing the contribution? In the note I added when I announced this version, I said it was possible to not have any tags at all. I see I should have explained further but I meant that that woud be an error. If one doesn't want unique titles for each page, this contribution shouldn't be used.

 

2 - When I select product_info.php in Page Control and turn off (uncheck) all options except for product, only the product name is displayed when on the product page. Are you saying this isn't the case with your shop?

 

Jack

1.yes we should write all tag,otherwise we don't need to install the add-on.

2.I do exactly the same as you,but not the same result in product meta.

Are you sure you have written related category meta?in my side,if I don't write related category meta,I do get only product meta,but if I write related category,the product meta must contain category meta....

Can you check again?

Thank you very much for your support!:)

Link to comment
Share on other sites

Does anyone else get this problem, after I have setup quite alot of pages, the information gets mixed up

 

Example:

 

My article page was setup in the title as: Article Database

 

But now it listed as: Advanced Search

 

I have checked several pages and some of them have gone awol and swapped with another title, is it because I have too many pages listed?

No one's ever mentioned this problem, as I recall. For Article Manger pages, you have to be sure to alter the code in the head section of those files to use Header Tags SEO code. There's no limit to the number of pages so that is not a problem. You might want to try replacing the includes/header_tags.php file and try again.

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

You could try using " instead of ".

 

Jack

 

Sorry, it doesn't help. I think I'm not the only one, which have the problem...

 

Is there a possibility to make it in a code in the header_tags_seo?

 

I mean like the URL SEO Contri with the special characters. For example: When " in the title tag, then write (nothing) or similar.

 

 

 

 

Tom

Edited by Tom14
Link to comment
Share on other sites

Hi Jack!

 

Now Im trying this again, still without luck as it seems..

Im not getting the "New Home Page Title" title and no meta tags either..

Just STORE_NAME title and no description.

 

I tried the TEST thing and got this back:

 

Permissions Error:

Permissions settings for the /home/web31579/domains/tdjdata.se/public_html/includes/header_tags.php file appear to be incorrect. Change to 755

Missing Database Error:

The products_head_title_tag field cannot be found in the products_description table.

The categories_htc_title_tag field cannot be found in the categories_description table.

The manufacturers_htc_title_tag field cannot be found in the manufacturers_info table.

The Header Tags head code for the index.php file cannot be found.

The Header Tags head code for the product_info.php file cannot be found.

 

I've checked all tables and there are no fields missing ..(?)

 

Im on MS2 with STS and SEO URLS

Link to comment
Share on other sites

Is the newly updated version 'Header Tags SEO V 3.0.6'

 

As it states:

 

Thank you for the add-on you have uploaded! As the filesize is over 300k, it will be manually approved before becoming publicly available.

 

Just wondering ig we have to wait until it uploads?

Link to comment
Share on other sites

hi Jack,do you know how to quickly add pages to hundred social bookmark sites?or where to buy such software?I don't want to buy the service,software can help use on many sites.
No, I don't.

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Sorry, it doesn't help. I think I'm not the only one, which have the problem...

 

Is there a possibility to make it in a code in the header_tags_seo?

 

I mean like the URL SEO Contri with the special characters. For example: When " in the title tag, then write (nothing) or similar.

 

 

 

 

Tom

It's possible but I'm not inclined to do it since it is considered bad practice to insert html code into the title. You can download an earlier version of this contribution, I don't recall which one, and get the code for the categories.php file. Code was added at some point to strip such codes so using that version of the file should allow it to work as you want.

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Hi Jack!

 

Now Im trying this again, still without luck as it seems..

Im not getting the "New Home Page Title" title and no meta tags either..

Just STORE_NAME title and no description.

 

I tried the TEST thing and got this back:

 

Permissions Error:

Permissions settings for the /home/web31579/domains/tdjdata.se/public_html/includes/header_tags.php file appear to be incorrect. Change to 755

Missing Database Error:

The products_head_title_tag field cannot be found in the products_description table.

The categories_htc_title_tag field cannot be found in the categories_description table.

The manufacturers_htc_title_tag field cannot be found in the manufacturers_info table.

The Header Tags head code for the index.php file cannot be found.

The Header Tags head code for the product_info.php file cannot be found.

 

I've checked all tables and there are no fields missing ..(?)

 

Im on MS2 with STS and SEO URLS

The test code is a work in progress. I've already changed the code in it (next version) to test for missing fields since the code in there doesn't work for all servers and the missing code in the files won't apply to STS.

 

Have you

- checked for the headertags line in the STS admin settings?

- Checked in Page Control for index.php to make sure text exists?

- Looked in the database to make sure there is an entry for index.php for your language and that text exists for it?

- Tried replacing the includes/header_tags.php file?

- Inserting the code into includes/header_tags.php mentioned previously in this thread to isolate the problem?

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Is the newly updated version 'Header Tags SEO V 3.0.6'

 

As it states:

 

Thank you for the add-on you have uploaded! As the filesize is over 300k, it will be manually approved before becoming publicly available.

 

Just wondering ig we have to wait until it uploads?

Yes.

 

Jack

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

The test code is a work in progress. I've already changed the code in it (next version) to test for missing fields since the code in there doesn't work for all servers and the missing code in the files won't apply to STS.

 

Have you

- checked for the headertags line in the STS admin settings?

- Checked in Page Control for index.php to make sure text exists?

- Looked in the database to make sure there is an entry for index.php for your language and that text exists for it?

- Tried replacing the includes/header_tags.php file?

- Inserting the code into includes/header_tags.php mentioned previously in this thread to isolate the problem?

 

Jack

 

I have checked the STS admin setting, the index.php is in page control, the index.php in my language is present in database,

I have tried replacing the includes/header_tags.php...

 

When I turn STS off and insert the index.php code for normal shops I get title and meta.. but not with STS set to on..

How do I know if the header_tags.php code has been overwritten by STS code, or not? Is there a way?

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...