                   Header Tags SEO v3.3.8
                  by Jack York aka Jack_MCS 
               https://oscommerce-solution.com

Works with osCommerce Phoenix version 1.0.7.3
===================================================================

WANT IT DONE FOR YOU?
Order the installation and have Header Tags SEO installed and working
within 24 hours. This includes assistance with setting it up:
http://www.oscommerce-solution.com/header-tags-seo-p-122.html
Use the coupon code headertags_discount and save 10% off of the cost
of installation.

Works with any version of osCommerce 2.3 or higher

NOTE: The Responsive version of oscommerce has code similar to that
      used in this addon and is for the same purpose. Some of the 
      changes below witll remove some of that code. It should all be
      removed since only one can work at a time.

Remember!
 1) BACKUP FIRST - NO RESPONSIBILITY HELD

********* If you have performed the instructions in the *********
********* Install_Catalog.txt file, skip steps 2 and 3. *********

 2) Make the database changes as explained in the Install_Catalog.txt file.

 3) Make changes in Install_Catalog.txt file

 4) If you have not installed other addons into your shop, then upload all 
    of the files both the catalog and catalog_only_new_files directories 
    to the same location in your shop and that will complete the 
    installation. If you have installed other addons, then you should only 
    upload the files in the catalog_only_new_files directory and then make 
    the following edits. 

    PLEASE NOTE: The Bootstrap files change fairly often so the files included 
    in this package may not match them. In that case, uploading the files could 
    remove changes in the latest version of Bootstrap. If in doubt, perform 
    the manual installation below.

The changes below are separated by =====, which indicates a new file, and
by -----, which is a change in the same file. This is an attempt to make 
the instructions a little easier to follow.

===================================================================
In admin/categories.php,

FIND:
          $categories_seo_title_array = $_POST['categories_seo_title'];

ADD BENEATH:

          /*** Begin Header Tags SEO ***/
          $categories_htc_title_alt_array = str_replace('"', '&quot;', $_POST['categories_htc_title_tag_alt']);
          $categories_htc_title_url_array = str_replace('"', '&quot;', $_POST['categories_htc_title_tag_url']);
          $categories_htc_breadcrumb_array = $_POST['categories_htc_breadcrumb_text'];

    -------------------------------------------------------------------------------
FIND:

          $sql_data_array['categories_seo_title'] = tep_db_prepare_input($categories_seo_title_array[$language_id]);

ADD BENEATH:

          $sql_data_array['categories_htc_title_tag_alt'] = tep_db_prepare_input(strip_tags($categories_htc_title_alt_array[$language_id]));
          $sql_data_array['categories_htc_title_tag_url'] = tep_db_prepare_input(strip_tags($categories_htc_title_url_array[$language_id]));
          $sql_data_array['categories_htc_breadcrumb_text'] = tep_db_prepare_input(strip_tags($categories_htc_breadcrumb_array[$language_id]));
          /*** End Header Tags SEO ***/

    -------------------------------------------------------------------------------
FIND:

          $sql_data_array['products_seo_title'] = tep_db_prepare_input($_POST['products_seo_title'][$language_id]);

ADD BENEATH:
			     
                             
          /*** Begin Header Tags SEO ***/
          $sql_data_array['products_head_title_tag_alt'] = tep_db_prepare_input(strip_tags((tep_not_null($_POST['products_head_title_tag_alt'][$language_id]) ? str_replace('"', '&quot;', $_POST['products_head_title_tag_alt'][$language_id]) : str_replace('"', '&quot;', $_POST['products_name'][$language_id]))));
          $sql_data_array['products_head_title_tag_url'] = ((tep_not_null($_POST['products_head_title_tag_url'][$language_id])) ? tep_db_prepare_input(strip_tags($_POST['products_head_title_tag_url'][$language_id])) : tep_db_prepare_input(strip_tags($_POST['products_name'][$language_id])));
          $sql_data_array['products_head_breadcrumb_text'] = tep_db_prepare_input($_POST['products_head_breadcrumb_text'][$language_id]);                                    
          $sql_data_array['products_head_listing_text'] = tep_db_prepare_input($_POST['products_head_listing_text'][$language_id]);                                    
          $sql_data_array['products_head_sub_text'] = tep_db_prepare_input($_POST['products_head_sub_text'][$language_id]);                                     
          $sql_data_array['products_head_additional_words'] = tep_db_prepare_input($_POST['products_head_additional_words'][$language_id])];                                     
          /*** End Header Tags SEO ***/


    -------------------------------------------------------------------------------
