StavrosZ Posted March 14, 2014 Share Posted March 14, 2014 You can do it in phpmyadmin, but that defeats the purpose of creating especially crafted titles and descriptions, no? Yes it certainly does!!! You are right. I'm trying to deliver the best to my customer but doing thorough SEO works on product level is not sth. I got hired for. I guess I have to explain my customer that SEO functionality is ready but writing for SEO is sth extra. Thank you for the prompt reply :-) Quote Link to comment Share on other sites More sharing options...
♥14steve14 Posted March 14, 2014 Share Posted March 14, 2014 Even if you used and modified easy populate surely you have to write unique meta tags by typing them in ne t a time. burt 1 Quote REMEMBER BACKUP, BACKUP AND BACKUP Link to comment Share on other sites More sharing options...
StavrosZ Posted March 14, 2014 Share Posted March 14, 2014 hello Again. I noticed that my meta description on page source contains <p> tags. Does anyone know how to get rid of them? THank you for your recommendations. Do you have any suggestions about the quoted query? Quote Link to comment Share on other sites More sharing options...
burt Posted March 14, 2014 Share Posted March 14, 2014 Remove the <p> tag from your meta descriptions ? Quote Link to comment Share on other sites More sharing options...
StavrosZ Posted March 14, 2014 Share Posted March 14, 2014 Yes <p> tags are created automatically and become part of the meta tag data either I write with the editor or with the source code. Quote Link to comment Share on other sites More sharing options...
StavrosZ Posted March 14, 2014 Share Posted March 14, 2014 I would like to add/make visible the category description text on each category page. I found that Category Description v1.08 contribution is a good approach. Do you know if there would be certain conflicts with your add on? Thank you. Quote Link to comment Share on other sites More sharing options...
burt Posted March 14, 2014 Share Posted March 14, 2014 This is already included in the reloaded addon. Try exploring the addon in full. Quote Link to comment Share on other sites More sharing options...
StavrosZ Posted March 15, 2014 Share Posted March 15, 2014 Remove the <p> tag from your meta descriptions ? Do you have any solution for this burt? Here is an example from my shop's page source <meta name="[url=""]description[/url]" content="[url=""]<p> test perigrafh</p>[/url]" /> or even have a look at http://smokingpaper.gr/smoking-blue-tree-free-xartaki-striftoy-apo-linari-50-tmx-p-183.html Quote Link to comment Share on other sites More sharing options...
StavrosZ Posted March 15, 2014 Share Posted March 15, 2014 This is already included in the reloaded addon. Try exploring the addon in full. That's good to hear Burt and the truth is that after examining your sql code I supposed that your contribution would cover that need as well. But though I have tried to add <?php echo $categories_desc['categories_description']; ?> to the index page I don't see my test description appearing on the relevant category page. Here is an example http://smokingpaper.gr/smoking-artistic/kukuxumusu-c-33_26.html I did checked the addon and the only extra I found refers to information pages. How this would relate to the category description text showing on category page? Quote Link to comment Share on other sites More sharing options...
burt Posted March 16, 2014 Share Posted March 16, 2014 You don't need to add any new code, you just need to ensure that you have properly installed the addon and then you need to ensure you ahve category descriptions added (admin > categories > add new / edit > insert the text into the box > save). AND DO NOT USE HTML IN THESE BOXES. Quote Link to comment Share on other sites More sharing options...
StavrosZ Posted March 24, 2014 Share Posted March 24, 2014 Is it safe to edit directly in the DB columns to add keywords and change some descriptions? Quote Link to comment Share on other sites More sharing options...
StavrosZ Posted March 24, 2014 Share Posted March 24, 2014 You don't need to add any new code, you just need to ensure that you have properly installed the addon and then you need to ensure you ahve category descriptions added (admin > categories > add new / edit > insert the text into the box > save). AND DO NOT USE HTML IN THESE BOXES. Ok got it. I should edit and save the meta fields with the source code view active. But my major issue is how to display the category description on the front end. I want to add some descriptive text at the beginning/top of the each category index page. Unfortunately I don't have the experience with Osc to add that part of code. Quote Link to comment Share on other sites More sharing options...
burt Posted March 24, 2014 Share Posted March 24, 2014 If they do not automatically show then you have not installed it correctly. Category Descriptions are BUILT IN. Quote Link to comment Share on other sites More sharing options...
StavrosZ Posted March 24, 2014 Share Posted March 24, 2014 If they do not automatically show then you have not installed it correctly. Category Descriptions are BUILT IN. I found this solution on a past topic https://github.com/gburton/oscommerce2/blob/3a273e0cc89dab8640c21b929ad1bd0b656ac47f/catalog/index.php#L217-L231 Do you think that this is not valid for my case? I examined my index.php and I'm missing the following part from the code showing. <h1><?php echo $catname; ?></h1> <?php if (tep_not_null($image['categories_description'])) { ?> <div class="categoryText"><?php echo $image['categories_description']; ?></div> <?php } ?> Quote Link to comment Share on other sites More sharing options...
burt Posted March 24, 2014 Share Posted March 24, 2014 (edited) 2013 11 12 ---------- - Removal of Twitter Cards (now included in Core osCommerce) - Removal of Adwords Conversion (now included in Core osCommerce) - Removal of ht_product_og_facebook (replaced by ht_product_opengraph) - Addition of ht_product_opengraph - Addition of category description output in index.php - Addition of manufacturer description output in index.php Try reading the readme.txt file. Which also means you have not correctly installed, or you have installed an older version and not kept on top of updates. Edited March 24, 2014 by burt Quote Link to comment Share on other sites More sharing options...
StavrosZ Posted March 24, 2014 Share Posted March 24, 2014 I found this solution on a past topic https://github.com/gburton/oscommerce2/blob/3a273e0cc89dab8640c21b929ad1bd0b656ac47f/catalog/index.php#L217-L231 Do you think that this is not valid for my case? I examined my index.php and I'm missing the following part from the code showing. <h1><?php echo $catname; ?></h1> <?php if (tep_not_null($image['categories_description'])) { ?> <div class="categoryText"><?php echo $image['categories_description']; ?></div> <?php } ?> Ok problem solved Burt. Thank you for your support. Quote Link to comment Share on other sites More sharing options...
burt Posted April 11, 2014 Share Posted April 11, 2014 http://addons.oscommerce.com/info/8864 Now includes a fileset for bootstrap osCommerce joli1811 and Tsimi 2 Quote Link to comment Share on other sites More sharing options...
rudolfl Posted April 26, 2014 Share Posted April 26, 2014 Hi Guys, Couple of questions: 1. How do I find if I use "normal" or "bootstrap" version of osCommerce. Actually, what is the difference between the two? (Sites in question are www.hatsfromoz.com.au and www.beltsfromoz.com.au) 2. Readme file says that AdWords conversion tracking was removed and is part of core osCommerce. Where is it??? I can not find settings to enable it. Thanks, Rudolf Quote Link to comment Share on other sites More sharing options...
rudolfl Posted April 26, 2014 Share Posted April 26, 2014 Is anyone interested in google analytics HT module that works with new Universal Analytics? I switched to Universal and had to write new module to support it, If there is an interest, how do I submit/uload it? Thanks, Rudolf Quote Link to comment Share on other sites More sharing options...
burt Posted April 26, 2014 Share Posted April 26, 2014 (Sites in question are www.hatsfromoz.com.au and www.beltsfromoz.com.au) Neither of these are Bootstrapped, see http://www.oscommerce.com/forums/topic/396152-bootstrap-3-in-2334-responsive-from-the-get-go/ 2. Readme file says that AdWords conversion tracking was removed and is part of core osCommerce. Where is it??? I can not find settings to enable it. admin > modules > header tags > install Quote Link to comment Share on other sites More sharing options...
burt Posted April 26, 2014 Share Posted April 26, 2014 Is anyone interested in google analytics HT module that works with new Universal Analytics? I switched to Universal and had to write new module to support it, If there is an interest, how do I submit/uload it? Thanks, Rudolf addons.oscommerce.com Quote Link to comment Share on other sites More sharing options...
rudolfl Posted April 26, 2014 Share Posted April 26, 2014 admin > modules > header tags > install Thanks, My site is 2.3.1 and did not have the module. No wonder I could not find it. Rudolf Quote Link to comment Share on other sites More sharing options...
♥Tsimi Posted April 26, 2014 Author Share Posted April 26, 2014 (edited) I have encountered an issue which i can't resolve by my own. I installed the add-on Master Products, that Add-on contains already the function to add a small/short description in the slave product listing. In short it's like a product listing inside the product_info.php file. This is the code used to show the description osc_trunc_string(strip_tags($listing['products_description']), MASTER_LIST_DESCRIPTION_LENGTH) The downside is i can't use HTML tags like < br / > or < p > inside it. It just shows the description connected as it were a sentence and not a list. So i thought why not use the product mini description which comes with the SEO Header Tags - Reloaded add-on. ($listing['products_mini_description']) I can nicely add HTML code to it and it shows correctly, well in English at least. The problem shows up when i choose German or French. (see attached images) When switching to another language besides English the model number and the mini description of the second product and below are displayed in "bold". This happens with German and French but not with English. First i thought i forgot to close a < b > or < strong > tag somewhere but if so then English would show the bold text too, right? I'm really puzzled by this because using the striptags solution from the Master Products Add-on don't cause something like that. What could be the reason for something like this? Where should i look? images: (from left to right) SEO mini descr. in english / SEO mini descr. in german / Master striptags descr. Edited April 26, 2014 by Tsimi Quote Link to comment Share on other sites More sharing options...
burt Posted April 27, 2014 Share Posted April 27, 2014 Impossible to say without seeing the site. My first idea would be that (like you say) you have an opening b or strong somewhere (in the German version of the description). Quote Link to comment Share on other sites More sharing options...
♥Tsimi Posted April 27, 2014 Author Share Posted April 27, 2014 (edited) Hi @@burt Here is the link to the shop page http://wanokaze.jp/dev1/musashi-p-32.html Change to german to see the difference. English = OK German/French = not OK I thought too I might have forgoten to close a < b > or < strong > tag but then why does the bold font starts at with the "model number"? Here are the description text for all three languages I'm currently using. Length: 21 cm (approx. 8.3 inches)<br /> Material: Red sandalwood<br /> Coating: Urushi (Tip only)<br /> Color: red brown<br /> <span style="color:#FF0000"><strong>Not Dishwasher proof!</strong></span> Länge: 21 cm<br /> Material: Rotes Sandelholz<br /> Beschichtung: Urushi (nur die Spitze)<br /> Farbe: rot braun<br /> <span style="color:#FF0000"><strong>Nicht Spülmaschinenfest!</strong></span> Longueur: 21 cm<br /> Matériel: bois de santal rouge<br /> Revêtement: Urushi (seulement la pointe)<br /> Couleur: brun rouge<br /> <span style="color:#FF0000"><strong>Pas au lave-vaisselle!</strong></span> and here is the piece of code for the listing if ($listing_split->number_of_rows > 0) { $rows = 0; $slave_id = (isset($HTTP_GET_VARS['slave_id']) ? $HTTP_GET_VARS['slave_id'] : ''); $master_query = tep_db_query($listing_split->sql_query); $list_box_contents .= ' <div class="masterListOuter">' . '<div class="clear"></div>'; while ($listing = tep_db_fetch_array($master_query)) { $rows++; $list_box_contents .= '<div class="masterListInner">'; for ($col=0, $n=sizeof($column_list); $col<$n; $col++) { switch ($column_list[$col]) { case 'MASTER_LIST_MODEL': $list_box_contents .= ''; break; case 'MASTER_LIST_NAME': if (isset($HTTP_GET_VARS['manufacturers_id'])) { $list_box_contents .= '<div class="slaveNameOuter"><div class="slaveName' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a></div><div class="slaveDescr"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $listing['products_mini_description'] . '</div></div></div>'; } elseif (tep_not_null($listing['products_model'])) { $list_box_contents .= '<div class="slaveNameOuter"><div class="slaveName"' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a></div><span class="smallText">[' . $listing['products_model'] . ']</span><div class="slaveDescr"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $listing['products_mini_description'] . '</div></div></div>'; } else { $list_box_contents .= '<div class="slaveNameOuter"><div class="slaveName"' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a></div><div class="slaveDescr"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $listing['products_mini_description'] . '</div></div></div>'; } break; case 'MASTER_LIST_DESCRIPTION': $list_box_contents .= ''; break; case 'MASTER_LIST_MANUFACTURER': $list_box_contents .= '<div class="slaveManu"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing['manufacturers_id']) . '">' . $listing['manufacturers_name'] . '</a></div></div>'; break; case 'MASTER_LIST_PRICE': if (tep_not_null($listing['specials_new_products_price'])) { $list_box_contents .= '<div class="slavePriceSpecial"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<s>' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</s><br /><span class="productSpecialPrice">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span></div></div>'; } else { $list_box_contents .= '<div class="slavePrice"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</div></div>'; } break; case 'MASTER_LIST_QUANTITY': $list_box_contents .= '<div class="slaveQty"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $listing['products_quantity'] . '</div></div>'; break; case 'MASTER_LIST_WEIGHT': $list_box_contents .= '<div class="slaveQty"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $listing['products_weight'] . '</div></div>'; break; case 'MASTER_LIST_IMAGE': if (isset($HTTP_GET_VARS['manufacturers_id'])) { $list_box_contents .= '<div class="slaveImage"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SLAVE_IMAGE_WIDTH, SLAVE_IMAGE_HEIGHT) . '</a></div></div>'; } else { $list_box_contents .= '<div class="slaveImage"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SLAVE_IMAGE_WIDTH, SLAVE_IMAGE_HEIGHT) . '</a></div></div>'; } break; case 'MASTER_LIST_BUY_NOW': $list_box_contents .= '<div class="slaveBuy"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>'); if ((STOCK_CHECK == 'true')&&(tep_get_products_stock($listing['products_id']) < 1)) { $list_box_contents .= TEXT_STOCK; } elseif ((STOCK_CHECK == 'false')&&(tep_get_products_stock($listing['products_id']) < 1)) { $qty_array = array(); for ($i=0; $ns = 10, $i <= $ns; $i++) { $qty_array[] = array('id' => $i, 'text' => $i); } // $list_box_contents .= tep_draw_input_field('Qty_ProdId_' . $listing['products_id'], '0', 'size="4"'); $list_box_contents .= tep_draw_pull_down_menu4('Qty_ProdId_' . $listing['products_id'], $qty_array); } else { $quantity = tep_get_products_stock($listing['products_id']); $qty_array = array(); for ($i=0; $ns = (($quantity < 10) ? $quantity : 10), $i <= $ns; $i++) { $qty_array[] = array('id' => $i, 'text' => $i); } // $list_box_contents .= tep_draw_input_field('Qty_ProdId_' . $listing['products_id'], '0', 'size="4"'); $list_box_contents .= tep_draw_pull_down_menu4('Qty_ProdId_' . $listing['products_id'], $qty_array); } $list_box_contents .= '</div></div>'; break; case 'MASTER_LIST_OPTIONS': if (tep_has_product_attributes($listing['products_id'])) { $list_box_contents .= '<div class="slaveOption">' . MASTER_OPTIONS_TEXT . '<div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>'); } else { $list_box_contents .= '<div class="slaveOption"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>'); } /////////////////////////////////////////////////////////////////////////// // BOF: attribute options $opt_count=0; $products_options_name = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . $listing['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . $languages_id . "' ORDER by products_options_id"); while ($products_options_name_values = tep_db_fetch_array($products_options_name)) { $opt_count++; $products_options_array = array(); $list_box_contents .= '<b>' . $products_options_name_values['products_options_name'] . '</b><br />' . "\n"; $products_options = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$listing['products_id'] . "' and pa.options_id = '" . (int)$products_options_name_values['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'"); while ($products_options_values = tep_db_fetch_array($products_options)) { $products_options_array[] = array('id' => $products_options_values['products_options_values_id'], 'text' => $products_options_values['products_options_values_name'], 'style' => ''); if ($products_options_values['options_values_price'] != '0') { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options_values['price_prefix'] . $currencies->display_price($products_options_values['options_values_price'], tep_get_tax_rate($listing['products_tax_class_id'])) .') '; } } $list_box_contents .= tep_draw_pull_down_menu('id_'.$listing['products_id'].'[' . $products_options_name_values['products_options_id'] . ']', $products_options_array); $list_box_contents .= '<br />'; } if($opt_count==0) { $list_box_contents .= MASTER_TEXT_NONE; } $list_box_contents .= '</div></div>'; // EOF: attribute options ////////////////////////////////////////////////////////////////////////// break; } } $list_box_contents .= '</div>'; // EOF masterListInner } $list_box_contents .= ' </div>' ; // EOF masterListOuter // '</div>'; // EOF infoBoxContainer echo $list_box_contents; } else { ?> <p><?php echo TEXT_NO_PRODUCTS; ?></p> <?php } if ( ($listing_split->number_of_rows > 0) && ((MASTER_PREV_NEXT_BAR_LOCATION == '2') || (MASTER_PREV_NEXT_BAR_LOCATION == '3')) ) { ?> Edited April 27, 2014 by Tsimi Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.