Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by Chemo

  1. The experimental Google XML sitemap service was announced on 2 June 2005 and represents a huge development in terms of crawler technology. This contribution is designed to create the sitemap XML feed per the protocol specification delineated by Google. WHAT THIS CONTRIBUTION DOES This contribution creates a sitemap index file and also 2 additional sitemaps (products and categories). It is designed to be run via CRON (primary and preferred method) and also browser as needed. Once the XML feeds are created a store owner should only submit the sitemap index which points to the product and category sitemaps. WHY SHOULD A STORE INSTALL A GOOGLE XML SITEMAP? ...because Google wants to experiment with the service as a means to improve their search result quality. Any time Google wants to experiment I'm in... NOTES The code is THOROUGHLY documented so that other developers can jump on and help. I put a huge amount of time with the documentation on this one so hopefully I'll get some help with future development. ...besides, having quality code AND quality documentation is just sexy :) DOWNLOAD Google XML Sitemap Feed - by Chemo Enjoy! Bobby
  2. I was reading through the blogs today and read Carine's entry here: Alternative layout for the product info page Thus was born Thumbnail Category Browse v1.0 :) ABOUT This contribution places an easily browseable thumbnail row at the bottom of the product info page. This row contains all the products in the currently viewed category with the products sorted by the products_ordered field so can be used as a powerful and easy to use upsale feature. It has a smart memory so their place within the product thumbnails is remembered and makes for a user friendly browsing experience. Super easy install: upload 2 new files and add 1 line of code to product_info.php SCREENSHOT DEMO Download Thumbnail Category Browse Please post support requests in this thread! Much gatitude to Carine for the inspiration. Enjoy! Bobby
  3. I am proud to announce the release of Ultimate SEO URLs for osCommerce-MS2. This contribution builds on the cName & pName code to give an even more flexible, search engine friendly, and cross server compatible SEO URLs. Once installed, Ultimate SEO URLs will give the store owner the choice of the v1.X style cName or new v2.X style static HTML file. This setting is incorporated into the admin control panel so can be toggled on, off, cName, or Rewrite at will. This contribution will work for any store on any server. It is compatible with not only *NIX based servers but also Windows/IIS servers (although IIS is limited to cName). In addition, this contribution is compatible with all other contributions by me including Page Cache (directions included in install package). This release supports multiple languages, unlimited nested categories, and duplicates with ease. SCREENSHOTS Admin Control Panel Settings - Product Name v1.X - Product Name v2.X - Category Name v1.X - Category Name v2.x - Download Ultimate SEO URLs for osCommerce-MS2. Enjoy! Bobby
  4. I've begun work on what will most likely be the last major revision to the Ultimate SEO URLs contribution. It has matured from cName to the feature rich contribution that it is today. However, there is always room for improvement... Planned revisions: 1. Abstract the code 2. Integration of automatic 301 redirect script 3. Introduce more cache features 4. More scalable code 5. Better regex for HTML characters 6. Ability to choose URL keywords 7. Improved install/un-install script for database settings Abstract the code A very common reported request to the be able to use the SEO URLs for admin side datafeeds (like Froogle). Since the code is embedded in the tep_href_link() function it is not possible currently. My intention is to create an abstraction that could be used to construct the URLs anywhere...catalog side, admin side, or both. This feature will add versatilty and value to every external URL generated by the application. Integration of automatic 301 redirect script The redirect script was released as an addon but has matured nicely. It has been tested and verified functional on several websites with the number of issues reported slowing to none. It's time to integrate the code into the contribution and will be an extension of the base class. Introduce more cache features The method of caching the constants used for contruction of the URLs works nicely (and very fast) on stores with less than a few thousand products or categories but does not scale nicely on large stores. I plan on offering the option of 3 types of cache: 1 database driven and 2 filesystem options. This will give the store owner the ability to select the one that performs best on their particular setup. More scalable code The main issue is with how the code generates the cache. I will also offer the option of querying for the keywords to be used in the URL directly from the database. It should be noted that this will use more queries per page but will ultimately use less server resources in terms of RAM for large stores. Smaller stores (less than a few thousand products or categories) should still use the evaluated constants. Better regex for HTML characters Not everybody uses English as their sole language and there are still issues with foreign (at least to us English speaking types) characters in the URLs. I have crafted better regex that will strip the special characters and use URL friendly counterparts. Ability to choose URL keywords The ability to choose keywords is not present in the current code but is frequently requested. Some store owners want to use model or article title for the URL. I'll add the option through abstraction of the code. Thus, in the future if a store has articles or information pages installed it'll be a simple matter to construct SEO URLs for those pages. This will introduce a level of versatility that will be unmatched by the current selection of SEO URL contributions. Improved install/un-install script for database settings Once all the extra cache features are coded the install script for database settings will be consolidated. OK..that's pretty much the planned development. If you would like to explore adding new features now is the time to help plan. It is much easier to add features while in development than in maintenance releases. This is your chance to help shape YOUR contribution. This is YOUR tool...I need YOUR feedback. Bobby
  5. This topic is for support of the Optimize tep_get_tax_rate() contribution. Problem: Each time a price is displayed on osCommerce the tax rate for that product is queried. Even if the user has set to not display taxes with price the tax rate is queried. Solution: Query for each rate one time as it is needed and then store it in session cache. What this contribution does: This code change will modify the tep_get_tax_rate() method so the first time a tax rate is requested it stores it in session. On every tax rate query it is first checked to verify if it's already in sesssion and if not will query / store in cache. If it is already in session it will return that value and save the database lookup. Result: Reduction in per page query count and faster execution times. Query reduction has been demonstrated to be around 75% savings on some pages. Tested on: 8 setups with differing server configurations and osC setup. This change should not affect any other contributions. Install time: As fast as you can open a file, make one change, and upload. Enjoy!
  6. I have released Ultimate SEO URLs v2.0 and is available from the contribution area. This release is bundled with the new osC Advanced Cache Class which moves the cache from the filesystem to the database. The mature code base has changed very little from v1.4 other than the modifications needed to port the new cache class. From the release note: Download Ultimate SEO URLs v2.0 Bobby
  7. This thread is for the cName and pName contribution. Replaces the osC stock method of passing products_id and cPath. This contribution uses the actual category and product name in the URL. Does not use mod_rewrite and all data is cached. Supports multiple languages. SCREEN SHOTS Category name in URL Product name in URL Category and product name in URL DOWNLOAD cName and pName contribution
  8. This contribution caches the category tree as a serialized array. Upon each page call the script first checks to make sure the cache file exists and if so uses that data to populate the category tree. If the file does not exist it calls tep_get_categories(), sets the $tree array, and then writes the data to the cache file. Modifications by the store owner to the categories (rename, move, delete, etc.) are handled by the script to simply delete the cache file. When a customer visits the store and the cache file in not present it will create it automatically. The category menu is fully CSS driven and easy to modify for the individual store look and feel. In addition, it is faster and less resource intensive than the traditional DHTML menu solutions. Download Collapsible CSS Category Menu Bobby
  9. This is the support thread... What is EXPLAIN? MySQL.com Man Page Google it... This contribution is a feature rich tool for contribution coders and osC developers in general. Admin control panel settings enable/disable the database storage of the EXPLAIN SELECT queries that are executed on the catalog side. In addition, there are include only and exclude settings so that only queries on certain pages will be stored. This will be handy for contribution coders since they can enable the EXPLAIN feature on only the pages they are coding. Hopefully, this contribution will enable contribution coders to create more efficient and FASTER queries for their code. This is the tool that I use on client sites to debug so the installation is fast and easy...2 files to upload and 1 existing file to modify. The database settings are added with an automatic script through the browswer (so no more "execute with phpMyAdmin"). The target audience for this contribution are osC coders and developers. Screenshots included in the package. Download osC-EXPLAIN Enjoy! Bobby
  10. This thread is for support of the Live Data Feed base class contribution and also the included Froogle extended class. Download it here: Live Data Feed base class + Froogle Bobby
  11. Download Ultimate SEO URLs v2.1 I will no longer be supporting versions less than 2.1 New Support Thread Bobby
  12. Ultimate SEO URLs v2.1 is available for download.
  13. Change: define('DIR_FS_CATALOG', dirname($HTTP_SERVER_VARS['SCRIPT_FILENAME'])); to: define('DIR_FS_CATALOG', '/path/to/your/doc/root/'); Bobby
  14. I don't believe so...I developed it on a store that is root installed (my development server). SUCCESS! We have the first verification of XML validation! Thank you Denice :) What did you have to change? Bobby
  15. The whole point to the feed is to let Google know when things change...so, yes it kind of defeats the purpose. If you arbitrarily insert dates without the content actually changing it will no doubt be bad news...Google is constantly looking that kind of stuff. Bobby
  16. Thank you for the kind words! I'm glad it worked well for you! The SQL looks like this: $sql = "SELECT products_id as pID, products_date_added as date_added, products_last_modified as last_mod, products_ordered FROM " . TABLE_PRODUCTS . " WHERE products_status='1' ORDER BY products_ordered DESC"; So, the only thing that may present the issue is if the products_status is something other than 1. Very strange...have you modified the file? Bobby
  17. This is the support thread for the Ultimate SEO URLs v2.1 release. I wanted to create a separate thread for this release as the contribution has been recoded from the ground up and is completely different from <=2.0b releases. FEATURES It's FREE ...some don't appreciate this fact. This release is over 1,700 lines of custom coded, golden sweet, search engine optimization goodness. I have spent an incredible amount of time not only creating the code but also testing, debugging, adding features, and of course making the best damn documentation of any contribution. So, as a forward before you install or upgrade and ask for support remember this: ask nicely and say thank you. The increased search engine position and resulting traffic from this contribution may translate into thousands in revenue for your store...but for me it's a losing proposition as it is released for free, supported for free, and the only return I get is from positive feedback and the occassional donation. Thus, I have a pretty short fuse with those that feel I owe them anything. Abstracted Code The advantage to the abstraction is that the code can be used beyond the catalog side. The most immediate use will probably be for admin side data feeds like Froogle, Yahoo, etc. This adds the benefit of keyword relevant URLs for every link going out of your store to the world. Integration of Addon Scripts The Advanced Cache and Automatic Redirect classes are now native to the base class. This completes the development of those tools and makes the overall package easier to maintain, upgrade, and develop in the future. Performance Optimization of the Code / Queries There were a few store owners that had extremely large catalogs (greater than 50K products or categories) that were having issues with the 2.0b release. The code was not performance driven other than creating the SEO URLs. This release has been coded from the ground up to be a Porsche...fast, lean, and mean...no matter how large or small the catalog size. The code has been load tested on stores with over 100K products / categories and also some with less than 100. There is no difference in performance between the two extremes. The heart of the performance is the use of efficient queries and code...but also the effective use of the cache functions. The available options allow a store owner to turn off cache completely (for large stores) or turn off cache for certain parts. This allows complete control of the performance of the code and the use of resources can be throttled at leisure. As everyone knows, I am a performance obsessed coder. Naturally, I have performance analysis code native to the core that will help you fine tune the installation. What's the use of having options if you can't see what effect they are having on the overall page performance? Better Support for Special Characters I have added better regex code to strip characters but know the issue of international translations are pretty tricky. As a result, I have added the option of having the store owners define their own translations. These can be added through the admin control panel. Simplied Installation / Upgrade Procedure The contribution has been transformed into a more modular package which means fewer code edits. This means that initial installation is very much improved and easier. Also, in the future all upgrades will simply be overwriting 1 file. How much easier can it be? :) As for the database settings: the contribution has an installer class that will automatically detect whether it needs to upgrade or install itself. Thus, there is no need to execute SQL files in phpMyAdmin or even call installer scripts through the browser. The only step needed to install / upgrade database settings is to call your store one time...neat, right? I hope the installer class proves to be as useful as I coded it to be...especially for future upgrades. More Pages are SEO'd The past releases focused squarely on the meat and bones of any store: the product and category pages. Since that is very mature it has come time to expand the family of natively supported parts of the store. As of this release the following pages have SEO URLs: 1) Product Pages 2) Category Pages 3) Article Topics 4) Article Info 5) Information Pages 6) Product Reviews 7) Product Review Info 8) Popup Images The power of the contribution code is that the list can easily be expanded to include most anything. SUMMARY This release is a complete recode of the contribution and represents a step forward with development. It is the backbone of the eventual v3.X series and is transitional...meaning that when v3.0 is released upgrading will be as simple as overwriting 1 file. There are many new features introduced but the enhanced peformance is enough to warrant upgrade / installation. This first post is a placeholder for the actual download link. I wanted to create the documentation with a link directly to this thread...so, had to create this thread before posting the contribution to the download area. It's a backward way of doing things but until the osCommerce team fixes their contribution system that's how it is. Please do not post a reply to this thread until I get the download link posted. Bobby
  18. I'm still dumbfounded as to your problem...there is something stopping the data from being transferred to the save function. Maybe if we get time later get with me on instant messenger and we'll spend a few trying to debug it. For everyone else that has this installed: when you get your notification from Google that the feed was accepted be sure to post it! Bobby
  19. Sandra, Not to split hairs but Ultimate SEO URLs works correctly...it's the category box that is throwing the error. The support thread has addressed this issue at least 8 or 9 times with the suggested correction. What you are experiencing with the Google XML Sitemap contribution has absolutely nothing to do with Ultimate SEO URLs...not even close. Bobby
  20. Sandra, I assure you that if I knew the answer I would offer you the best support possible. However, I don't. I can tell you that the data is not being passed to the save function properly. Why it is not passing the data is beyond me and to be honest can't debug it unless I had hands on code so to speak. Bobby
  21. Real nice Will! I didn't make them clickable links because the original purpose was to have them display as part of the CRON email...when they become clickable in most email applications. So, why not upload a version with SEF support? Be sure to comment it as thoroughly as possible and make it clear in the release notes that it is for SEF. Bobby
  22. Carine, I tried a few different things and the one that worked for everyone was just dropping it all the way back to the basic YYYY-MM-DD. Google gives examples with this format and is by far the simplest...and we know it works. Try it out and see what you think... BTW, I'm almost done with the multi-lingual code. That is a strange issue...if it gives those success messages the files should be written to file correctly. Bobby
  23. Colin, That is because he has my Ultimate SEO URLs installed and you don't :) Bobby
  24. I don't understand your question...those appear to be correct. Bobby
  25. I just wanted to drop a quick update note to everyone... First, the Google XML Sitemap contribution is now fully compatible with Ultimate SEO URLs <= 2.0b. So, install away! :) I'm excited over the possibilities with the new XML sitemaps...I believe that it is cutting edge and will prove to be extremely beneficial to every store. Second, I'm almost done with the last part of the Ultimate SEO URLs v2.1 release. Once I get the information pages coded it'll be ready for release. All those that wanted SEO URLs for articles will love this release! Here are the additional features with the v2.1 release: 1) More refined, optimized, and native cache logic 2) Ability to choose between cache and no cache (more queries) 3) Ability to turn of cache method for any area (products, cats, articles, etc) 4) Automatic redirection logic is native to the class 5) Redirect logic can be toggled on/off through AdminCP 6) Support for custom character conversions 7) Ability to remove all non-alphanumeric characters (very powerful) 8) Ability to use the class for admin side data feeds (Froogle, etc) 8) MORE SEO PAGES! -- Products -- Categories -- Popup Images -- Product Reviews -- Product Reviews Info -- Article Topics -- Articles Info -- Information Pages (almost done!) Stay tuned for the release! Bobby