FIND:

            $description_query = tep_db_query("select language_id, products_name, products_description, products_url, products_seo_title, products_seo_description, products_seo_keywords from products_description where products_id = '" . (int)$products_id . "'");
            while ($description = tep_db_fetch_array($description_query)) {
              tep_db_query("insert into products_description (products_id, language_id, products_name, products_description, products_url, products_viewed, products_seo_title, products_seo_description, products_seo_keywords) 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', '" . tep_db_input($description['products_seo_title']) . "', '" . tep_db_input($description['products_seo_description']) . "', '" . tep_db_input($description['products_seo_keywords']) . "')");
            }


REPLACE WITH:

           /*** Begin Header Tags SEO ***/
            require_once('includes/functions/header_tags_general.php');	
            $hts_fields = GetHTSFieldList();            
            $description_query = tep_db_query("select language_id, products_name, products_description, products_url, products_seo_title, products_seo_description, products_seo_keywords, " . $hts_fields['fields'] . " from products_description where products_id = '" . (int)$products_id . "'");            
            while ($description = tep_db_fetch_array($description_query)) {              
                tep_db_query("insert into products_description (products_id, language_id, products_name, products_description, products_url, products_viewed, products_seo_title, products_seo_description, products_seo_keywords, " . GetHTSFieldListWithIDs(true) . ") 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', '" . tep_db_input($description['products_seo_title']) . "', '" . tep_db_input($description['products_seo_description']) . "', '" . tep_db_input($description['products_seo_keywords']) . "', " . $hts_fields['input'] . ")");
            }
           /*** End Header Tags SEO ***/

    -------------------------------------------------------------------------------
FIND:

    $parameters['products_seo_title'] = '';

ADD BENEATH:
    
    /*** End Header Tags SEO ***/    
    $parameters['products_head_title_tag_alt'] = '';
    $parameters['products_head_title_tag_url'] = '';
    $parameters['products_head_breadcrumb_text'] = '';
    $parameters['products_head_listing_text'] = '';
    $parameters['products_head_sub_text'] = '';
    $parameters['products_head_additional_words'] = '';
    /*** End Header Tags SEO ***/ 

    -------------------------------------------------------------------------------
FIND:

      $pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']);

ADD BENEATH:
      
      /*** Begin Header Tags SEO ***/    
      $pInfo->products_head_title_tag_alt = tep_get_products_head_title_tag_alt($pInfo->products_id, $languages[$i]['id']);
      $pInfo->products_head_title_tag_url = tep_get_products_head_title_tag_url($pInfo->products_id, $languages[$i]['id']);
      $pInfo->products_head_breadcrumb_text = tep_get_products_head_breadcrumb_text($pInfo->products_id, $languages[$i]['id']);
      $pInfo->products_head_listing_text = tep_get_products_head_listing_text($pInfo->products_id, $languages[$i]['id']);
      $pInfo->products_head_sub_text = tep_get_products_head_sub_text($pInfo->products_id, $languages[$i]['id']);
      $pInfo->products_head_additional_words = tep_get_products_head_additional_words($pInfo->products_id, $languages[$i]['id']);
      /*** End Header Tags SEO ***/

    -------------------------------------------------------------------------------
FIND:

          $category_seo_keywords_string .= '</div>';

