Jump to content
Jack_mcs

Header Tags SEO

Recommended Posts

Hi Jack,

I am getting this error in my logs on PHOENIX 1.0.7.7

PHP Notice:  Undefined index: HTTP_ACCEPT_LANGUAGE in /xx/xx/xx/xx/includes/modules/header_tags_seo/header_tags_opengraph.php on line 2

Any ideas ?
 

 

 

Share this post


Link to post
Share on other sites

The warning occurs because the visitors browser doesn't have the language set for his computer. The OG API says if the locale is missing, it will include one so I think this will fix this. Replace the following

$loc = explode(',',$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$ogArray = array();                  
$ogArray['site_name'] = STORE_NAME; 
$ogArray['locale']  = str_replace('-', '_', $loc[0]);

with this

$ogArray = array();                  
$ogArray['site_name'] = STORE_NAME; 

if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) {
    $loc = explode(',',$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
    $ogArray['locale']  = str_replace('-', '_', $loc[0]);
} 

 

Share this post


Link to post
Share on other sites
3 hours ago, Jack_mcs said:

The warning occurs because the visitors browser doesn't have the language set for his computer. The OG API says if the locale is missing, it will include one so I think this will fix this. Replace the following


$loc = explode(',',$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$ogArray = array();                  
$ogArray['site_name'] = STORE_NAME; 
$ogArray['locale']  = str_replace('-', '_', $loc[0]);

with this


$ogArray = array();                  
$ogArray['site_name'] = STORE_NAME; 

if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) {
    $loc = explode(',',$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
    $ogArray['locale']  = str_replace('-', '_', $loc[0]);
} 

 

Hi Jack,

No it still happens plus these :

PHP Notice:  Undefined index: title in /xx/xx/xx/xx/includes/functions/header_tags.php on line 49
PHP Notice:  Undefined index: keywords in /xx/xx/xx/xx/includes/functions/header_tags.php on line 52
PHP Notice:  Undefined index: desc in /xx/xx/xx/htdocs/includes/header_tags.php on line 221


 

Share this post


Link to post
Share on other sites
34 minutes ago, artfulweb said:

No it still happens plus these :

Are you saying you get the same warning that you initially posted? If so, I don't see how that is possible. The warning is saying the index is being referenced but doesn't exist. While my code change says to only reference if it does exist. What is being done for you to see the warning? I would like to try to duplicate it here.

For the other warnings, and more, they have been fixed but in the latest version I have here but are too numerous to post. I will try to get a new version uploaded in the next few weeks.

Share this post


Link to post
Share on other sites

Had to add the lines from the latest 1.0.7.9

<title><?php echo htmlspecialchars($oscTemplate->getTitle()); ?></title>
<base href="<?php echo HTTP_SERVER . DIR_WS_CATALOG; ?>">

to your supplied template_top for the latest 1.0.7.9 or the images disappeared in product listing (im using Kissit)

 

Edited by MyBookShop

Share this post


Link to post
Share on other sites

This is posted in the wrong support....

Should be in Header Tags SEO 3

 

Using Phoenix 1.0.7.9

Was hoping it may work, but applying the changes - code not found

 

The /catalog/admin/maufacturers.php

<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2020 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

  $action = $_GET['action'] ?? '';

  $OSCOM_Hooks->call('manufacturers', 'preAction');

  if (tep_not_null($action)) {
    switch ($action) {
      case 'insert':
      case 'save':
        if (isset($_GET['mID'])) $manufacturers_id = tep_db_prepare_input($_GET['mID']);
        $manufacturers_name = tep_db_prepare_input($_POST['manufacturers_name']);

        $sql_data_array = ['manufacturers_name' => $manufacturers_name];

        if ($action == 'insert') {
          $insert_sql_data = ['date_added' => 'now()'];

          $sql_data_array = array_merge($sql_data_array, $insert_sql_data);

          tep_db_perform('manufacturers', $sql_data_array);
          $manufacturers_id = tep_db_insert_id();
        } elseif ($action == 'save') {
          $update_sql_data = ['last_modified' => 'now()'];

          $sql_data_array = array_merge($sql_data_array, $update_sql_data);

          tep_db_perform('manufacturers', $sql_data_array, 'update', "manufacturers_id = '" . (int)$manufacturers_id . "'");
        }

        $manufacturers_image = new upload('manufacturers_image');
        $manufacturers_image->set_destination(DIR_FS_CATALOG . 'images/');

        if ($manufacturers_image->parse() && $manufacturers_image->save()) {
          tep_db_query("update manufacturers set manufacturers_image = '" . tep_db_input($manufacturers_image->filename) . "' where manufacturers_id = '" . (int)$manufacturers_id . "'");
        }

        $languages = tep_get_languages();
        for ($i=0, $n=count($languages); $i<$n; $i++) {
          $manufacturers_url_array = $_POST['manufacturers_url'];
          /*** Begin Header Tags SEO ***/
          $manufacturers_seo_keywords_array = $_POST['manufacturers_seo_keywords'];         
          $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 ***/ 
          $language_id = $languages[$i]['id'];

          $sql_data_array = ['manufacturers_url' => tep_db_prepare_input($manufacturers_url_array[$language_id])];
         /*** Begin Header Tags SEO ***/	  
          $sql_data_array['manufacturers_seo_keywords'] = tep_db_prepare_input($manufacturers_seo_keywords_array[$language_id]);
          $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 ***/  

          if ($action == 'insert') {
            $insert_sql_data = ['manufacturers_id' => $manufacturers_id, 'languages_id' => $language_id];

            $sql_data_array = array_merge($sql_data_array, $insert_sql_data);

            tep_db_perform('manufacturers_info', $sql_data_array);
          } elseif ($action == 'save') {
            tep_db_perform('manufacturers_info', $sql_data_array, 'update', "manufacturers_id = '" . (int)$manufacturers_id . "' and languages_id = '" . (int)$language_id . "'");
          }
        }

        $OSCOM_Hooks->call('manufacturers', 'insertSaveAction');

        tep_redirect(tep_href_link('manufacturers.php', (isset($_GET['page']) ? 'page=' . (int)$_GET['page'] . '&' : '') . 'mID=' . $manufacturers_id));
        break;
      case 'deleteconfirm':
        $manufacturers_id = tep_db_prepare_input($_GET['mID']);

        if (isset($_POST['delete_image']) && ($_POST['delete_image'] == 'on')) {
          $manufacturer_query = tep_db_query("select manufacturers_image from manufacturers where manufacturers_id = '" . (int)$manufacturers_id . "'");
          $manufacturer = tep_db_fetch_array($manufacturer_query);

          $image_location = DIR_FS_DOCUMENT_ROOT . DIR_WS_CATALOG . 'images/' . $manufacturer['manufacturers_image'];

          if (file_exists($image_location)) @unlink($image_location);
        }

        tep_db_query("delete from manufacturers where manufacturers_id = '" . (int)$manufacturers_id . "'");
        tep_db_query("delete from manufacturers_info where manufacturers_id = '" . (int)$manufacturers_id . "'");

        if (isset($_POST['delete_products']) && ($_POST['delete_products'] == 'on')) {
          $products_query = tep_db_query("select products_id from products where manufacturers_id = '" . (int)$manufacturers_id . "'");
          while ($products = tep_db_fetch_array($products_query)) {
            tep_remove_product($products['products_id']);
          }
        } else {
          tep_db_query("update products set manufacturers_id = '' where manufacturers_id = '" . (int)$manufacturers_id . "'");
        }

        $OSCOM_Hooks->call('manufacturers', 'deleteConfirmAction');

        tep_redirect(tep_href_link('manufacturers.php', 'page=' . (int)$_GET['page']));
        break;
    }
  }

  $OSCOM_Hooks->call('manufacturers', 'postAction');

  require('includes/template_top.php');
?>

  <div class="row">
    <div class="col">
      <h1 class="display-4 mb-2"><?php echo HEADING_TITLE; ?></h1>
    </div>
    <div class="col text-right align-self-center">
      <?php
      if (empty($action)) {
        echo tep_draw_bootstrap_button(BUTTON_INSERT_NEW_MANUFACTURER, 'fas fa-id-card', tep_href_link('manufacturers.php', 'action=new'), null, null, 'btn-danger');
      }
      else {
        echo tep_draw_bootstrap_button(IMAGE_BACK, 'fas fa-angle-left', tep_href_link('manufacturers.php'), null, null, 'btn-light');
      }
      ?>
    </div>
  </div>

  <div class="row no-gutters">
    <div class="col-12 col-sm-8">
      <div class="table-responsive">
        <table class="table table-striped table-hover">
          <thead class="thead-dark">
            <tr>
              <th><?php echo TABLE_HEADING_MANUFACTURERS; ?></th>
              <th class="text-right"><?php echo TABLE_HEADING_ACTION; ?></th>
            </tr>
          </thead>
          <tbody>
            <?php
            $manufacturers_query_raw = "select * from manufacturers order by manufacturers_name";
            $manufacturers_split = new splitPageResults($_GET['page'], MAX_DISPLAY_SEARCH_RESULTS, $manufacturers_query_raw, $manufacturers_query_numrows);
            $manufacturers_query = tep_db_query($manufacturers_query_raw);
            while ($manufacturers = tep_db_fetch_array($manufacturers_query)) {
              if ((!isset($_GET['mID']) || (isset($_GET['mID']) && ($_GET['mID'] == $manufacturers['manufacturers_id']))) && !isset($mInfo) && (substr($action, 0, 3) != 'new')) {
                $manufacturer_products_query = tep_db_query("select count(*) as products_count from products where manufacturers_id = '" . (int)$manufacturers['manufacturers_id'] . "'");
                $manufacturer_products = tep_db_fetch_array($manufacturer_products_query);

                $mInfo_array = array_merge($manufacturers, $manufacturer_products);
                $mInfo = new objectInfo($mInfo_array);
              }

              if (isset($mInfo) && is_object($mInfo) && ($manufacturers['manufacturers_id'] == $mInfo->manufacturers_id)) {
                echo '<tr class="table-active" onclick="document.location.href=\'' . tep_href_link('manufacturers.php', 'page=' . (int)$_GET['page'] . '&mID=' . (int)$manufacturers['manufacturers_id'] . '&action=edit') . '\'">';
              } else {
                echo '<tr onclick="document.location.href=\'' . tep_href_link('manufacturers.php', 'page=' . (int)$_GET['page'] . '&mID=' . (int)$manufacturers['manufacturers_id']) . '\'">';
              }
              ?>
                <td><?php echo $manufacturers['manufacturers_name']; ?></td>
                <td class="text-right"><?php if (isset($mInfo) && is_object($mInfo) && ($manufacturers['manufacturers_id'] == $mInfo->manufacturers_id)) { echo '<i class="fas fa-chevron-circle-right text-info"></i>'; } else { echo '<a href="' . tep_href_link('manufacturers.php', 'page=' . (int)$_GET['page'] . '&mID=' . $manufacturers['manufacturers_id']) . '"><i class="fas fa-info-circle text-muted"></i></a>'; } ?></td>
              </tr>
<?php
  }
?>
          </tbody>
        </table>
      </div>

      <div class="row my-1">
        <div class="col"><?php echo $manufacturers_split->display_count($manufacturers_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $_GET['page'], TEXT_DISPLAY_NUMBER_OF_MANUFACTURERS); ?></div>
        <div class="col text-right mr-2"><?php echo $manufacturers_split->display_links($manufacturers_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $_GET['page']); ?></div>
      </div>
    </div>

<?php
  $heading = [];
  $contents = [];

  switch ($action) {
    case 'new':
      $heading[] = ['text' => TEXT_HEADING_NEW_MANUFACTURER];

      $contents = ['form' => tep_draw_form('manufacturers', 'manufacturers.php', 'action=insert', 'post', 'enctype="multipart/form-data"')];
      $contents[] = ['text' => TEXT_NEW_INTRO];
      $contents[] = ['text' => TEXT_MANUFACTURERS_NAME . '<br>' . tep_draw_input_field('manufacturers_name')];
      $contents[] = ['text' => TEXT_MANUFACTURERS_IMAGE . '<br><div class="custom-file mb-2">' . tep_draw_input_field('manufacturers_image', '', 'id="inputManufacturersImage"', 'file', null, 'class="form-control-input"') . '<label class="custom-file-label" for="inputManufacturersImage">' . TEXT_MANUFACTURERS_IMAGE_LABEL . '</label></div>'];

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

      $languages = tep_get_languages();
      for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
        $manufacturer_inputs_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '</span></div>' . tep_draw_input_field('manufacturers_url[' . $languages[$i]['id'] . ']') . '</div>';
        $manufacturer_description_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '</span></div>' . tep_draw_textarea_field('manufacturers_description[' . $languages[$i]['id'] . ']', 'soft', '80', '10') . '</div>';
        $manufacturer_seo_description_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '</span></div>' . tep_draw_textarea_field('manufacturers_seo_description[' . $languages[$i]['id'] . ']', 'soft', '80', '10') . '</div>';
        $manufacturer_seo_title_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '</span></div>' . tep_draw_input_field('manufacturers_seo_title[' . $languages[$i]['id'] . ']') . '</div>';
      }

      $contents[] = ['text' => TEXT_MANUFACTURERS_URL . $manufacturer_inputs_string];
      $contents[] = ['text' => TEXT_MANUFACTURERS_SEO_TITLE . $manufacturer_seo_title_string];
      $contents[] = ['text' => TEXT_MANUFACTURERS_DESCRIPTION . $manufacturer_description_string];
      $contents[] = ['text' => TEXT_MANUFACTURERS_SEO_DESCRIPTION . $manufacturer_seo_description_string];
      $contents[] = ['class' => 'text-center', 'text' => tep_draw_bootstrap_button(IMAGE_SAVE, 'fas fa-save', null, 'primary', null, 'btn-success mr-2') . tep_draw_bootstrap_button(IMAGE_CANCEL, 'fas fa-times', tep_href_link('manufacturers.php'), null, null, 'btn-light')];
      break;
    case 'edit':
      $heading[] = ['text' => TEXT_HEADING_EDIT_MANUFACTURER . ' <small>' . TEXT_EDIT_INTRO . '</small>'];

      $contents = ['form' => tep_draw_form('manufacturers', 'manufacturers.php', 'page=' . (int)$_GET['page'] . '&mID=' . $mInfo->manufacturers_id . '&action=save', 'post', 'enctype="multipart/form-data"')];
      $contents[] = ['text' => TEXT_EDIT_INTRO];
      $contents[] = ['text' => TEXT_MANUFACTURERS_NAME . '<br>' . tep_draw_input_field('manufacturers_name', $mInfo->manufacturers_name)];
      $contents[] = ['text' => TEXT_MANUFACTURERS_IMAGE . '<br><div class="custom-file mb-2">' . tep_draw_input_field('manufacturers_image', '', 'id="inputManufacturersImage"', 'file', null, 'class="form-control-input"') . '<label class="custom-file-label" for="inputManufacturersImage">' . $mInfo->manufacturers_image . '</label></div>'];

      $manufacturer_inputs_string = $manufacturer_description_string = $manufacturer_seo_description_string = $manufacturer_seo_title_string = '';
      $languages = tep_get_languages();
      for ($i=0, $n=sizeof($languages); $i<$n; $i++) {

        $manufacturer_inputs_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '</span></div>' . tep_draw_input_field('manufacturers_url[' . $languages[$i]['id'] . ']', tep_get_manufacturer_url($mInfo->manufacturers_id, $languages[$i]['id'])) . '</div>';
        $manufacturer_seo_title_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '</span></div>' . tep_draw_input_field('manufacturers_seo_title[' . $languages[$i]['id'] . ']', tep_get_manufacturer_seo_title($mInfo->manufacturers_id, $languages[$i]['id'])) . '</div>';
        $manufacturer_description_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '</span></div>' . tep_draw_textarea_field('manufacturers_description[' . $languages[$i]['id'] . ']', 'soft', '80', '10', tep_get_manufacturer_description($mInfo->manufacturers_id, $languages[$i]['id'])) . '</div>';
        $manufacturer_seo_description_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '</span></div>' . tep_draw_textarea_field('manufacturers_seo_description[' . $languages[$i]['id'] . ']', 'soft', '80', '10', tep_get_manufacturer_seo_description($mInfo->manufacturers_id, $languages[$i]['id'])) . '</div>';
      }

      $contents[] = ['text' => TEXT_MANUFACTURERS_URL . $manufacturer_inputs_string];
      $contents[] = ['text' => TEXT_EDIT_MANUFACTURERS_SEO_TITLE . $manufacturer_seo_title_string];
      $contents[] = ['text' => TEXT_EDIT_MANUFACTURERS_DESCRIPTION . $manufacturer_description_string];
      $contents[] = ['text' => TEXT_EDIT_MANUFACTURERS_SEO_DESCRIPTION . $manufacturer_seo_description_string];
      $contents[] = ['class' => 'text-center', 'text' => tep_draw_bootstrap_button(IMAGE_SAVE, 'fas fa-save', null, 'primary', null, 'btn-success mr-2') . tep_draw_bootstrap_button(IMAGE_CANCEL, 'fas fa-times', tep_href_link('manufacturers.php', 'page=' . (int)$_GET['page'] . '&mID=' . (int)$mInfo->manufacturers_id), null, null, 'btn-light')];
      break;
    case 'delete':
      $heading[] = ['text' =>  TEXT_HEADING_DELETE_MANUFACTURER];

      $contents = ['form' => tep_draw_form('manufacturers', 'manufacturers.php', 'page=' . (int)$_GET['page'] . '&mID=' . $mInfo->manufacturers_id . '&action=deleteconfirm')];
      $contents[] = ['text' => TEXT_DELETE_INTRO];
      $contents[] = ['text' => '<strong>' . $mInfo->manufacturers_name . '</strong>'];
      $contents[] = ['text' => '<div class="custom-control custom-switch">' . tep_draw_selection_field('delete_image', 'checkbox', 'on', null, 'class="custom-control-input" id="mDeleteImg"') . '<label for="mDeleteImg" class="custom-control-label text-muted"><small>' . TEXT_DELETE_IMAGE . '</small></label></div>'];

      if ($mInfo->products_count > 0) {
        $contents[] = ['text' => '<div class="custom-control custom-switch">' . tep_draw_selection_field('delete_products', 'checkbox', 'on', null, 'class="custom-control-input" id="mDeleteProducts"') . '<label for="mDeleteProducts" class="custom-control-label text-muted"><small>' . TEXT_DELETE_PRODUCTS . '</small></label></div>'];
        $contents[] = ['text' => sprintf(TEXT_DELETE_WARNING_PRODUCTS, $mInfo->products_count)];
      }

      $contents[] = ['class' => 'text-center', 'text' => tep_draw_bootstrap_button(IMAGE_DELETE, 'fas fa-trash', null, 'primary', null, 'btn-danger mr-2') . tep_draw_bootstrap_button(IMAGE_CANCEL, 'fas fa-times', tep_href_link('manufacturers.php', 'page=' . (int)$_GET['page'] . '&mID=' . $mInfo->manufacturers_id), null, null, 'btn-light')];
      break;
    default:
      if (isset($mInfo) && is_object($mInfo)) {
        $heading[] = ['text' => $mInfo->manufacturers_name];

        $contents[] = ['class' => 'text-center', 'text' => tep_draw_bootstrap_button(IMAGE_EDIT, 'fas fa-cogs', tep_href_link('manufacturers.php', 'page=' . (int)$_GET['page'] . '&mID=' . $mInfo->manufacturers_id . '&action=edit'), null, null, 'btn-warning mr-2') . tep_draw_bootstrap_button(IMAGE_DELETE, 'fas fa-trash', tep_href_link('manufacturers.php', 'page=' . (int)$_GET['page'] . '&mID=' . $mInfo->manufacturers_id . '&action=delete'), null, null, 'btn-danger')];
        $contents[] = ['text' => sprintf(TEXT_DATE_ADDED, tep_date_short($mInfo->date_added))];
        if (tep_not_null($mInfo->last_modified)) $contents[] = ['text' => sprintf(TEXT_LAST_MODIFIED, tep_date_short($mInfo->last_modified))];
        $contents[] = ['text' => tep_info_image($mInfo->manufacturers_image, $mInfo->manufacturers_name)];
        $contents[] = ['text' => sprintf(TEXT_PRODUCTS, $mInfo->products_count)];
      }
      break;
  }

  if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
    echo '<div class="col-12 col-sm-4">';
      $box = new box;
      echo $box->infoBox($heading, $contents);
    echo '</div>';
  }
