Jump to content

acidvertigo

Members
  • Content count

    275
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by acidvertigo

  1. acidvertigo

    Ultimate Seo Urls 5 Pro

    Hello i'm using USUS5 pro but cannot use it in multilanguage mode because i cannot change some configuration on my server (external hosting) I've noticed that i get a 301 redirect (in non multilanguage mode) on pages in other languages, for example: http://www.example.com/catalog/product-name-p-10.html (english) redirects 301 to http://www.example.com/catalog/nome-prodotto-p-10.html (italian default language). The reason is this code in /catalog/includes/modules/ultimate_seo_urls5/main/validator.php // If the incoming uri and the newly created uri do not match then we need to 301 redirect to the new. if ( Usu_Main::i()->getVar( 'request_compare_in' ) != Usu_Main::i()->getVar( 'request_compare_new' ) ) { $this->redirect( $new_url ); } } // end method if i disable it, I get 200 status code for all the pages in english, but if someone type a invalid url as for example http://www.example.com/catalog/no-p-10.html the scripts does not redirect and return 200 status code and duplicate content. Can someone help me to chenge the code above to return 200 status code on pages in other languages without lost the useful 301 redirect on duplicate content?
  2. acidvertigo

    KissMT Dynamic SEO Meta Tags

    It is possible to cache this module with sqlite instead of files? Like in the USU 5 PRO module?
  3. acidvertigo

    ULTIMATE Seo Urls 5 - by FWR Media

    Ok i leave multi language support off . However i noticed that on my store i have only two languages, but if i write /index.php?language=fr (non existant language) or /index.php?bat=man for example it doesn't give a 404 error. This is bad because i have duplicate content.
  4. acidvertigo

    ULTIMATE Seo Urls 5 - by FWR Media

    I put AcceptPathInfo On on my .htaccess in my root directory and does nothing www.mysite.com/index.php/test produces 404 error One strange behaviour is that if i write http://www.mysite.com/catalog/index.php/'>http://www.mysite.com/catalog/index.php/ or www.mysite.com/catalog/products_new.php/ it redirects me to http://www.mysite.com/
  5. acidvertigo

    ULTIMATE Seo Urls 5 - by FWR Media

    Hello I installed the Ultimate Seo Urls 5 PRO contribution on 2.3.1 oscommerce On my server works only in URI format rewrite and for me is fine. It works well However when i enable the multilanguage support the urls: http://www.mysite.com/catalog/en http://www.mysite.com/catalog/products_new.php/en http://www.mysite.com/catalog/specials.php/en give me 404 error English is the second language. I tried also with the additional upload bm_languages.php but it redirects in every page to http://www.mysite.com/catalog/index.php this is my htaccess file # If you are getting errors you may need to comment this out like .. # Options +FollowSymLinks # Options +SymLinksIfOwnerMatch # <IfModule mod_rewrite.c> RewriteEngine On # RewriteBase instructions # Change RewriteBase dependent on how your shop is accessed as below. # http://www.mysite.com = RewriteBase / RewriteBase /catalog # http://www.mysite.com/catalog/shop/ = RewriteBase /catalog/shop/ # Change RewriteBase using the instructions above RewriteRule ^([a-z0-9-/]+)-p-([0-9]+).html$ product_info.php [NC,L,QSA] RewriteRule ^([a-z0-9-/]+)-c-([0-9_]+).html$ index.php [NC,L,QSA] RewriteRule ^([a-z0-9-/]+)-m-([0-9]+).html$ index.php [NC,L,QSA] RewriteRule ^([a-z0-9-/]+)-pi-([0-9]+).html$ popup_image.php [NC,L,QSA] RewriteRule ^([a-z0-9-/]+)-pr-([0-9]+).html$ product_reviews.php [NC,L,QSA] RewriteRule ^([a-z0-9-/]+)-pri-([0-9]+).html$ product_reviews_info.php [NC,L,QSA] # Articles contribution RewriteRule ^([a-z0-9-/]+)-t-([0-9_]+).html$ articles.php [NC,L,QSA] RewriteRule ^([a-z0-9-/]+)-au-([0-9]+).html$ articles.php [NC,L,QSA] RewriteRule ^([a-z0-9-/]+)-a-([0-9]+).html$ article_info.php [NC,L,QSA] # Information pages RewriteRule ^([a-z0-9-/]+)-i-([0-9]+).html$ information.php [NC,L,QSA] # Links contribution RewriteRule ^([a-z0-9-/]+)-links-([0-9_]+).html$ links.php [NC,L,QSA] # Newsdesk contribution RewriteRule ^([a-z0-9-/]+)-n-([0-9]+).html$ newsdesk_info.php [NC,L,QSA] RewriteRule ^([a-z0-9-/]+)-nc-([0-9]+).html$ newsdesk_index.php [NC,L,QSA] RewriteRule ^([a-z0-9-/]+)-nri-([0-9]+).html$ newsdesk_reviews_info.php [NC,L,QSA] RewriteRule ^([a-z0-9-/]+)-nra-([0-9]+).html$ newsdesk_reviews_article.php [NC,L,QSA] RewriteRule ^([a-z0-9-/]+)-n-([0-9]+).html$ newsdesk_info.php [NC,L,QSA] # </IfModule> disabled +FollowSymLinks and +SymLinksIfOwnerMatch because my server give me 500 error
  6. acidvertigo

    Browse by Categories

    I have modified browse_categories.php to the following and it works now on 2.3.1. Let me know if it works also for you guys: <?php /* ############################################################################### #-----------------------------------------------------------------------------# # Company: DoWeDo-IT # # Project: Browse by Categories # # Filename: browse_categories.php # # Author: José Carlos Monteiro # # mailto:Jose.Monteiro@DoWeDo-IT.com Mob: +351.91.776-5726 # #-----------------------------------------------------------------------------# # Description: This script file is a module for osCommerce 2.2 MS1/MS2. # # It is used to display a content box with current level categories and # # their sub-categories. The current level categories can be shown as images # # or as text, while sub-categories when shown are always as text. # # The settings are configured through the osCommerce Administration, under # # Configuration section. # # # # Usage: Include this module from the main page. # # Parameters: # # BRWCAT_ICON_MODE # # BRWCAT_SUBCAT_MODE # # BRWCAT_ICONS_PER_ROW # # BRWCAT_SUBCAT_BULLET # # BRWCAT_SUBCAT_COUNTS # # BRWCAT_NAME_CASE # # # # To-Do: # # Apply UL and LI elements to Sub Category Links, using CSS styles. # # # #-----------------------------------------------------------------------------# # History: # # VS DATE AUTHOR SUMMARY # # 1.00 12/Nov/2003 José Carlos Monteiro Initial Source Code. # # 2.00 19/Jan/2004 José Carlos Monteiro Make it 2.2-MS2 compatible. # # 2.10 21/Jan/2004 José Carlos Monteiro Add GPL License File. # # Add GPL copying permission statement. # # Add POSITION_SUB_CATEGORIES. # # Replace hard-coded table with # # odd and even rows or columns. # # 2.20 21/Jan/2004 José Carlos Monteiro Remove original sub category icons. # # 2.31 27/Jan/2004 Didier Debbaut (DDB) Add sub categories products count. # # 2.40 29/Jan/2004 José Carlos Monteiro Add new settings to configuration. # # Use BULLET_BROWSE_SUB_CATEGORIES. # # Use DISPLAY_SUB_CATEGORIES_COUNT. # # Show blank table cell when empty sub. # # Browse to parent category link. # # Set correct breadcrum trail cPath. # # Clear Sub-Categories Link. # # Replace $cPath with $cPath_cur. # # 2.50 03/Fev/2004 José Carlos Monteiro Use Uniform variables Naming Scheme. # # Add BRWCAT_NAME_CASE. # # Choose Image with or without caption. # # 08/Fev/2004 azer Fix blank cell, image wo caption bugs.# # 08/Fev/2004 José Carlos Monteiro Use Language Dependant files. # # 2.60 28/Apr/2004 José Carlos Monteiro Remove Version from Comments. # # Handle Non-Leaf with Products. # # Cleanup Bug/Feature Tracking Comments.# # Moved Language files to modules/. # # # #-----------------------------------------------------------------------------# # This file is part of Browse by Categories. # # # # Browse by Categories is free software; you can redistribute it and/or modify# # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or any # # later version. # # # # Browse by Categories is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with Browse by Categories; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #-----------------------------------------------------------------------------# ############################################################################### */ /* *tab-width=2 *indent=2 *width=132 */ ?> <!-- browse_categories !--> <?php //DWD GOTCHA: /modules/ is hardcoded, but should be the same value as the value in configuration.php require(DIR_WS_LANGUAGES . $language . '/modules/' . FILENAME_BROWSE_CATEGORIES); //DWD Comment: Select Heading Text for Content Box based on current category. if ( (!isset($browse_category_id)) || ($browse_category_id == '0') ) { $browse_category_id = 0; $browse_category_heading = BOX_HEADING_BROWSE_TOP_CATEGORIES; } else { $browse_category_heading = BOX_HEADING_BROWSE_SUB_CATEGORIES; } // Checks to see if current category level is top or sub. //DWD Comment: Select all categories of current level. $categories_query = "select c.categories_id, cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id ='" . $languages_id . "' and c.parent_id = '" . $browse_category_id . "' order by c.sort_order, cd.categories_name"; $arr_current_categories_query = tep_db_query($categories_query); //DWD Comment: Only show content box if there are categories at this level. if ((tep_db_num_rows($arr_current_categories_query) > 0) and (BRWCAT_ICON_MODE != 'off')) { //DWD Comment: Select parent category of current level. $parent_query = "select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = cd.categories_id and cd.language_id ='" . $languages_id . "' and c.categories_id = '" . $browse_category_id . "'"; $arr_parent_category_query = tep_db_query($parent_query); $parent_category = tep_db_fetch_array($arr_parent_category_query); if ($parent_category['parent_id'] > 0) { //DWD Comment: Browse to parent category link from 3rd level categories to 2nd level category. $content_box_text_parent = '<a href="' . tep_href_link(FILENAME_DEFAULT . '?cPath=' . $parent_category['parent_id'], '', 'NONSSL') . '">' . TEXT_BROWSE_PARENT_CATEGORY . $parent_category['categories_name'] . '</a>'; } else if ($browse_category_id > 0) { //DWD Comment: Browse to top-level category link. $content_box_text_parent = '<a href="' . tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') . '">' . TEXT_BROWSE_TOP_CATEGORY . '</a>'; } else { // Top Category Level is 0, don't print back text. } //DWD Comment: Create Content Box with Heading Text. $content_box_contents = array(); $content_box_contents[] = array('align' => 'left', 'text' => $browse_category_heading); //DWD Comment: Display Browse to ... Link. $content_box_contents = array(); $content_box_contents[][] = array('align' => 'left', 'params' => 'class="smallText" valign="top" colspan=2"', 'text' => '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_cur, 'NONSSL') . '"><b>' . $current_category_name . '</b></a>'); ?> <div class="ui-widget infoBoxContainer"> <div class="ui-widget-header ui-corner-top infoBoxHeading"> <span><?php echo $browse_category_heading; ?></span> </div> </div> <?php //DWD Comment: Initialize Content Box Row/Column Variables and Loop through all current categories. $row = 1; $col = 0; while ($current_categories = tep_db_fetch_array($arr_current_categories_query)) { $cPath_cur = tep_get_path($current_categories['categories_id']); //DWD Comment: Apply Category Name Case setting to current category name. if (BRWCAT_NAME_CASE == 'same') { $current_category_name = $current_categories['categories_name']; } else { if (BRWCAT_NAME_CASE == 'upper') { $current_category_name = strtoupper($current_categories['categories_name']); } else if (BRWCAT_NAME_CASE == 'lower') { $current_category_name = strtolower($current_categories['categories_name']); } else if (BRWCAT_NAME_CASE == 'title') { $current_category_name = ucwords($current_categories['categories_name']); } else { //DWD Comment: Unknown Category Name Case. } } //DWD Comment: Select all Sub-Categories of Top-Category (Parent ID equal to Category ID). if (BRWCAT_SUBCAT_MODE != 'off') { //DWD Comment: Sort rows by Sort Order and then Name. $sub_query = "select c.categories_id, cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id='" . $languages_id . "' and c.parent_id ='" . $current_categories['categories_id'] . "' order by c.sort_order, cd.categories_name"; $arr_sub_categories_query = tep_db_query($sub_query); //DWD Comment: Split Sub-Category Mode in bottom or right/valign. $arr_sub_category_mode = explode(' ', BRWCAT_SUBCAT_MODE); //DWD Comment: Build Sub Category Links. $sub_category_links = ''; if (tep_db_num_rows($arr_sub_categories_query) > 0) { $sub_category_links .= '<ul class="BrowseBy">'; while ($sub_categories = tep_db_fetch_array($arr_sub_categories_query)) { $cPath_new_sub = $cPath_cur . '_' . $sub_categories['categories_id']; $sub_category_links .= '<li class="BrowseBy">' . BRWCAT_SUBCAT_BULLET . '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new_sub, 'NONSSL') . '">' . $sub_categories['categories_name'] . '</a>'; //DWD Comment: Display Sub-Category Product Count, if enabled. if (BRWCAT_SUBCAT_COUNTS != '') { $products_in_category = tep_count_products_in_category($sub_categories['categories_id']); if ($products_in_category > 0) { $sub_category_links .= sprintf(' ' . BRWCAT_SUBCAT_COUNTS, $products_in_category); } } $sub_category_links .= ''; } // While Loop: Fetch all Query Rows. Each row is a Sub Category of current level Category. $sub_category_links .= '</ul>'; } // Middle If: Build Sub Category Links if they exist. } // Outer If: Build Sub Category Links if enabled by Configuration Settings. //DWD Comment: Set Content Box Table Width depending on Sub-Category Link Mode. if ($arr_sub_category_mode[0] == 'right') { $table_cell_width = (100 / BRWCAT_ICONS_PER_ROW / 2) . '%'; } else { $table_cell_width = (100 / BRWCAT_ICONS_PER_ROW) . '%'; } //DWD Comment: Fill Content Box Array with Category Icon. //DWD Comment: BRWCAT_ICON_MODE is set on Control Panel: Configuration->My Store. //DWD Comment: If Mode is set as image only then the category name will be displayed on top of sub-category links. if (BRWCAT_ICON_MODE == 'text') { $content_box_contents[$row][$col] = array('align' => 'center', 'params' => 'class="smallText" valign="top" width="' . $table_cell_width . '"', 'text' => '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_cur, 'NONSSL') . '"><b>' . $current_category_name . '</b></a>'); } else if (BRWCAT_ICON_MODE == 'image only') { $content_box_contents[$row][$col] = array('align' => 'center', 'params' => 'class="smallText" valign="top" width="' . $table_cell_width . '"', 'text' => '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_cur, 'NONSSL') . '">' . tep_image(DIR_WS_IMAGES . $current_categories['categories_image'], $current_category_name, SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '</a>'); $sub_category_links = '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_cur, 'NONSSL') . '"><b>' . $current_category_name . '</b></a><br>' . $sub_category_links; } else if (BRWCAT_ICON_MODE == 'image with caption') { $content_box_contents[$row][$col] = array('align' => 'center', 'params' => 'class="smallText" valign="top" width="' . $table_cell_width . '"', 'text' => '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_cur, 'NONSSL') . '">' . tep_image(DIR_WS_IMAGES . $current_categories['categories_image'], $current_category_name, SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_cur, 'NONSSL') . '"><b>' . $current_category_name . '</b></a>'); } else { // Unknown Browse by Categories Content Box Type. } // Checks Type of Content Box for Browse by Categories. //DWD Comment: Fill Content Box Array with Sub-Category Links. if ($arr_sub_category_mode[0] == 'right') { $content_box_contents[$row][$col + 1] = array('align' => 'left', 'params' => 'class="smallText" valign="' . $arr_sub_category_mode[1] . '" width="' . $table_cell_width . '"', 'text' => ($sub_category_links == '' && BRWCAT_SUBCAT_MODE != 'off') ? ' ' : $sub_category_links); $col = $col + 2; if ($col >= BRWCAT_ICONS_PER_ROW * 2) { $col = 0; $row++; } } else { $content_box_contents[$row + 1][$col] = array('align' => 'left', 'params' => 'class="smallText" valign="top" width="' . $table_cell_width . '"', 'text' => ($sub_category_links == '' && BRWCAT_SUBCAT_MODE != 'off') ? ' ' : $sub_category_links); $col++; if ($col >= BRWCAT_ICONS_PER_ROW) { $col = 0; $row = $row + 2; } } // Inner If: Set Content Box contents based on Sub Categories Position } // While Loop: Grab all current level Categories. new contentBox($content_box_contents); } // Check if there are categories at this level. ?> <!-- browse_categories_eof !-->
  7. acidvertigo

    Jquery UI Autocomplete search box

    I changed your code to: while ($row = mysql_fetch_assoc($fetch)) { array_push($return_arr, $row['products_name']), tep_get_category_name($row ['categories_id'])); } and now it shows the cateories name, but the query seems to have a strange beahaviour. If a type a category name it doesn't show, but if i type a product name the name of the category appear.
  8. acidvertigo

    Jquery UI Autocomplete search box

    Jquery ui: http://jqueryui.com/download Jquery: http://docs.jquery.com/Downloading_jQuery#Download_jQuery It's possible to make it work on search on top by adding id="search" at your search <INPUT> form
  9. acidvertigo

    Jquery UI Autocomplete search box

    Glad to know that it works. I want to optimize the query in automplete.php to show also categories name in the results
  10. acidvertigo

    Jquery UI Autocomplete search box

    Hello, "term" is the keyword that jquery ui autocomplete pass to the database query. So id="term" is needed to the script to work. Example if you search "OSCOM" the url will be http://www.mysite.com/catalog/autocomplete.php?term=OSCOM For RC2A you need to download the jquery and jquery ui scripts and put them in every page in the catalog folder like this in the <head> section of your site: <link type="text/css" href="css/themename/jquery-ui-1.8.9.custom.css" rel="Stylesheet" /> <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="js/jquery-ui-1.8.9.custom.min.js"></script> in catalog/includes/header.php you can put the following initializing code for the script: <script> $(function() { $("#search").autocomplete({ source: "autocomplete.php", minLength: 2, select: function(event, ui) { } }); }); </script> Finally in /catalog/includes/boxes/search.php find 'text' => tep_draw_input_field('keywords', '', 'size="10" maxlength="30" style="width: ' . (BOX_WIDTH-30) . 'px"') . ' ' . tep_hide_session_id() . tep_image_submit('button_quick_find.gif', BOX_HEADING_SEARCH) . '<br>' . BOX_SEARCH_TEXT . '<br><a href="' . tep_href_link(FILENAME_ADVANCED_SEARCH) . '"><b>' . BOX_SEARCH_ADVANCED_SEARCH . '</b></a>'); change to: 'text' => tep_draw_input_field('keywords', '', 'size="10" id="search" maxlength="30" style="width: ' . (BOX_WIDTH-30) . 'px"') . ' ' . tep_hide_session_id() . tep_image_submit('button_quick_find.gif', BOX_HEADING_SEARCH) . '<br>' . BOX_SEARCH_TEXT . '<br><a href="' . tep_href_link(FILENAME_ADVANCED_SEARCH) . '"><b>' . BOX_SEARCH_ADVANCED_SEARCH . '</b></a>'); Let me know if it works :)
  11. acidvertigo

    Browse by Categories

    It could be useful to convert this great contruib to oscommerce 2.3. Anoyne is tryng to convert this?
  12. acidvertigo

    Facebook Connect Support Thread

    seems that you have not https libcurl enabled on your server
  13. acidvertigo

    Facebook Connect Support Thread

    same problem here Warning: Cannot modify header information - headers already sent by (output started at /web/htdocs/www.mysite.com/home/catalog/login.php:122) in /web/htdocs/www.mysite.com/home/catalog/includes/functions/general.php on line 47 No ending ?> in the facebook.php file
  14. ;) Hi all. I downloaded and installed this contrib: http://www.oscommerce.com/community/contributions,1705 Here a demo Pricelist And modified to show category images and to take the result for the default language. Here the code: <?php define('TITLE_PRICE', 'List Price'); //define('TITLE_PRICE', 'Price list'); define('SHOW_QUANTITY',false); // true - show, false - hide quantity define('SHOW_MARKED_OUT_STOCK',true); // show marked out of stock (true - show, false - hide) define('TAX_INCREASE', 0); // 0 - No increase, 1 - Add 1%, 5 - Add 5%, Any number - add number% define('SHOW_MODEL',true); // true - show model, false - hide model require('includes/application_top.php'); // the following cPath references come from application_top.php $category_depth = 'top'; if (isset($cPath) && tep_not_null($cPath)) { $categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'"); $cateqories_products = tep_db_fetch_array($categories_products_query); if ($cateqories_products['total'] > 0) { $category_depth = 'products'; // display products } else { $category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'"); $category_parent = tep_db_fetch_array($category_parent_query); if ($category_parent['total'] > 0) { $category_depth = 'nested'; // navigate through the categories } else { $category_depth = 'products'; // category has no products, but display the 'no products' message } } } require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT); $breadcrumb->add(TITLE_PRICE, tep_href_link("price.php", '', 'SSL')); ?> <html <?php echo HTML_PARAMS; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> <title><?php echo TITLE; ?></title> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"> <!-- header //--> <?php require(DIR_WS_INCLUDES . 'header.php');?> <!-- header_eof //--> <!-- body //--> <table border="0" width="100%" cellspacing="3" cellpadding="3"> <!-- body_text //--> <td valign="top"> <table border="0" cellspacing="0" cellpadding="2"> <tr> <td class="pageHeading"><? echo TITLE_PRICE ?></td> </tr> <tr> <td class="headerNavigation">I prezzi sono IVA esclusa e possono variare senza preavviso</td> </tr> <tr> <td> <? // ???? ? ?????? ????????? // group have products? function check_products($id_group){ $products_price_query = tep_db_query("select products_to_categories.products_id FROM products_to_categories where products_to_categories.categories_id = ".$id_group." LIMIT 0,1"); if($products_price = tep_db_fetch_array($products_price_query)){ return true; } return false; } // ??????? ?????? ????????? ???????????? ?????? $id_group // list products determined group function get_products($id_group){ global $currencies; $query = ""; $products_price_query = tep_db_query("SELECT products_description.products_name, products.products_quantity, products.products_price, products.products_model, products_to_categories.products_id, products_to_categories.categories_id FROM products, products_description, products_to_categories WHERE products.products_id = products_description.products_id AND products_description.language_id =2".$query." and products.products_id = products_to_categories.products_id and products_to_categories.categories_id = ".$id_group); $x=0; while ($products_price = tep_db_fetch_array($products_price_query)){ $cell = tep_get_products_special_price($products_price['products_id']); if($cell == 0) $cell = $products_price['products_price']; if($x==1) { $col = "#F8F8F9"; $x = 0; }else{ $col = "#FFFFFF"; $x++; } $quantity = ""; $model = ""; if(SHOW_QUANTITY) $quantity = "<td width=\"100\" align=\"right\" class=\"productListing-data\">(".$products_price['products_quantity'].")</td>"; if(SHOW_MODEL) $model = "<td width=\"100\" align=\"left\" class=\"productListing-data\">[".$products_price['products_model']."]</td>"; print "<tr bgcolor=\"".$col."\" align = \"left\">".$model."<td width=\"1000\" class=\"productListing-data\" align=\"left\"> <a href=\"" . tep_href_link(FILENAME_PRODUCT_INFO, "products_id=" . $products_price['products_id']) . "\"<a>".$products_price['products_name']."</td>".$quantity."<td width=\"150\" align=\"left\" class=\"productListing-data\">".$currencies->display_price($cell,TAX_INCREASE)."</td></tr>"; } } // ??????????? ???????, ???????? ?????? ?? ??????? // get all groups function get_group($id_parent,$position){ $groups_price_query = tep_db_query("select categories.categories_id,categories_image,categories_description.categories_name from categories, categories_description where categories.categories_id = categories_description.categories_id and categories.parent_id = ".$id_parent." and categories_description.language_id = 2 order by categories_description.categories_name"); while ($groups_price = tep_db_fetch_array($groups_price_query)){ $str = ""; for($i = 0; $i < $position; $i++){ $str = $str . " "; } $class = "productListing-heading"; if($position == 0) { $class = "headerNavigation"; print "<tr><td colspan=\"4\" width=\"1000\" class=\"productListing-data\"> </td></tr>"; // ?????? ?????? } if(check_products($groups_price['categories_id']) || $position == 0){ print "<br<tr><td colspan=\"4\" width=\"1000\" class=\"".$class."\"><img src= \"/public/".$groups_price['categories_image']."\" height=\"64\" width=\"84\"><strong><font color=\"#FFFFFF\" size=\"3\"><u>".$str.$groups_price['categories_name']."</font></u></strong></td></tr>"; get_products($groups_price['categories_id']); } get_group($groups_price['categories_id'],$position+1); // ????????? ?????? } } ?> <table width="100%" border="0" cellspacing="1" cellpadding="0"> <? // Content is in $site get_group(0,0); ?> </table> </td> </tr> </table> </td> <!-- body_text_eof //--> </tr> </table> <!-- body_eof //--> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> How i can split the result by page with a navigation bar?
  15. acidvertigo

    KissMT Dynamic SEO Meta Tags

    Seeing the google webmaster guidelines at http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=35264#1 my fear is that with a very long description (2065 characters for example on my page) and very long meta keyword Google will tag my site "as Seo site" . A short but descriptive description like: <meta name="description" content="STORE NAME - CATEGORY - PRODUCT NAME - MODEL - MANUFACTURER - 100 character taken from product description "> <meta name="keywords" content=" STORE NAME - CATEGORY - PRODUCT NAME - MODEL - MANUFACTURER - 50 Keyword taken from product description "> will be fine, i think. Note also that in Google webmasters tools long meta description (or short meta description ) will be reported. So if google suggest tht your meta description is too long or too short maybe is telling you that your meta are not optimized for a good user experience. I reccomend also to install the extensions, i like to control every addon in the admin panel. For the categories page in index.php the meta generated are very good. In the home page the description meta is very poor for me. It could be good to use in description e and keyword meta the list of the categories shown in the categories box.
  16. acidvertigo

    KissMT Dynamic SEO Meta Tags

    Installed it. I have a 5.3.1 php hosting. Installed also the extensions I have an issue in the product_info.php page. The meta description reports the entire text of the product description. There is a way to set a maximum number of characters? The same for the keyword meta tag.
  17. acidvertigo

    KissMT Dynamic SEO Meta Tags

    Hello, i'm interested too to try this contrib. My shop has 3 different languages and my metatags are poor.
  18. I'm using this contrib and works well for me. However is good to delete the language_id from the canonical tag? For example if i have a product_info.php page in 10 languages with 10 different description (one per language), is this considered as duplicate page?
  19. acidvertigo

    Browse by Categories

    Hello i have added to the code to caching this module you can find it in the Brows by categories contribution section you need Browse by Categories 2.7 already installed In /catalog/includes/functions/cache.php add the following before the closing end ?> tag //// //! Cache the browse categories module // Cache the browse categories module function tep_cache_browse_categories($auto_expire = false, $refresh = false) { global $cPath, $language, $languages_id, $tree, $cPath_array, $categories_string; $cache_output = ''; if (($refresh == true) || !read_cache($cache_output, 'browse_categories_box-' . $language . '.cache' . $cPath, $auto_expire)) { ob_start(); include(DIR_WS_MODULES . FILENAME_BROWSE_CATEGORIES); $cache_output = ob_get_contents(); ob_end_clean(); write_cache($cache_output, 'browse_categories-' . $language . '.cache' . $cPath); } return $cache_output; } In /catalog/index.php find all include(DIR_WS_MODULES . FILENAME_BROWSE_CATEGORIES); replace with if ((USE_CACHE == 'true') && empty($SID)) { echo tep_cache_browse_categories(); } else { include(DIR_WS_MODULES . FILENAME_BROWSE_CATEGORIES); }
  20. I have read that now google is tring to crawl XHTML microformats like hcard and hproduct for better search result. This is the url of the microfomat standard: http://microformats.org/wiki/Main_Page I wonder if it is possible to implement these formats in the new oscommerce release.
  21. acidvertigo

    Microformats hproduct and hcard

    Now google improved support for reviews, products and local business info. google webmaster blog There is any contribution to have the microfomats on store products?
  22. :thumbsup: Thank you, hope to see more updates on github.
  23. Hi, this is the tutorial on how work with github and speed up the development of the new oscommerce: click here
  24. acidvertigo

    FCK WYSIWYG HTML editor

    Hello i'm tryng to install the new CKEditor 3.0 in oscommerce 2.2MS2 categories.php and mail.php following this documentation CKEditor documentation In admin/categories.php and admin/mail.php i have added this before the </head> tag <script type="text/javascript" src="ckeditor/ckeditor.js"></script> After that in admin/includes/functions/html_output.php i have modified the tep_draw_textarea_field function to this: // Output a form textarea field function tep_draw_textarea_field( $name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true, $id_area="") { $field = '<textarea name="' . tep_output_string($name) .'" id="' . tep_output_string($name) . '" wrap="' . tep_output_string($wrap) . '" cols="' . tep_output_string($width) . '" rows="' . tep_output_string($height) . '"'; if (tep_not_null($class)) $field .= ' ' . 'class="' . tep_output_string($class) . '"'; if (tep_not_null($parameters)) $field .= ' ' . $parameters; $field .= '>'; if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) { if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) { $field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name])); } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) { $field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name])); } } elseif (tep_not_null($text)) { $field .= tep_output_string_protected($text); } $field .= '</textarea> <script ="text/javascript"> //<![CDATA[ // This call can be placed at any point after the // <textarea>, or inside a <head><script> in a // window.onload event handler. // Replace the <textarea id="editor"> with an CKEditor // instance, using default configurations. CKEDITOR.replace( '. $name .' ); //]]> </script>'; return $field; } This code works for now in firefox and chrome but not in intrnet explorer 8 and only mail.php shows the CKEeditor. I have added $id_area in the code to give to the text area a id="". But internet explorer says that CKEDITOR.replace( '. $name .' ); is not defined. Hope this helps to make a new contribution.
  25. Ok now it works and leapfrog now looks wonderfull thank you very much. p.s. When you come in italy i offer you a pizza :thumbsup:
×