ADD BENEATH:
          
          /*** Begin Header Tags SEO ***/
          include('includes/header_tags_seo/htc_categories_display.php');         
          /*** End Header Tags SEO ***/

    -------------------------------------------------------------------------------
FIND:

        $contents[] = ['text' => TEXT_CATEGORIES_SEO_KEYWORDS . $category_seo_keywords_string];

ADD BENEATH:
        
        /*** Begin Header Tags SEO ***/
        $contents[] = ['text' => TEXT_HEADERTAGS_TITLE_ALT . $category_htc_title_alt_string];
        $contents[] = ['text' => TEXT_HEADERTAGS_TITLE_URL . $category_htc_url_string];
        $contents[] = ['text' => TEXT_HEADERTAGS_BREADCRUMB . $category_htc_breadcrumb_string];
        /*** End Header Tags SEO ***/ 
       

    -------------------------------------------------------------------------------
FIND:

          $category_seo_keywords_string .= '</div>';       

ADD BENEATH:

          /*** Begin Header Tags SEO ***/
          include('includes/header_tags_seo/htc_categories_display.php');         
          /*** End Header Tags SEO ***/  

    -------------------------------------------------------------------------------
FIND:

        $contents[] = ['text' => TEXT_EDIT_CATEGORIES_SEO_KEYWORDS . $category_seo_keywords_string];

ADD BENEATH:
        
        /*** Begin Header Tags SEO ***/
        $contents[] = ['text' => TEXT_HEADERTAGS_TITLE_ALT . $category_htc_title_alt_string];
        $contents[] = ['text' => TEXT_HEADERTAGS_TITLE_URL . $category_htc_url_string];
        $contents[] = ['text' => TEXT_HEADERTAGS_BREADCRUMB . $category_htc_breadcrumb_string];
        /*** End Header Tags SEO ***/  
                                  
===================================================================
Make the following changes to admin/manufacturers.php

FIND (about line 53):

          $manufacturers_description_array = $_POST['manufacturers_description'];
          $manufacturers_seo_description_array = $_POST['manufacturers_seo_description'];
          $manufacturers_seo_keywords_array = $_POST['manufacturers_seo_keywords'];
          $manufacturers_seo_title_array = $_POST['manufacturers_seo_title'];

REPLACE WITH:

          /*** Begin Header Tags SEO ***/
          $manufacturers_htc_title_array = str_replace('"', '&quot;',$_POST['manufacturers_htc_title_tag']);
          $manufacturers_htc_title_alt_array = str_replace('"', '&quot;',$_POST['manufacturers_htc_title_tag_alt']);
          $manufacturers_htc_title_url_array = $_POST['manufacturers_htc_title_tag_url'];
          $manufacturers_htc_desc_array = str_replace('"', '&quot;',$_POST['manufacturers_htc_desc_tag']);
          $manufacturers_htc_keywords_array = $_POST['manufacturers_htc_keywords_tag'];
          $manufacturers_htc_description_array = $_POST['manufacturers_htc_description'];
          $manufacturers_htc_breadcrumb_array = $_POST['manufacturers_htc_breadcrumb_text'];
          /*** End Header Tags SEO ***/  
          
    -------------------------------------------------------------------------------
FIND (around line 63):

          $sql_data_array['manufacturers_description'] = tep_db_prepare_input($manufacturers_description_array[$language_id]);
          $sql_data_array['manufacturers_seo_description'] = tep_db_prepare_input($manufacturers_seo_description_array[$language_id]);
          $sql_data_array['manufacturers_seo_keywords'] = tep_db_prepare_input($manufacturers_seo_keywords_array[$language_id]);
          $sql_data_array['manufacturers_seo_title'] = tep_db_prepare_input($manufacturers_seo_title_array[$language_id]);