?>

  </div>

  <script>$(document).on('change', '#inputManufacturersImage', function (event) { $(this).next('.custom-file-label').html(event.target.files[0].name); });</script>

<?php
  require('includes/template_bottom.php');
  require('includes/application_bottom.php');
?>

 

 

 

Instructions for changes - this and all code beyond has been changed in the file

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

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

 

 

 

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_title_array = $_POST['manufacturers_seo_title'];

REPLACE WITH:

          /*** Begin Header Tags SEO ***/
          $manufacturers_seo_keywords_array = $_POST['manufacturers_seo_keywords'];         
          $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_title'] = tep_db_prepare_input($manufacturers_seo_title_array[$language_id]);

REPLACE WITH:
	  
         /*** Begin Header Tags SEO ***/	  
          $sql_data_array['manufacturers_seo_keywords'] = tep_db_prepare_input($manufacturers_seo_keywords_array[$language_id]);
          $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_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_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_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);

REPLACE WITH:

      /*** Begin Header Tags SEO ***/
      $contents[] = array('text' => '<br />' . TEXT_MANUFACTURERS_SEO_KEYWORDS . $manufacturer_seo_keywords_string);
      $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_title_string = '';

REPLACE WITH:

      /*** Begin Header Tags SEO ***/ 
      $manufacturer_inputs_string = $manufacturer_description_string = $manufacturer_seo_description_string = $manufacturer_seo_keywords_string = $manufacturer_seo_title_string = '';
      /*** End Header Tags SEO ***/ 
      
    -------------------------------------------------------------------------------
