Jump to content
Latest News: (loading..)

milerwan

Members
  • Content count

    247
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by milerwan

  1. milerwan

    Header Tags SEO

    Ok I have found the mistake. From my page control of "product_info.php", "Category" was checked in Default Tags table. That's why category name always appears... Excuse me for the disruption. ^_^'
  2. milerwan

    Header Tags SEO

    Sorry it's not the product name is always present but category name.
  3. milerwan

    Header Tags SEO

    Header Tags SEO V 3.xx - Page control, sort_order bug @Jack_mcs Hi Jack, I have noticed a bug in admin with page control in "/header_tags_seo.php" file normally ($Id: header_tags_seo.php,v 1.2 2008/08/08"). The issue affects the sort_order function for title page. For exemple, if in "Select an Option:", you choose "product_info.php", you have for "Include:" Category: Manufacturer: Model: Product: Root: Test: 0. If you don't tick anything, in title page of product_info.php, product name is always present: Category: Manufacturer: Model: Product: Root: -> Product name 1. If you quote Category (and add number > 0), category doesn't appear (?!?) in title page of product_info.php (product name is always present): Category: x [1] Manufacturer: Model: Product: Root: -> Product name 2. If you quote Manufacturer (or Model or Root) (and add number > 0), Manufacturer (or Model or Root) appears (OK) in title page of product_info.php (product name is always present): Category: Manufacturer: x [1] Model: Product: Root: -> Product name - Manufacturer 3. If you quote Product (and add number > 0), category appears (?!?) in title page of product_info.php (product name is always present): Category: Manufacturer: Model: Product: x [1] Root: -> Category - Product 4. If you quote Category (and add number > 0) and Product, category and product name appear in the expected order (OK) in title page of product_info.php: Category: x [2] Manufacturer: Model: Product: x [1] Root: -> Product - Category So where is the bug ? Is it because "Product name" is present by default or the first row "Category" is buggy ? Very strange bug, isn't it ? If you could take a look, it will be nice. Best regards
  4. It is when you use PayPal Standard payment, when a customer has chosen this kind of payment and arrives into "checkout_confirmation" page without going further... At this stage, pre-order is registred from admin (without removing the quantities of basket products from stock). 1. If the customer confirms his order, the order is created and the quantities are decreased too. The satus goes through "pending" (or something else you have chosen). 2. If the customer abandons his purchase by leaving the shop, the status remains "Preparing [PayPal Standard]"... for ever. 3. If the customer goes back to "shopping_cart" and modify his basket, the pre-order will be deleated automatically.
  5. milerwan

    Please Review my Website

    Issue with horizontal categories bar when 2 rows. For the first row, when drop down menu appears and you want to go down with mouse, the menu is too low and he disappears.
  6. This add-on will show a state drop down menu in "create account", address_book" and "checkout_new_address". - When the customer first views the Create Account or Add Address Book Entry form, a default country is pre-selected - If the default country has zones (states, provinces, etc.), a drop-down list for the zones is automatically displayed; if no zones are in the database, a normal text input field is shown instead - If the customer changes the country, the form refreshes and the state field is updated according to the new country; any entries in other fields are preserved. BS version only. ---------------------------------- Country State BS v3.0 - milerwan Adding/editing some codes into states.php file to fix automatic display of entry_state field if not null Javascript changes into catalog/includes/modules/ht_country_state_jquery.php file : - Automatic display of entry_state field if not null - Refresh logo alignment - Removal complementary text which is useless Language files updated next to the additional text removal Add french language for form And always no core change ! NB: We are never better served than by ourselves ;) ---------------------------------- Official thread here. Link to the app : https://apps.oscommerce.com/UT1CL&country-state-selector-bs
  7. milerwan

    Jssor Slider

    It's ok, I found where the creation of the unwanted comma is. In "includes/modules/content/index/templates/tpl_cm_i_jssor.php" (same for "/header/templates/tpl_cm_header_jssor.php"), find : function GetTransitions() { $picked = explode(';', MODULE_CONTENT_INDEX_JSSOR_TANSITIONS); $xsisitons = array(); $xit = parse_ini_file(DIR_FS_CATALOG . '/ext/jssor/transitions.ini'); foreach ($xit as $key => $data) { if (in_array($key, $picked)) { $xsisitons[] = $data .','; } } return '[' . join(',', $xsisitons) . ']'; } and change like this : function GetTransitions() { $picked = explode(';', MODULE_CONTENT_INDEX_JSSOR_TANSITIONS); $xsisitons = array(); $xit = parse_ini_file(DIR_FS_CATALOG . '/ext/jssor/transitions.ini'); foreach ($xit as $key => $data) { if (in_array($key, $picked)) { // $xsisitons[] = $data .','; $xsisitons[] = $data; } } return '[' . join(',', $xsisitons) . ']'; } No more "default" transition parasite during the slider loop now.
  8. milerwan

    Jssor Slider

    Ok, the issue comes from double comma generated by script instead one : [ {$Duration:1000,y:1,$Easing:$Jease$.$InBounce,$Opacity:2} ,, <!-- comma too much --> {$Duration:1200,y:-1,$Cols:10,$Rows:5,$Clip:15,$During:{$Top:[0.5,0.5],$Clip:[0,0.5]},$Formation:$JssorSlideshowFormations$.$FormationStraight,$ChessMode:{$Column:12},$Opacity:2,$ScaleClip:0.5} , <!-- comma too much --> ] I will fix this later. Need to go now.
  9. milerwan

    Jssor Slider

    Sorry, the right sequence is : 1.bounce_down -> 0."default" -> 2.clip_and_chess_in -> 1.bounce_down -> 0."default" -> 2.clip_and_chess_in -> 1.bounce_down -> 0."default" -> and so on And for 3 transitions checked : 1 -> 0 -> 2 -> 0 -> 3 -> 1 -> 0 -> 2 -> 3 -> 1 -> and so on
  10. milerwan

    Jssor Slider

    I have noticed someting strange in the transitions loop (in the 3rd case) : 1. If you check no transition (in admin), "default" transition (slide right to left) loops at each slide -> OK 2. If you check just one transition, the chosen transition loops at each slide -> OK 3. If you check at least two transistions, the slide loop is interspersed with "default" transition at each new transition -> !?! For example, in fact it shows : 1.bounce_down -> 0."default" -> 2.clip_and_chess_in -> 0."default" -> 1.bounce_down -> 0."default" -> 2.clip_and_chess_in -> 0."default" -> and so on Is there a way to have the true sequence - 1 -> 2 -> 1 -> 2 - without the default transition between ? NB: This is the puzzle of this end of the year, enjoy !
  11. milerwan

    Jssor Slider

    Oh, it's just to add style in the HTML text window, when you create a banner from admin. No need to edit banner_manager.php file.
  12. milerwan

    Jssor Slider

    I have tested your solution to add HTML text (from "tpl_cm_header_jssor.php" or "tpl_cm_i_jssor.php") and result is nice but can't be updated in the form according of the images. Maybe css text (with position, color, font-size) deserve to be inserted in "banner_manager.php"... It is possible to modify like this, to get it. 1. In "templates/tpl_cm_header_jssor.php", change : // echo '<div class="banner-text">' . $txtArray[$i] . '</div>'; echo '<div>' . $txtArray[$i] . '</div>'; 2. From admin/banner_manager, add "style" into a <span></span> : <span style="position:absolute; bottom:50px; left:50px; color:black; font-size:40px;">Test</span> Better way it seems.
  13. milerwan

    Jssor Slider

    @Jack_mcs I have found the issue. It is just a wrong folders incrementing in the addon : NewFiles -> images -> jssor -> jssor -> a11.png / b05.png Instead of: NewFiles -> images -> jssor -> a11.png / b05.png PS: lol, at same time
  14. milerwan

    Jssor Slider

    Hi Jack, I use 2.3.4 BS Master (some modified Edge version I think) and I have pictures with slide effects (seems good) but I haven't any selection buttons (bottom and side)... Is it normal ?!? If not, where can the problem come from? Thank you for your lights and for this addon.
  15. Since 2015, the new VAT rules on the sale of dematerialized products within the European Union require the seller to apply the VAT of the country of the buyer in the case of a sale of dematerialized product or service. So, i there a contribution for 2.3.4 BS which can meet this new exigency ? And if not, what changes (or tricks) would you see to bring to oscommerce to achieve this result ? Thank you for help.
  16. milerwan

    Payment fee

    Have you found a solution since?
  17. It's not a question of store, it's just a question of browser (Chrome, IE, firefox, Opera, etc). All work with this trick normally.
  18. @Tsimi It's a shortcut known on Windows and it works in this case too. All rows are selected with it... Just test it.
  19. In my case, I add a drop-down menu for categories excluded from the discount. This allows you to select fewer categories if just some are excluded and the rest of categories/products is concerned. PS: In this example, discount coupons are displayed from the customer area and show which categories are excluded.
  20. I think "Ctrl + A" is better way to select all products in a window.
  21. milerwan

    Payment fee

    Is it to add PayPal fee ? Which payment methods are concerned ?
  22. Hi, Which version of PayPal do you use ?
  23. milerwan

    Google XML Sitemap SEO

    Sorry, for purists, in 1b, change this sentence : $location = $this->hrefLink(FILENAME_PRODUCT_INFO, 'products_id=' . $result['pID'], $request_type, false); By this one : $location = tep_href_link('product_info.php', 'products_id=' . $result['pID'], 'NONSSL', false);
  24. milerwan

    Google XML Sitemap SEO

    Here is my contribution for 2.3.x users : Sitemap images file with "new large product images" add.* *Just 2 functions to replace in "googlesitemap/sitemap.class.php" file (from latest package v1.14a): - GenerateSitemapImages($data, $file) - GenerateImagesSitemap() 1a. Edit "sitemap.class.php" file, and find at line 682 : function GenerateImagesSitemap(){ $quotes = (defined('QUOTES_CATEGORY_NAME') ? " and customers_email_address = '' and quotes_email_address = ''" : ''); $sql = "SELECT products_id as pID, products_image as img, products_date_added as date_added, products_last_modified as last_mod, products_ordered FROM products WHERE products_status='1'" . $quotes . " ORDER BY products_ordered DESC"; if ( $products_query = tep_db_query($sql) ){ $this->debug['QUERY']['IMAGES']['STATUS'] = 'success'; $this->debug['QUERY']['IMAGES']['NUM_ROWS'] = tep_db_num_rows($products_query); $container = array(); $number = 0; $top = 0; while( $result = tep_db_fetch_array($products_query) ){ $top = max($top, $result['products_ordered']); $location = tep_href_link('product_info.php', 'products_id=' . $result['pID'], 'NONSSL', false); $location_base = $this->base_url; $lastmod = tep_not_null($result['last_mod']) ? $result['last_mod'] : $result['date_added']; $changefreq = GOOGLE_SITEMAP_IMAGES_CHANGE_FREQ; $ratio = $top > 0 ? $result['products_ordered']/$top : 0; $priority = $ratio < .1 ? .1 : number_format($ratio, 1, '.', ''); if ($lastmod == 0) { $lastmod = date("Y-m-d H:m:s"); } $container[] = array('loc' => htmlspecialchars(utf8_encode($location)), 'img' => htmlspecialchars(utf8_encode($location_base) . 'images/' . $result['img'] ), 'lastmod' => date ("Y-m-d", strtotime($lastmod)), 'changefreq' => $changefreq, 'priority' => $priority ); if ( sizeof($container) >= 50000 ){ $type = $number == 0 ? 'images' : 'images' . $number; $this->GenerateSitemapImages($container, $type); $container = array(); $number++; } } # end while tep_db_free_result($products_query); if ( sizeof($container) > 0 ) { $type = $number == 0 ? 'images' : 'images' . $number; return $this->GenerateSitemapImages($container, $type); } # end if } else { $this->debug['QUERY']['IMAGES']['STATUS'] = 'false'; $this->debug['QUERY']['IMAGES']['NUM_ROWS'] = '0'; } } # end function 1b. Replace with : function GenerateImagesSitemap(){ $quotes = (defined('QUOTES_CATEGORY_NAME') ? " and customers_email_address = '' and quotes_email_address = ''" : ''); $sql = "SELECT products_id as pID, products_image as img, products_date_added as date_added, products_last_modified as last_mod, products_ordered FROM products WHERE products_status='1'" . $quotes . " ORDER BY products_ordered DESC"; if ( $products_query = tep_db_query($sql) ){ $this->debug['QUERY']['IMAGES']['STATUS'] = 'success'; $this->debug['QUERY']['IMAGES']['NUM_ROWS'] = tep_db_num_rows($products_query); $pre_container = array(); $container = array(); $number = 0; $top = 0; while( $result = tep_db_fetch_array($products_query) ){ $top = max($top, $result['products_ordered']); $location = $this->hrefLink(FILENAME_PRODUCT_INFO, 'products_id=' . $result['pID'], $request_type, false); $location_base = $this->base_url; $lastmod = tep_not_null($result['last_mod']) ? $result['last_mod'] : $result['date_added']; $changefreq = GOOGLE_SITEMAP_IMAGES_CHANGE_FREQ; $ratio = $top > 0 ? $result['products_ordered']/$top : 0; $priority = $ratio < .1 ? .1 : number_format($ratio, 1, '.', ''); if ($lastmod == 0) { $lastmod = date("Y-m-d H:m:s"); } $pimage_query = tep_db_query("SELECT image as pimg FROM products_images WHERE products_id = '" . $result['pID'] . "' ORDER BY sort_order ASC"); $pimg = array(); if (tep_db_num_rows($pimage_query) > 0){ $pimg = ''; while( $pimage = tep_db_fetch_array($pimage_query) ){ $pimg[] = $pimage['pimg']; } } $pre_container = array('loc' => htmlspecialchars(utf8_encode($location)), 'lastmod' => date ("Y-m-d", strtotime($lastmod)), 'changefreq' => $changefreq, 'priority' => $priority, 'img' => htmlspecialchars(utf8_encode($location_base) . 'images/' . $result['img']) ); foreach ($pimg as $key => $val ) { $pre_container['pimg_'.$key] = htmlspecialchars(utf8_encode($location_base) . 'images/' . $val); } $container[] = $pre_container; if ( sizeof($container) >= 50000 ){ $type = $number == 0 ? 'images' : 'images' . $number; $this->GenerateSitemapImages($container, $type); $container = array(); $number++; } } # end while tep_db_free_result($products_query); if ( sizeof($container) > 0 ) { $type = $number == 0 ? 'images' : 'images' . $number; return $this->GenerateSitemapImages($container, $type); } # end if } else { $this->debug['QUERY']['IMAGES']['STATUS'] = 'false'; $this->debug['QUERY']['IMAGES']['NUM_ROWS'] = '0'; } } # end function 2a. Find at line 505 : function GenerateSitemapImages($data, $file){ $content = '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; $content .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"' . "\n"; $content .= 'xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">' . "\n"; foreach ($data as $url){ $content .= "\t" . '<url>' . "\n"; $content .= "\t\t" . '<loc>'.$url['loc'].'</loc>' . "\n"; $content .= "\t\t" . '<image:image>' . "\n"; $content .= "\t\t" . '<image:loc>' . $url['img'] . '</image:loc>' . "\n"; $content .= "\t\t" . '</image:image>' . "\n"; $content .= "\t\t" . '<lastmod>'.$url['lastmod'].'</lastmod>' . "\n"; $content .= "\t\t" . '<changefreq>'.$url['changefreq'].'</changefreq>' . "\n"; $content .= "\t\t" . '<priority>'.$url['priority'].'</priority>' . "\n"; $content .= "\t" . '</url>' . "\n"; } # end foreach $content .= '</urlset>'; return $this->SaveFile($content, $file); } # end function 2b. Replace with : function GenerateSitemapImages($data, $file){ $content = '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; $content .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"' . "\n"; $content .= 'xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">' . "\n"; foreach ($data as $url){ $content .= "\t" . '<url>' . "\n"; $content .= "\t\t" . '<loc>'.$url['loc'].'</loc>' . "\n"; foreach ($url as $key => $val) { switch(substr($key,0,5)) { case "img": case "pimg_": $content .= "\t\t" . '<image:image>' . "\n"; $content .= "\t\t" . '<image:loc>' . $val . '</image:loc>' . "\n"; $content .= "\t\t" . '</image:image>' . "\n"; break; } } # end foreach $content .= "\t\t" . '<lastmod>'.$url['lastmod'].'</lastmod>' . "\n"; $content .= "\t\t" . '<changefreq>'.$url['changefreq'].'</changefreq>' . "\n"; $content .= "\t\t" . '<priority>'.$url['priority'].'</priority>' . "\n"; $content .= "\t" . '</url>' . "\n"; } # end foreach $content .= '</urlset>'; return $this->SaveFile($content, $file); } # end function Enjoy !
  25. milerwan

    Google XML Sitemap SEO

    Ok, thank you for the information. You are right <xmlns="http://www.google.com/schemas/sitemap/0.84"> is deprecated (too bad, display was nice with "gss.xsl" steelsheet). NB: I have tested with the deprecated link above and sitemaps (product, category, index) are accepted anyway...
×