REPLACE WITH:
	  
         /*** Begin Header Tags SEO ***/	  
          $sql_data_array['manufacturers_htc_title_tag'] = (tep_not_null($manufacturers_htc_title_array[$language_id]) ? tep_db_prepare_input(strip_tags($manufacturers_htc_title_array[$language_id])) : strip_tags($manufacturers_name));
          $sql_data_array['manufacturers_htc_title_tag_alt'] = (tep_not_null($manufacturers_htc_title_alt_array[$language_id]) ? tep_db_prepare_input(strip_tags($manufacturers_htc_title_alt_array[$language_id])) : strip_tags($manufacturers_name));
          $sql_data_array['manufacturers_htc_title_tag_url'] = (tep_not_null($manufacturers_htc_title_alt_array[$language_id]) ? tep_db_prepare_input(strip_tags($manufacturers_htc_title_url_array[$language_id])) : strip_tags($manufacturers_name));
          $sql_data_array['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);
          $sql_data_array['manufacturers_htc_keywords_tag'] = (tep_not_null($manufacturers_htc_keywords_array[$language_id]) ? tep_db_prepare_input(strip_tags($manufacturers_htc_keywords_array[$language_id])) : strip_tags($manufacturers_name));
          $sql_data_array['manufacturers_htc_description'] = tep_db_prepare_input($manufacturers_htc_description_array[$language_id]);
          $sql_data_array['manufacturers_htc_breadcrumb_text'] = (tep_not_null($manufacturers_htc_breadcrumb_array[$language_id]) ? tep_db_prepare_input(strip_tags($manufacturers_htc_breadcrumb_array[$language_id])) : strip_tags($manufacturers_name));
          /*** End Header Tags SEO ***/    

    -------------------------------------------------------------------------------
FIND (around line 87 and again around line 125):

        if (USE_CACHE == 'true') {
          tep_reset_cache_block('manufacturers');
        }

ADD BENEATH:

        /*** Begin Header Tags SEO ***/
        if (HEADER_TAGS_ENABLE_CACHE != 'None') {
          require_once(DIR_WS_FUNCTIONS . 'header_tags.php');
          ResetCache_HeaderTags('index.php', 'm_' . $manufacturers_id);
        }
        /*** End Header Tags SEO ***/

    -------------------------------------------------------------------------------
FIND (around line 156):

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

REPLACE WITH:

  /*** Begin Header Tags SEO ***/
  $manufacturers_query_raw = "select m.manufacturers_id, m.manufacturers_name, m.manufacturers_image, m.date_added, m.last_modified, mi.manufacturers_htc_title_tag, mi.manufacturers_htc_title_tag_alt, mi.manufacturers_htc_title_tag_url from manufacturers m LEFT JOIN manufacturers_info mi on m.manufacturers_id = mi.manufacturers_id where mi.languages_id = '".$languages_id ."' order by m.manufacturers_name";
  /*** End Header Tags SEO ***/

    -------------------------------------------------------------------------------
FIND (around line 213):

      $manufacturer_inputs_string = $manufacturer_description_string = $manufacturer_seo_description_string = $manufacturer_seo_keywords_string = $manufacturer_seo_title_string = '';

      $languages = tep_get_languages();
      for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
        $manufacturer_inputs_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_url[' . $languages[$i]['id'] . ']');
        $manufacturer_description_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '&nbsp;' . tep_draw_textarea_field('manufacturers_description[' . $languages[$i]['id'] . ']', 'soft', '80', '10');
        $manufacturer_seo_description_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '&nbsp;' . tep_draw_textarea_field('manufacturers_seo_description[' . $languages[$i]['id'] . ']', 'soft', '80', '10');
        $manufacturer_seo_keywords_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_seo_keywords[' . $languages[$i]['id'] . ']', NULL, 'style="width: 300px;" placeholder="' . PLACEHOLDER_COMMA_SEPARATION . '"');
        $manufacturer_seo_title_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_seo_title[' . $languages[$i]['id'] . ']', NULL, 'style="width: 300px;"');

REPLACE WITH:

      $manufacturer_inputs_string = '';

      $languages = tep_get_languages();
      for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
        $manufacturer_inputs_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_url[' . $languages[$i]['id'] . ']');
	
        /*** Begin Header Tags SEO ***/ 
        $manufacturer_htc_title_string .= '<br />' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_htc_title_tag[' . $languages[$i]['id'] . ']');
        $manufacturer_htc_title_alt_string .= '<br />' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_htc_title_tag_alt[' . $languages[$i]['id'] . ']');
        $manufacturer_htc_title_url_string .= '<br />' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_htc_title_tag_url[' . $languages[$i]['id'] . ']');
        $manufacturer_htc_breadcrumb_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_htc_breadcrumb_text[' . $languages[$i]['id'] . ']');
        $manufacturer_htc_desc_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . 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']) . '&nbsp;' . tep_draw_input_field('manufacturers_htc_keywords_tag[' . $languages[$i]['id'] . ']');
        
        if (HEADER_TAGS_ENABLE_HTML_EDITOR == 'No Editor' || HEADER_TAGS_ENABLE_EDITOR_MANUFACTURERS == 'false') {
            $manufacturer_htc_description_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '&nbsp;' . tep_draw_textarea_field('manufacturers_description[' . $languages[$i]['id'] . ']', 'soft', '80', '10');
        } else {
            $manufacturer_htc_description_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '&nbsp;' . tep_draw_textarea_ckeditor('manufacturers_description[' . $languages[$i]['id'] . ']', '80', '10');
        }
        /*** End Header Tags SEO ***/

    -------------------------------------------------------------------------------
FIND (around line 235):

      $contents[] = array('text' => '<br />' . TEXT_MANUFACTURERS_SEO_TITLE . $manufacturer_seo_title_string);
      $contents[] = array('text' => '<br />' . TEXT_MANUFACTURERS_DESCRIPTION . $manufacturer_description_string);
      $contents[] = array('text' => '<br />' . TEXT_MANUFACTURERS_SEO_DESCRIPTION . $manufacturer_seo_description_string);
      $contents[] = array('text' => '<br />' . TEXT_MANUFACTURERS_SEO_KEYWORDS . $manufacturer_seo_keywords_string);

REPLACE WITH:

      /*** Begin Header Tags SEO ***/
      $contents[] = array('text' => '<br />' . 'Header Tags Manufacturer Title' . $manufacturer_htc_title_string);
      $contents[] = array('text' => '<br />' . 'Header Tags Manufacturer Title Alt' . $manufacturer_htc_title_alt_string);
      $contents[] = array('text' => '<br />' . 'Header Tags Manufacturer Title URL' . $manufacturer_htc_title_url_string);
      $contents[] = array('text' => '<br />' . 'Header Tags Manufacturer Breadcrumb' . $manufacturer_htc_breadcrumb_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);
      /*** End Header Tags SEO ***/

    -------------------------------------------------------------------------------
FIND (around line 254):

      $manufacturer_inputs_string = $manufacturer_description_string = $manufacturer_seo_description_string = $manufacturer_seo_keywords_string = $manufacturer_seo_title_string = '';
      $languages = tep_get_languages();
      for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
        $manufacturer_inputs_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_url[' . $languages[$i]['id'] . ']', tep_get_manufacturer_url($mInfo->manufacturers_id, $languages[$i]['id']));
        $manufacturer_seo_title_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_seo_title[' . $languages[$i]['id'] . ']', tep_get_manufacturer_seo_title($mInfo->manufacturers_id, $languages[$i]['id']));
        $manufacturer_description_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '&nbsp;' . tep_draw_textarea_field('manufacturers_description[' . $languages[$i]['id'] . ']', 'soft', '80', '10', tep_get_manufacturer_description($mInfo->manufacturers_id, $languages[$i]['id']));
        $manufacturer_seo_description_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '&nbsp;' . tep_draw_textarea_field('manufacturers_seo_description[' . $languages[$i]['id'] . ']', 'soft', '80', '10', tep_get_manufacturer_seo_description($mInfo->manufacturers_id, $languages[$i]['id']));
        $manufacturer_seo_keywords_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_seo_keywords[' . $languages[$i]['id'] . ']', tep_get_manufacturer_seo_keywords($mInfo->manufacturers_id, $languages[$i]['id']), 'style="width: 300px;" placeholder="' . PLACEHOLDER_COMMA_SEPARATION . '"');
      }

      $contents[] = array('text' => '<br />' . TEXT_MANUFACTURERS_URL . $manufacturer_inputs_string);
      $contents[] = array('text' => '<br />' . TEXT_EDIT_MANUFACTURERS_SEO_TITLE . $manufacturer_seo_title_string);
      $contents[] = array('text' => '<br />' . TEXT_EDIT_MANUFACTURERS_DESCRIPTION . $manufacturer_description_string);
      $contents[] = array('text' => '<br />' . TEXT_EDIT_MANUFACTURERS_SEO_DESCRIPTION . $manufacturer_seo_description_string);
      $contents[] = array('text' => '<br />' . TEXT_EDIT_MANUFACTURERS_SEO_KEYWORDS . $manufacturer_seo_keywords_string);