FIND (around line 254):
      
        $manufacturer_seo_description_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name'], '', '', 'style="vertical-align: top;"') . '</span></div>' . tep_draw_textarea_field('manufacturers_seo_description[' . $languages[$i]['id'] . ']', 'soft', '80', '10', tep_get_manufacturer_seo_description($mInfo->manufacturers_id, $languages[$i]['id'])) . '</div>';

ADD BENEATH:      
      
        /*** Begin Header Tags SEO ***/ 
        $manufacturer_seo_keywords_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '</span></div>' . tep_draw_input_field('manufacturers_seo_keywords[' . $languages[$i]['id'] . ']', tep_get_manufacturer_seo_keywords($mInfo->manufacturers_id, $languages[$i]['id']), 'placeholder="' . PLACEHOLDER_COMMA_SEPARATION . '"') . '</div>';
        $manufacturer_htc_title_alt_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '</span></div>' . tep_draw_input_field('manufacturers_htc_title_tag_alt[' . $languages[$i]['id'] . ']', tep_get_manufacturer_htc_title_alt($mInfo->manufacturers_id, $languages[$i]['id'])) . '</div>';
        $manufacturer_htc_title_url_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '</span></div>' . tep_draw_input_field('manufacturers_htc_title_tag_url[' . $languages[$i]['id'] . ']', tep_get_manufacturer_htc_title_url($mInfo->manufacturers_id, $languages[$i]['id'])) . '</div>';
        $manufacturer_htc_breadcrumb_string .= '<div class="input-group"><div class="input-group-prepend"><span class="input-group-text">' . tep_image(tep_catalog_href_link('includes/languages/' . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], '', 'SSL'), $languages[$i]['name']) . '</span></div>' . tep_draw_input_field('manufacturers_htc_breadcrumb_text[' . $languages[$i]['id'] . ']', tep_get_manufacturer_htc_breadcrumb($mInfo->manufacturers_id, $languages[$i]['id'])) . '</div>';
        /*** End Header Tags SEO ***/

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

      $contents[] = ['text' => TEXT_EDIT_MANUFACTURERS_SEO_DESCRIPTION . $manufacturer_seo_description_string];

