Jump to content

Demitry

Members
  • Content count

    289
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by Demitry

  1. @raiwa hi Rainer, I wanted to download and install this addon, but am confused as to which version to get. I have BS Edge with BS3. Several of the more recent releases say, " Older versions, FROZEN, EDGE and Gold BS3, please use Discount_Codes_4.4.3_BS" However, there is no 4.4.3 BS,.. there is 4.4.2 BS and then there are 3 newer releases after that starting with 5.0.0. So, I assume I need the 4.4.2 BS? ..and then,.. do I need to manually transfer some of the newer changes from the 3 later releases?
  2. Demitry

    Header Tags SEO

    For the most part I agree, but I have custom image code that is not part of osC and it creates folders inside the catalog/image folder and uploads images to that folder. So, I have to figure out how to integrate that code with insert product and update product instead of using it for preview. Or keep the preview and possibly use localStorage for those fields. I'll figure something out, thanks.
  3. Demitry

    Header Tags SEO

    yeah, mine is the same. see below: } elseif ($action == 'new_product_preview') { if (tep_not_null($_POST)) { $pInfo = new objectInfo($_POST); $products_name = $_POST['products_name']; $products_description = $_POST['products_description']; $products_url = $_POST['products_url']; // BOF: Header Tags SEO $products_head_title_tag = $_POST['products_head_title_tag']; $products_head_title_tag_alt = $_POST['products_head_title_tag_alt']; $products_head_title_tag_url = $_POST['products_head_title_tag_url']; $products_head_desc_tag = $_POST['products_head_desc_tag']; $products_head_keywords_tag = $_POST['products_head_keywords_tag']; $products_head_breadcrumb_text = $_POST['products_head_breadcrumb_text']; $products_head_listing_text = $_POST['products_head_listing_text']; $products_head_sub_text = $_POST['products_head_sub_text']; $products_head_additional_words = $_POST['products_head_additional_words']; // EOF: Header Tags SEO I also thought that it might be in this block which is a bit further down for the preview page. Here I have one of the deprecated each() functions updated, but it makes no difference either way in terms of the issue at hand. reset($_POST); //while (list($key, $value) = each($_POST)) { foreach($_POST as $key => $value) { if (!is_array($_POST[$key])) { echo tep_draw_hidden_field($key, htmlspecialchars(stripslashes($value))); } } $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']]))); // BOF: Header Tags SEO 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_title_tag_alt[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_title_tag_alt[$languages[$i]['id']]))); echo tep_draw_hidden_field('products_head_title_tag_url[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_title_tag_url[$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_head_breadcrumb_text[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_breadcrumb_text[$languages[$i]['id']]))); echo tep_draw_hidden_field('products_head_listing_text[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_listing_text[$languages[$i]['id']]))); echo tep_draw_hidden_field('products_head_sub_text[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_sub_text[$languages[$i]['id']]))); echo tep_draw_hidden_field('products_head_additional_words[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_additional_words[$languages[$i]['id']]))); // EOF: Header Tags SEO echo tep_draw_hidden_field('products_url[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_url[$languages[$i]['id']]))); } So,.. what I did was to replace the categories.php file with the one from the less than 2.3 version. And after replacing all the directory and filename definitions for a basic test run, I went through to the preview page and then clicked the Back button and the result was the same -- all of the fields for the header_tags_seo.php module were empty. I tried doing the same thing by swapping out the header_tags_seo.php module, which is where all the HT fields are coming up empty, with no change. I cannot seem to pin point it. Maybe it's something else that PHP7.2 doesn't like.
  4. Demitry

    Header Tags SEO

    Thanks Jack, I looked at that a number of times, but there is not much difference between the new BS Edge categories.php file, my older MS2.2 file and the Use_if_version_lessthan_2.3 folder file in regards to this section. The product preview code is the same (except for the custom images code I have). The issue is with keeping the text content value in the HT SEO fields when going back from the preview via the back button. That back button has a parameter of name="edit" ..I could not find anything related to that. So, could that be it? or is that parameter not utilized?
  5. Demitry

    Header Tags SEO

    @Jack_mcs yeah, I've been using a comparison tool to find this part in both my MS2.2 related file and the one in your addon package in the Use_if_version_lessthan_2.3 folder. I cannot seem to locate it.
  6. Demitry

    Header Tags SEO

    @Jack_mcs hi Jack, Question for you,.. I had to combine some code from my old MS2.2 admin/categories.php file and the new BS Edge version (on PHP 7.2). In doing this I came across a problem where some of the custom code I had did not work without the page preview option. So, the problem is with the Back button on that preview page. When I go back to the categories.php product update page, all fields contain their related data except the product name and all of the fields for the header tags. Those fields are all empty. I’ve been trying to find where this issue is located, but with no luck. My old MS2.2 site does not have this problem. I even changed all instances of the deprecated each() function in the BS Edge version and still cannot get those HT SEO fields to display any content when going back to the product update page from the preview. Any idea of what it can be or where I should look?
  7. Demitry

    Database Optimizer

    @MrPhil hi Phil, Thanks man,.. yeah, I usually check. I looked at the database.php file and it has mysqli_error() function return mysql_error() function. That's why I said that it probably did not make much difference.
  8. Demitry

    Database Optimizer

    @Jack_mcs hi Jack, I did a site search to find all instances of mysql_ to update them to mysqli_ where possible. I found 2 instances of mysql_error() in the following file, which I believe should be mysqli_error(). Though I don't know if it makes any difference. This is for BS Edge on PHP 7.2 /admin/includes/modules/database_optimizer_common.php Please let me know if these should be changed to mysqli_error() for the version I am running. Thanks.
  9. Demitry

    Header Tags SEO

    cool, thanks. I'll take action accordingly.
  10. Demitry

    Header Tags SEO

    @Jack_mcs hi Jack, Question for you about the purpose of the "currently viewing" link. I noticed that BS Edge product_info.php page has this same link for the product title and both, the "currently viewing" link and that product page title link reload the same page. This is confusing for the user, and for bots it sends them into a loop. That's something search engines don't like too much on either front. They already have this issue with the logo image link on the home page. Is there another purpose for these two links that I am not aware of?
  11. Demitry

    Header Tags SEO

    @Jack_mcs hi Jack, In this file there is a style tag inside of an inline style tag for the Additional Words field. /Use_if_version_BootStrap/catalog_only_new_files/admin/includes/modules/header_tags_seo.php And I rewrote that file for better formatting of the titles and fields. I used a table structure because the divs were messed up and frankly, it was easier to do it this way. File is attached and below is a screenshot of how it is formatted now. header_tags_seo.php
  12. Demitry

    Header Tags SEO

    more.... These files have no changes in them. /Use_if_version_BootStrap/catalog/includes/.htaccess /Use_if_version_BootStrap/catalog/includes/modules/content/index_nested/cm_in_category_description.php /Use_if_version_BootStrap/catalog/includes/modules/content/index_nested/cm_in_category_listing.php /Use_if_version_BootStrap/catalog_only_new_files/admin/header_tags_seo_popup_help.php - just calls the application_top file with no other code content. /Use_if_version_BootStrap/catalog/index.php - (int)$HTTP_GET_VARS['manufacturers_id'] should be (int)$ _GET ['manufacturers_id'] /Use_if_version_BootStrap/catalog/product_info.php - echo "<a name=\"\$header_tags_array['title']\"></a>"; has an extra back-slash before the variable and really should be: echo '<a name="' . $header_tags_array['title'] . '"></a>'; /Use_if_version_BootStrap/catalog_only_new_files/admin/includes/functions/header_tags.php - font-size:10ps; should be font-size:10px; (2 instances – lines 213 and 214)
  13. Demitry

    Header Tags SEO

    Also, in the /includes/header_tags.php file, you can combine the noodp and noydir meta tags into one. This should also reduce the related database configuration by one setting. So, ..from this: if ($defaultTags['meta_noodp']) echo '<meta name="robots" content="noodp" />' . "\n"; if ($defaultTags['meta_noydir']) echo '<meta name="slurp" content="noydir" />' . "\n"; to this: if ($defaultTags['meta_noodp']) echo '<meta name="robots" content="noodp,noydir" />' . "\n"; Reference article: https://www.seoworkers.com/seo-articles-tutorials/using-noodp-and-noydir.html
  14. Demitry

    Header Tags SEO

    @Jack_mcs more on this addon… /Use_if_version_BootStrap/catalog_only_new_files/includes/modules/header_tags_social_bookmarks.php In this file there is code calling for the /ext/javascript/plusone.js file. After doing a site search, this is the only place where this file is called. So,.. that plusone.js file can be removed and the call replaced with the following for a cached copy of it from Google. echo '<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>'; Though better yet,… you could remove that code block along with the database install code for Google Plus because Google Plus is no longer in existence.
  15. Demitry

    Header Tags SEO

    @Jack_mcs hi Jack, I’m installing this addon for BS Edge and going through all the files. Here are some issues I found. This file has no changes in it. /Use_if_version_BootStrap/catalog/includes/application_bottom.php These files need a class constructor function __construct(): /Use_if_version_BootStrap/catalog_only_new_files/includes/modules/content/header/cm_header_headertags_pagetop.php /Use_if_version_BootStrap/catalog_only_new_files/includes/modules/content/product_info/ cm_pi_headertags_seo.php /Use_if_version_BootStrap/catalog_only_new_files/includes/modules/boxes/bm_header_tags.php /Use_if_version_BootStrap/catalog_only_new_files/includes/modules/boxes/bm_header_tags_social.php /Use_if_version_BootStrap/catalog_only_new_files/includes/modules/boxes/bm_headertags_seo_silo.php /Use_if_version_BootStrap/catalog_only_new_files/admin/includes/classes/header_tags_seo.php These folders are empty: /Use_if_version_BootStrap/catalog/includes/modules/content/header/templates/ /Use_if_version_BootStrap/catalog/includes/modules/content/navigation/templates/ I’m not finished reviewing all the code for the version I am installing in the package folder Use_if_version_BootStrap, and I’ll let you know if I find anything else.
  16. Demitry

    Header Tags SEO

    @Jack_mcs hi Jack, Just a suggestion to reduce the size of this addon. I think you can safely remove any and all references to osC versions that are below version 2.3 because…: 1) Anyone who currently has an osC version below 2.3, has already installed this HTSEO addon 2) Anyone who chooses osC for a new install, will not install an old version below 2.3
  17. Thanks John, I had not thought of that. I figured it needed both and it works with both. I'll take a look and try restructuring the file to use one parameter (products_id) for all reviews and the reviews_id for the single review. The easiest way is probably to just scrap the split file and leave it as it was and then add in the product_reviews_info.php file. The SEO URLs code is already set up for it in the class file.
  18. @Jack_mcs hi Jack, I modified my product_reviews.php file in my BS Edge install to also display individual reviews,.. same as product_reviews_info.php file did in the older osC versions, before it was dropped for whatever reason. The htaccess rewrite rules for the product_reviews.php file does not recognize any query in the url beyond products_id. Therefore, an individual review in that file with a url like this: ../product_reviews.php?products_id=19&reviews_id=3 …will ignore the last part and return the same product_reviews.php page showing all of the reviews for that product. I tried finding a solution using an htaccess RewriteRule and cannot seem to get one to work properly. I’m doing this with the assumption that I don’t need to add code in the seo.class.php class file, though I may be wrong on that. Do you or anyone else here know how to structure that RewriteRule for it to read the second part of that url query string?
  19. Demitry

    Removing fake customers

    I think an easy way to get around bot creation of fake accounts or abuse of Tell A Friend page is to add in a script that requires the user to approve the account or email-send action via a button sent to their email. This is an added step, but you could spin it as it is designed to protect them (the customer). And a hacker or spammer is not going to use their own email account. This would not work for the Contact Us page, but if set up right, it will only execute the final account-submit or email-send action upon a human approval from the account of the email they used. It would likely require some A/B testing to see if an added step like this would have a significant negative impact on new account creations and Tell A Friend emails sent via real customers.
  20. hi Rainer, This is a small modification to this addon for anyone who wants to use it,.. and if you see value in it, you could add it to an update release. The mod is designed to only show the “See More” button if the number of recently viewed products exceeds the content limit of recently viewed products for each module. For example: if a customer viewed 4 or less products and the content limit is set to 4 recently viewed products, then it does not makes sense to have them see and click on a "See More" button that takes them to a Recently Viewed Products page containing the same 4 or less products that were listed on whatever page they were on. So, here are the changes and I’m only going to use the product_info page Recently Viewed module in this sample. This works in BS Edge. /includes/modules/content/index/cm_i_recently_viewed.php 1) FIND this code: // Set up the product data string in order by $recently_viewed_array if ($num_products > 0) { // Show only if we still have products in the array ADD just ABOVE it: // this will show/hide the "See More" button $rv_btn = 'style="display:none;"'; $rv_number_viewed = substr_count($recently_viewed_string, ",") + 1; if ($rv_number_viewed > MODULE_CONTENT_INDEX_RECENTLY_VIEWED_CONTENT_LIMIT) { $rv_btn = 'style="display:inline;"'; } 2) FIND this code: $recently_viewed_content .= '<h3 class="h3"><span itemprop="name">' . MODULE_CONTENT_INDEX_RECENTLY_VIEWED_TITLE . '</span>' . ((MODULE_CONTENT_INDEX_RECENTLY_VIEWED_SHOW_MORE_BUTTON == 'True')? ' <a href="' . tep_href_link('recently_viewed.php') . '" class="btn btn-default btn-sm">' . MODULE_CONTENT_INDEX_RECENTLY_VIEWED_IMAGE_BUTTON_SEE_MORE . ' <span class="fa fa-angle-right"></span></a>' : '' ) . '</h3>'; REPLACE it with this: $recently_viewed_content .= '<h3><span itemprop="name">' . MODULE_CONTENT_INDEX_RECENTLY_VIEWED_TITLE . '</span>' . ((MODULE_CONTENT_INDEX_RECENTLY_VIEWED_SHOW_MORE_BUTTON == 'True')? '&nbsp;&nbsp;<span ' . $rv_btn . '>' . tep_draw_button(MODULE_CONTENT_INDEX_RECENTLY_VIEWED_IMAGE_BUTTON_SEE_MORE, 'glyphicon glyphicon-triangle-right', tep_href_link('recently_viewed.php'), 'primary', null, 'btn-default btn-sm') . '</span>':'') . '</h3>';
  21. @Tsimi ...you put the "bro" in Lambros 😀 yeah man, ..that's exactly what I was trying to achieve and I'm not very good with SQL. Thank you for the help. I just tested this mod and it works as it should. If you want, you can add it to the next update release. Ok, so here is the complete mod to only show the "See More" button when the number of Featured Products exceeds the content limit set in admin for the particular module. I'm just going to use the index module for this sample, and this is for BS Edge. I'm not sure if there is a difference with other versions. /index/modules/content/index/cm_i_featured_products.php 1) FIND this code: if (tep_db_num_rows($featured_products_query) > 0) { // Show only if we still have products in the array ADD just ABOVE it: // this will show/hide the "See More" button $fp_count_query = tep_db_query("select count(*) as total from featured WHERE status = '1'"); $fp_count = tep_db_fetch_array($fp_count_query); $fp_btn = 'style="display:none;"'; if ($fp_count['total'] > MODULE_CONTENT_INDEX_FEATURED_PRODUCTS_CONTENT_LIMIT) { $fp_btn = 'style="display:inline;"'; } 2) FIND this code: $featured_products_content = '<h3>' . ($cat_name != '' ? sprintf(MODULE_CONTENT_INDEX_FEATURED_PRODUCTS_CATEGORY_TITLE, $cat_name) : MODULE_CONTENT_INDEX_FEATURED_PRODUCTS_TITLE . ((MODULE_CONTENT_INDEX_FEATURED_PRODUCTS_SHOW_BUTTON == 'True')? ' ' . tep_draw_button(MODULE_CONTENT_INDEX_FEATURED_PRODUCTS_IMAGE_BUTTON_SEE_MORE, 'glyphicon glyphicon-triangle-right', tep_href_link('featured_products.php'), 'primary', null, 'btn-default btn-sm'):'')) . '</h3>'; REPLACE it with this: $featured_products_content = '<h3>' . ($cat_name != '' ? sprintf(MODULE_CONTENT_INDEX_FEATURED_PRODUCTS_CATEGORY_TITLE, $cat_name) : MODULE_CONTENT_INDEX_FEATURED_PRODUCTS_TITLE . ((MODULE_CONTENT_INDEX_FEATURED_PRODUCTS_SHOW_BUTTON == 'True')? '&nbsp;&nbsp;<span ' . $fp_btn . '>' . tep_draw_button(MODULE_CONTENT_INDEX_FEATURED_PRODUCTS_IMAGE_BUTTON_SEE_MORE, 'glyphicon glyphicon-triangle-right', tep_href_link('featured_products.php'), 'primary', null, 'btn-default btn-sm') . '</span>':'')) . '</h3>';
  22. @Tsimi yeah, no rush, whenever you can. The "See More" button for the featured products is already there. I'm just trying to condition it to only display when there are more products listed than are limited to display. I really just need to figure out how to get the total featured products listed. Once I have that key, the rest is cake.
  23. @Tsimi hi Lambros, I'm trying to add a modification to the modules for this addon, where the "See More" button does not display unless there are more featured products listed than are limited to display at any one time. ..because there is no point is sending the customer to the featured products page if they are seeing all of the featured products on whatever page they are on. The problem I'm having is getting the total number of featured products (for lets say, the index page module). It's probably right in front of me, I'm just missing that piece. For example: I condition to display that "See More" button only when the total number of featured products is > MODULE_CONTENT_INDEX_FEATURED_PRODUCTS_CONTENT_LIMIT. I wanted to use tep_db_num_rows($featured_products_query), but that is set in the $query to always equal the content limit setting. I really appreciate any help on this. And it could be a good feature for an update. I'll gladly share it here once I get that mod working properly.
  24. I know that this is an old thread, however, because I recently solved this problem, I will share it here for anyone who is looking for the solution. The problem is that the variable $products_id is not defined. So,.... find this code at the top of product_reviews_write.php page, around line 31: if (!tep_db_num_rows($product_info_query)) { tep_redirect(tep_href_link('product_reviews.php', tep_get_all_get_params(array('action')))); } else { $product_info = tep_db_fetch_array($product_info_query); } and replace it with this: if (!tep_db_num_rows($product_info_query)) { tep_redirect(tep_href_link('product_reviews.php', tep_get_all_get_params(array('action')))); } else { $product_info = tep_db_fetch_array($product_info_query); $products_id = $product_info['products_id']; } This should make the error validation work properly. It did for me.
  25. @Tsimi ok, thank you for the explanation. As I mentioned, nothing seems to be off with menu display or functionality without those attributes. So, I think I will continue with them removed. Thanks again.
×