REPLACE WITH:

      $manufacturer_inputs_string = '';
      $languages = tep_get_languages();
      for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
        $manufacturer_inputs_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_url[' . $languages[$i]['id'] . ']', tep_get_manufacturer_url($mInfo->manufacturers_id, $languages[$i]['id']));
	
        /*** Begin Header Tags SEO ***/
        $manufacturer_htc_title_string .= '<br />' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_htc_title_tag[' . $languages[$i]['id'] . ']', tep_get_manufacturer_htc_title($mInfo->manufacturers_id, $languages[$i]['id']));
        $manufacturer_htc_title_alt_string .= '<br />' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_htc_title_tag_alt[' . $languages[$i]['id'] . ']', tep_get_manufacturer_htc_title_alt($mInfo->manufacturers_id, $languages[$i]['id']));
        $manufacturer_htc_title_url_string .= '<br />' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_htc_title_tag_url[' . $languages[$i]['id'] . ']', tep_get_manufacturer_htc_title_url($mInfo->manufacturers_id, $languages[$i]['id']));
        $manufacturer_htc_breadcrumb_string .= '<br />' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('manufacturers_htc_breadcrumb_text[' . $languages[$i]['id'] . ']', tep_get_manufacturer_htc_breadcrumb($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']) . '&nbsp;' . 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']) . '&nbsp;' . tep_draw_input_field('manufacturers_htc_keywords_tag[' . $languages[$i]['id'] . ']', tep_get_manufacturer_htc_keywords($mInfo->manufacturers_id, $languages[$i]['id']));

        if (HEADER_TAGS_ENABLE_HTML_EDITOR == 'No Editor' || HEADER_TAGS_ENABLE_EDITOR_MANUFACTURERS == 'false') {        
            $manufacturer_htc_description_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '&nbsp;' . tep_draw_textarea_field('manufacturers_description[' . $languages[$i]['id'] . ']', 'soft', '80', '10', tep_get_manufacturer_htc_description($mInfo->manufacturers_id, $languages[$i]['id']));
        } else {    
            $manufacturer_htc_description_string .= '<br />' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '&nbsp;' . tep_draw_textarea_ckeditor('manufacturers_description[' . $languages[$i]['id'] . ']', '80', '10', tep_get_manufacturer_htc_description($mInfo->manufacturers_id, $languages[$i]['id']));
        }
        /*** End Header Tags SEO ***/

    -------------------------------------------------------------------------------