ADD BENEATH:

      /*** Begin Header Tags SEO ***/
      $contents[] = ['text' => TEXT_EDIT_MANUFACTURERS_SEO_KEYWORDS . $manufacturer_seo_keywords_string];
      $contents[] = ['text' => TEXT_HEADERTAGS_TITLE_ALT . $manufacturer_htc_title_alt_string];
      $contents[] = ['text' => TEXT_HEADERTAGS_TITLE_URL . $manufacturer_htc_title_url_string];
      $contents[] = ['text' => TEXT_HEADERTAGS_BREADCRUMB . $manufacturer_htc_breadcrumb_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;
     } */
  }

Share this post


Link to post
Share on other sites
4 hours ago, Dnj1964 said:

This is posted in the wrong support....

Same problem as I mentioned in the other thread. I can't follow the problem.

Share this post


Link to post
Share on other sites

Hi Jack, @Jack_mcs

Thanks for this addon. I had installed it on Phoenix 1075, while trying to update categories/products, found error when click on the view button

Fatal error: Uncaught Error: Call to undefined function tep_get_products_head_title_tag_alt() in /admin/categories.php:1448 Stack trace: #0 {main} thrown in admin/categories.php on line 1448

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

Had check the admin/includes/header_tags_general.php has this function and made sure the files are upload on server no problem, however it is still showing...how can I change the code so that error goes away?