FIND (around line 276):

      $contents[] = array('text' => '<br />' . TEXT_EDIT_MANUFACTURERS_SEO_TITLE . $manufacturer_seo_title_string);
      $contents[] = array('text' => '<br />' . TEXT_EDIT_MANUFACTURERS_DESCRIPTION . $manufacturer_description_string);
      $contents[] = array('text' => '<br />' . TEXT_EDIT_MANUFACTURERS_SEO_DESCRIPTION . $manufacturer_seo_description_string);
      $contents[] = array('text' => '<br />' . TEXT_EDIT_MANUFACTURERS_SEO_KEYWORDS . $manufacturer_seo_keywords_string);

REPLACE WITH:

      /*** Begin Header Tags SEO ***/
      $contents[] = array('text' => '<br />' . 'Header Tags Manufacturer Title' . $manufacturer_htc_title_string);
      $contents[] = array('text' => '<br />' . 'Header Tags Manufacturer Title Alt' . $manufacturer_htc_title_alt_string);
      $contents[] = array('text' => '<br />' . 'Header Tags Manufacturer Title URL' . $manufacturer_htc_title_url_string);
      $contents[] = array('text' => '<br />' . 'Header Tags Manufacturer Breadcrumb' . $manufacturer_htc_breadcrumb_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);
      /*** End Header Tags SEO ***/

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

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