Many thanks!  Lyn

Share this post


Link to post
Share on other sites

It appears the file is not getting loaded for some reason. See if this will fix it. Find this line

    $products_image_name = $pInfo->products_image;

and add this below it

    include_once('includes/functions/header_tags_general.php');

 

Share this post


Link to post
Share on other sites

A new version has been uploaded with these changes:

  • Changed code to fix php warnings.
  • Fixed a layout issue with the version checker.
  • Replaced the language argument from the gettagcloud function. Now handled with the session.

Please note that this update only affects Phoenix versions 1.0.7.4 and later.

Share this post


Link to post
Share on other sites

Hello,

In product_info no "meta name=Keywords" are generated and in admin I get the following error in header tags-page control-product-info.php when i try to save the settings: " Missing sort orders are not allowed -> product_info.php " and nothing is saved in the database.

When I run header tags-test for product_info, I receive several notices like " Notice: Undefined variable: id in /xxx/s4/catalog/admin/header_tags_test.php on line 563 " or "Notice: Uninitialized string offset: 1 in /xxx/s4/catalog/admin/header_tags_test.php on line 577". And as a result of the test, it is shown " product_info.php is missing data. Fill Tags should be ran. "

How can I solve this problem ?

PS: I use Phoenix 1077 and Header Tags 1074andlater.

Share this post


Link to post
Share on other sites

@amaischeFor the keywords tag, change the "Enable Keyword Meta Tag" setting to either Metatag or Both.

For the missing sort order, it means you didn't enter a number in the sort box for whichever option you enabled.

For the notices, those will be fixed in the next release.

Share this post


Link to post
Share on other sites

Dear Jack,

thanks for the fast reply. I did not realize that I should install the hybrid one, so my "Enable Keyword Meta Tag" shows only true and false. I changed it to the menu and everything works.

Thank you very much

Share this post


Link to post
Share on other sites

Hi - I just installed this on a fresh V1.0.7.6 Phoenix store and found 2 problems.

1- When you  "preview" a product in admin (ie not "editing" but when clicking on the eye icon) you get this error:

 Fatal error: Uncaught Error: Call to undefined function tep_get_products_head_title_tag_alt() in C:\wamp\www\admin\categories.php on line 867

This is what I have on that line 867: 

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

2- In Page Control > product_info, even when selecting "product" in the left hand side Include box, the product title does not show in neither the meta-title nor the meta-description on the product_info page. 

I did make sure I ran the file headertags_seo_db_handler_hybrid.php and used all files within the Phoenix_V_1.0.7.4_and_later folder from the Header Tags SEO V3.3.11 version dated 16th november 2020