TROUBLESHOOTING:

1 - The tools in the admin section have to be able to write to the
include/header_tags.php file. In order to do that, the permissions
for that file must be set correctly. If Header Tags thinks the permissions
are not set correctly, it will display a warning message with what it thinks
are the proper permissions. You will need to change those permissions using
an ftp program (right click and choose chmod) or by using your hosts control
panel. The permissions should, typically, be set to 755 (777 for some
servers). If you do not know what this is or how to do it, ask your host to
help you.

2 - Some hosts restrict a function used in
catalog/admin/includes/functions/header_tags.php. If you get an error regarding
the chmod() php function in this file, like:

Warning: chmod(): Operation not permitted in ...
Cannot change the mode of file (../includes/header_tags.php)

and you have addressed the file permissions settings as stated above, you may
have to comment out the function. To do that,
 OPEN: admin/includes/functions/header_tags.php

  Around line 201 you find this code:

  if (!is_writable($filename))
  {
     if (!chmod($filename, 0666)) {
        echo "Cannot change the mode of file ($filename)";
        exit;
     }
  }

  Replace that with the following code:

  if (!is_writable($filename))
  {
    echo "The file isn't writable";
	exit;
     /* if (!chmod($filename, 0666)) {
        echo "Cannot change the mode of file ($filename)";
        exit;
     } */
  }

****************************** PLEASE NOTE  ************************************
3 - In general, the vast majority of problems with the installation of Header Tags
SEO is due to mistakes in the admin/categories.php file. This is not surprising due
to the large number of changes in that file. If, after installing Header Tags SEO,
you get any error related to the categories file or some function of that file
no longer works (like editing a product), it is due to an error in the changes made
to that file. You can tell if the error is related to that file by looking at the
url in admin. If it has categories.php in it, then that is the problem. To fix it,
download the free WinMerge program and use it to compare your categories file with
the one included in this archive. Be sure to use the categories.php file from the
directory that matches your shop. If the problem can't be found, replace your file 
with the included one to verify the problem exists in that file.
*************************** PLEASE NOTE THE ABOVE ONE ***************************

4) If you are still having problems, go to admin->Header Tags SEO->Test and click
on the button on that page. That will display many failures commonly found in the
installation. No errors should be found, except, possibly, the permissions error
(see above regarding permissions) or if you are running a non-standard oscommerce
shop. If you get a failure and cannot figure it out, post that error in the support
thread for the contribution. Questions about failures without posting the results
of the test will be answered by telling you to run the test, so please do that first.

************************************ SUPPORT *************************************
If you have any problems, see the troubleshooting sections in either of the Install
files or the test routine in admin->Header Tags SEO before asking in the support
thread at

http://forums.oscommerce.com/topic/298099-header-tags-seo

************************** IMPORTANT *********************************
If you post a problem in the support thread, be sure to mention the version
of the shop you are using. Otherwise, you post may not get answered or it 
may be delayed while you find the needed version.
************************** IMPORTANT *********************************

Support questions will not be answered if you PM me or contact me through my web site
so please do not do so.