Maybe this 2nd issue is tied to the 1st one?

 

Phoenix_preview.png

Share this post


Link to post
Share on other sites
3 hours ago, alix32 said:

 Fatal error: Uncaught Error: Call to undefined function tep_get_products_head_title_tag_alt() in C:\wamp\www\admin\categories.php on line 867

To fix this, find this around line 830 

    $products_image_name = $pInfo->products_image;

    foreach (tep_get_languages() as $l) {

and change it to

    $products_image_name = $pInfo->products_image;

    /*** Begin Header Tags SEO ***/ 
    include_once 'includes/functions/header_tags_general.php';
    /*** End Header Tags SEO ***/ 
    
    foreach (tep_get_languages() as $l) {

For the second problem, did you change the code in the template_top.php file?

Share this post


Link to post
Share on other sites

Thanks @Jack_mcs - 1st problem resolved although the admin/categories file in V1.0.7.6 is slightly different - this is how I fixed this:

    $products_image_name = $pInfo->products_image;

    /*** Begin Header Tags SEO ***/ 
    include_once 'includes/functions/header_tags_general.php';
    /*** End Header Tags SEO ***/
	
    $languages = tep_get_languages();

 

As for the second problem, I didn't manually edit the template_top file I simply overwrote it with the one provided in the package, so I do have the call to the header_tags.php file 

 

<?php
/*** Begin Header Tags SEO ***/
include('includes/header_tags.php');
/*** End Header Tags SEO ***/
?>

 

It might be a version compatibility issue with V1.0.7.6...?

Share this post


Link to post
Share on other sites
8 minutes ago, alix32 said:

It might be a version compatibility issue with V1.0.7.6...?

No, it shouldn't be. Have you ran fill tags?

Share this post


Link to post
Share on other sites
On 12/18/2020 at 3:51 PM, Jack_mcs said:

No, it shouldn't be. Have you ran fill tags?

Yes I did fill the tags and that worked as I can see all the existing products' meta data populated. And then I went into Page Control > product_info.php enabling "product" and from that point I'd expect any newly created products to display the product name in the the meta-title on the fly but nothing's showing unless you go into edit the product information in admin and manually re-enter the product title in the "Products Title for SEO" field

Share this post


Link to post
Share on other sites
2 hours ago, alix32 said:

product title in the "Products Title for SEO" field

The problem is that that box is not part of this addon so the HTS code doesn't fill it in. I'll change that in the next version.

Share this post


Link to post
Share on other sites

A new version has been uploaded with these changes:

  • Changed the code in the HTS display module in admin to prevent php warnings.
  • Changed the code in the HTS test file in admin to prevent php warnings.
  • Changed the code in admin/categories.php to automatically fill in the stock SEO fields. Found by @alix32.
  • Corrected link in Version Checker that gave incorrect results.
  • Removed some unused defines left over from a previous version.

Note: These changes only apply to Phoenix shops 1.0.7.4 and later.

Edited by Jack_mcs

Share this post


Link to post
Share on other sites

anyone else having this problem?:

admin/categories.php?cPath=&pID=137&action=update_product

 

When editing a products name i get presented with this error:

Forbidden

You don't have permission to access this resource.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

 

running on PHP 7.3

Share this post


Link to post
Share on other sites

In Page Control:

Header Tags SEO V 3.3.11

Should be updated to Header Tags SEO V 3.3.12

 

Even after changing the file permissions still get the error on Unix Server

Permissions settings for the /includes/header_tags.php file appear to be incorrect. Change to 755. NOTE: Disregard if on Windows server.

 

PHP 7.3

Share this post


Link to post
Share on other sites
18 hours ago, Owl Sauron said:

Should be updated to Header Tags SEO V 3.3.12

Thank you for mentioning this.

 

18 hours ago, Owl Sauron said:

Even after changing the file permissions still get the error on Unix Server

For most sties, the setting on the images directory matches that of a writable file but they may not be the case for your shop. You can check the permission settings on the images directory and change the ones on the includes/header_tags.php file to match them and it should work. Or just turn off the setting to ignore that check.

Share this post


Link to post
Share on other sites
1 hour ago, MyBookShop said:

How can I change this to "en_AU" ?

It should be done automatically. Have you changes the locale setting in english.php, or whichever language you use?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×