Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

jwilkins

Pioneers
  • Posts

    62
  • Joined

  • Last visited

Everything posted by jwilkins

  1. Rob, I just wanted to add 'another' big thumbs up to you and your KissMT Dynamic SEO Meta & Canonical Header Tags contribution. Since installing, I have seen an increase in sales by nearly 300%! That's without spending any time in making further use of your extended options. So, 300% increase 'out-of-the-box'. Not bad going! I highly recommend anyone using the other header tag contributions giving FWR Media's module a go instead! Thanks again, James
  2. I totally agree.. You've done an excellent job at retaining the original look, something which is very hard to do (considering how outdated the stock site looks! ;) ). Visually there won't be much difference apart from the product_listing table and a few "quirks" on the infobox styling (which I haven't got around to fixing just yet), but all the catalog files (and stylesheet) are now W3C compliant and I'm making good progress on the admin end..
  3. Ultimately that's what it will become, pre-built with contributions installed. However, at the moment, the site (built off a snapshot of GitHub 26/02/2010) is free from contributions that require any installation. That being said, it's a 'full site', so you can drop it into your dev environment (recommended) and run it up. It's good to go. In place of some of your code, I added a contribution that removed the need for the infoBox class (infoboxes now use <ul><li></li></ul> and CSS, plus your CSS product_listing enhancement (referenced on the download page at code.google.com)), which had a 'better' feel to it. Of course, this goes beyond what you had in place (some extra code has been removed, left over for Article Manager and X-Sell to make it a more 'stock' site), but for someone adept at 'merge-compare', or for yourself to merge the valid HTML into your contribution, it may act as a usefull addition. If not, then that's cool :) James
  4. I think that was intended for me?? If so, you can grab a copy now.. it's on Google Code, so anyone can take a copy.. http://code.google.com/p/blackgoggles-tableless-osc-plus/downloads/list This is "work in progress" at the minute and part of a larger picture.. i.e a "full" store all the "usual" contributions in place for people to use if they like. I plan to firstly valdiate the admin, then convert this to tableless, then add in some of the more usefull contributions, then to re-work the whole thing so that it feels a bit more Web 2.0. You'll notice that it's in 'RC' state at the moment.. so credits, working notes, finalised framework from the osC team, etc all need to be applied as I make some more progress. No credits are needed for me.. it's all your work to date anyway :thumbsup:
  5. No probs.. thanks for taking the time to put the initial release up. I have made a few amendments to suit my own needs, but a lot of it can be re-applied back into your build.. James
  6. This may or may not be of any use to people, but I have combined this contribution along with a GitHub snapshot as @26/03/2010. I needed to make a few adjustments to this contribution for HTML validation purposes and remove some of the code left over from testing other contributions (X-Sell, Article Manager etc). So now, the contribution validates across all pages (including all account, checkout pages etc) and is compatible with osCommerce's upcoming release. Due to the difference in base code, I haven't 'polluted' this contribution, but attach a link to where I'm further developing: http://code.google.com/p/blackgoggles-tableless-osc-plus/ James
  7. I just wanted to pass on a message of gratitude to Rob for this excellent module and to encourage anyone who hasn't yet applied it to their stores, to do so! Why have I said the above? Well, since moving away from HTSEO (which was fiddly and time consuming) and now using KissMT instead, every facet of my SERP results has improved. Not only in the result pages (now that Google has begun re-crawling my site with great effect), but the fact that the effort by Rob has turned into sales... yes, £££! I have not as yet begun using KissMT to its full potential, rather just use an 'out of the box' scenario whcih has now generated me more income over the past 3 weeks than ever before! So I urge people to give KissMT a go! For those, who like myself, have a lot of projects on the go and use their ecommerce site as a secondary or tertiary source of income, this module will suit you down to the ground.. you don't have to do anything at all! Just think about your product descriptions (which you should have done anyway) and away you go! Once again, thanks Rob.. this has worked brilliantly for me!
  8. Lol.. no problem.. I'll add it to my "to do" list too.. this "game" is never ending! Re: PHP 5.3 - there are a number of localhosts out there now offering PHP 5.3 as their runtime. It may be worth getting your hands on one to stay ahead of your host. You'll be surprised at how many deprecated functions need to be dealt with.. not just with this contribution..
  9. Hi Tigergirl, I really wouldn't have minded applying the edits for you.. it wouldn't have taken long to do! Anyway, for your rmstandardparcel.php, the edits you suggest look spot on. If you have any more of the shipping modules for the contribution, the same changes to split() would apply.. by replacing with preg_split("/.../") Cheers James
  10. Super! I shall adjust my edits with the ones suggested by yourself. James
  11. Jack, Just some thoughts and a bit of code I changed to suit. A friends site had a large number of disabled products that were being extracted within the all-products scrip. He wants to be able to retain the core osC function, but also run his all products code to output only those products that are set to active. Therefore I have changed the code lines below in *catalog*/all-products.php Original code: $firstletter = tep_sanitize_string($_GET['fl']); $where = ''; if (in_array($firstletter, $letters) || in_array($firstletter, $numbers)) { $where="where pd.products_name like '$firstletter%' AND p.products_status='1' "; $breadcrumb->add(NAVBAR_TITLE . '-'. $firstletter, tep_href_link(FILENAME_ALLPRODS_SEO, 'fl='.$firstletter, 'NONSSL')); } Changed to: $where = "WHERE p.products_status='1' "; if (in_array($firstletter, $letters) || in_array($firstletter, $numbers)) { $where= $where . "AND pd.products_name like '$firstletter%' "; $breadcrumb->add(NAVBAR_TITLE . '-'. $firstletter, tep_href_link(FILENAME_ALLPRODS_SEO, 'fl='.$firstletter, 'NONSSL')); } And then a bit further down the file: $exist_query = tep_db_query("select 1 from " . TABLE_PRODUCTS_DESCRIPTION . " pd inner join " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c on pd.products_id = p2c.products_id left join " . TABLE_CATEGORIES . " c on c.categories_id = p2c.categories_id " . $whereLetters . " and language_id = " . (int)$languages_id . " limit 1"); To: $exist_query = tep_db_query("select 1 from " . TABLE_PRODUCTS . " a, " . TABLE_PRODUCTS_DESCRIPTION . " pd inner join " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c on pd.products_id = p2c.products_id left join " . TABLE_CATEGORIES . " c on c.categories_id = p2c.categories_id " . $whereLetters . " and language_id = " . (int)$languages_id . " and a.products_id = pd.products_id and a.products_status = '1' limit 1"); And one last one: $exist_query = tep_db_query("select 1 from " . TABLE_PRODUCTS_DESCRIPTION . " pd inner join " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c on pd.products_id = p2c.products_id left join " . TABLE_CATEGORIES . " c on c.categories_id = p2c.categories_id " . $whereNumbers . " and language_id = " . (int)$languages_id . " limit 1"); To: $exist_query = tep_db_query("select 1 from " . TABLE_PRODUCTS . " a, " .TABLE_PRODUCTS_DESCRIPTION . " pd inner join " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c on pd.products_id = p2c.products_id left join " . TABLE_CATEGORIES . " c on c.categories_id = p2c.categories_id " . $whereNumbers . " and language_id = " . (int)$languages_id . " and a.products_id = pd.products_id and a.products_status = '1' limit 1"); This now only pulls those products that are set to 'active' within the database and eradicates the listing of inactive products. I just thought I'd pass the idea along... James
  12. Hi Tigergirl, No problem.. In the latest version by Chris (and possibly ones preceding (although I haven't checked)), the function split() has been used. This has become deprecated (throws a deprecated error) in PHP 5.3.x and will be removed by PHP 6.0.x The files I edited for the updated package were all located in *catalog*/includes/modules/shipping/ *and then any rm__.php file for this contribution. The split() function can be replaced by a few others, I chose preg_split(). If you like, PM me and I'll reply with my email address, whereby you can (if you wish) send over the files associated with this shipping contribution and I'll update them for you.
  13. A new package has been uploaded to incorporate the PHP 5.3 fix for split() For those who wish to update, simply overwrite your exisiting *catalog*/includes/modules/shipping/ files with the ones contained in the package. However, this is a FULL package if you are a new user. Version 2.2.1 is located here Thanks to Chris for this superb shipping module! James
  14. PHP 5.3 deprecated function split() Hi Chris, Just working my way through PHP 5.3 locally (before my host upgrades!) and came across a the need to replace split() in the includes/modlues/shipping/xxx.php files. I have posted below my "workings", replacing split() with preg_split() (although explode() or others may be better used?!) For those who wish to stay ahead of PHP 5.3, these are the amendments to make (which will clear the deprecated warnings for split()). *catalog*/includes/modules/shipping/rmfirst.php find: // Check if destination is a valid one for this method if (defined('MODULE_SHIPPING_RMFIRST_COUNTRIES_' . $this->num_zones)) { $countries_table = constant('MODULE_SHIPPING_RMFIRST_COUNTRIES_' . $this->num_zones); $country_zones = split("[,]", $countries_table); Replace with: // Check if destination is a valid one for this method if (defined('MODULE_SHIPPING_RMFIRST_COUNTRIES_' . $this->num_zones)) { $countries_table = constant('MODULE_SHIPPING_RMFIRST_COUNTRIES_' . $this->num_zones); $country_zones = preg_split("/[,]/", $countries_table); Next find: // Check if destination is a valid one for this method $countries_table = constant('MODULE_SHIPPING_RMFIRST_COUNTRIES_' . $this->num_zones); $country_zones = split("[,]", $countries_table); Replace with: // Check if destination is a valid one for this method $countries_table = constant('MODULE_SHIPPING_RMFIRST_COUNTRIES_' . $this->num_zones); $country_zones = preg_split("/[,]/", $countries_table); Next find: // Find the shipping cost $zones_table = split("[:,]" , $zones_cost); Replace with: // Find the shipping cost $zones_table = preg_split("/[:,]/" , $zones_cost); *catalog*/includes/modules/shipping/rmfirstrec.php find: // Check if destination is a valid one for this method if (defined('MODULE_SHIPPING_RMFIRSTREC_COUNTRIES_' . $this->num_zones)) { $countries_table = constant('MODULE_SHIPPING_RMFIRSTREC_COUNTRIES_' . $this->num_zones); $country_zones = split("[,]", $countries_table); Replace with: // Check if destination is a valid one for this method if (defined('MODULE_SHIPPING_RMFIRSTREC_COUNTRIES_' . $this->num_zones)) { $countries_table = constant('MODULE_SHIPPING_RMFIRSTREC_COUNTRIES_' . $this->num_zones); $country_zones = preg_split("/[,]/", $countries_table); Next find: // Check if insurance is available $compensation_table = split("[:,]" , $compensation_cost); Replace with: // Check if insurance is available $compensation_table = preg_split("/[:,]/" , $compensation_cost); Next find: // Check if destination is a valid one for this method if (defined('MODULE_SHIPPING_RMFIRSTREC_COUNTRIES_' . $this->num_zones)) { $countries_table = constant('MODULE_SHIPPING_RMFIRSTREC_COUNTRIES_' . $this->num_zones); $country_zones = split("[,]", $countries_table); Replace with: // Check if destination is a valid one for this method if (defined('MODULE_SHIPPING_RMFIRSTREC_COUNTRIES_' . $this->num_zones)) { $countries_table = constant('MODULE_SHIPPING_RMFIRSTREC_COUNTRIES_' . $this->num_zones); $country_zones = preg_split("/[,]/", $countries_table); Next find: // Get any insurance values entered $compensation_cost = constant('MODULE_SHIPPING_RMFIRSTREC_COMPENSATION_' . $this->num_zones); $compensation_table = split("[:,]" , $compensation_cost); Replace with: // Get any insurance values entered $compensation_cost = constant('MODULE_SHIPPING_RMFIRSTREC_COMPENSATION_' . $this->num_zones); $compensation_table = preg_split("/[:,]/" , $compensation_cost); Next find: // Get the cost to ship to the destination zone $zones_cost = constant('MODULE_SHIPPING_RMFIRSTREC_COST_' . $this->num_zones); $zones_table = split("[:,]" , $zones_cost); Replace with: // Get the cost to ship to the destination zone $zones_cost = constant('MODULE_SHIPPING_RMFIRSTREC_COST_' . $this->num_zones); $zones_table = preg_split("/[:,]/" , $zones_cost); This may take some time typing out the necessary adjustments for all files. Chris, I may upload a *new* fileset in the contribution page (could be a hell of a lot quicker!). However, let me know if you would rather compile the changes yourself (you may have updates to add anyway!) Cheers James
  15. PHP 5.3 deprecated function ereg_replace() Just working my way through PHP 5.3 locally and came across a the need to replace ereg_replace() with preg_replace(). In order to fix the deprecated function, navigate to: *catalog*/includes/functions/general.php and find this block of code: function tep_limit_text ($text, $maxchar, $wordlength = 40) { $text = str_replace ("\n", ' ', $text); $text = str_replace ("\r", ' ', $text); $text = str_replace ('<br />', ' ', $text); $text = wordwrap ($text, $wordlength, ' ', true); $text = ereg_replace ("[ ]+", ' ', $text); $text_length = strlen ($text); $text_array = explode (" ", $text); And change to: function tep_limit_text ($text, $maxchar, $wordlength = 40) { $text = str_replace ("\n", ' ', $text); $text = str_replace ("\r", ' ', $text); $text = str_replace ('<br />', ' ', $text); $text = wordwrap ($text, $wordlength, ' ', true); $text = preg_replace ("/[ ]+/", ' ', $text); $text_length = strlen ($text); $text_array = explode (" ", $text); This will fix a notice in your column_left/column_right.php James
  16. I see what you mean.. this should be fairly easy to implement on your site, depending on how your index.php is set out and how you administer the text on your index page. Let me know how you're set-up and I'll have a look at the code for you.. James
  17. Thanks for your comments! In what capacity would you require this functionality on the index page?
  18. George, Thank you for your kind comments! Isn't it surprising what you can create when you put your mind to it?! Re: your wishlist code - thanks again - I shall certainly consider using this on my site, very usefull indeed! Regards James
  19. Burt, Thanks for your comments, it's always good to get input into an idea you're working on! I should really be spending more time on populating my site, rather than coding things! However, it was alway meant to be a "simple" additional space to expand the description area. I may consider adding an "extra" lightbox/popup... but I have to say that I like your CSS idea! Looks really good. What I want to try and marry is: ease of use for the customer who wants to "read more" (reducing number of clicks etc) versus best/easiest route for a bot to index.. any thoughts on this would be welcome. Thanks again for the input! James
  20. An updated version has now been uploaded... This includes a suggestion by tomh (thanks Tom), to include an "add to cart" function to the bottom of the read_more page. Once again, the addition is fully W3C valid.. Further improvements will be: address the read_more link text and to take a look at a popup/lightbox version rather than feeding through to another stand-alone file (as suggested by tomh)... Any other suggestions/development ideas welcome! James
  21. One thing I forgot to post was a link to show the Read More module in action! My personal store build is not yet quite complete (so many things to do!!) However, I have populated one Read More field to show its "working state". Read More on product_info
  22. Version 1.1.1 Applies a "fix" to not correctly displaying the description on /read_more.php - omitted class="main". Update guides included within the new download or use the edit below: Find: <td><?php echo stripslashes($product_info['products_read_more']); ?></td> Replace with: <td class="main"><?php echo stripslashes($product_info['products_read_more']); ?></td> Now the description text will be inline with your stylesheet.css Done!
  23. Development 1 - Integrate with Ultimate SEO URLs 2.1d - so your "Read More..." page will display as /my-great-product-prm-01.html 2 - Modular integration with FWR Media's Ultimate SEO URLs 5 - rather than my included "edit" of Usu_Products.php Possibly a host more too... Any development ideas welcome and please post any bugs found on this forum thread. James
  24. Read More on product_info Support/development thread This simple modification to osCommerce allows one to provide more information relating to your products through a "Read_More" link on product_info.php. The read_more information link only appears if the database column is NOT NULL. Application/usage - I have plentiful information to provide on my products, some of which are quite unique. I didn't however want to "overload" the customer with too much information on the product_info page, rather allow the option to "Read More.." if they were interested. Thus the genesis of this module. Added SEO benefits with another area to build your word count! This module is fully W3C compliant @v1.0 All bug fixes and development ideas welcome You can download the current version HERE
  25. Rob, I am putting together a very simplistic contribution that I would like to integrate a "drop on top" file-set for USU5. The idea is based on those members who wish to expand their product_description based on further information they have to impart on their customer base, without the wish to have an "expanded" product_info page or "bamboozle" the customer. The code allows an if NOT NULL "Read more..." text link through to a stand-alone file whereby more information can be accessed via the specific product_id. I have (locally) just used the /includes/module/Ultimate_Seourls5/modules/Usu_Products.php as the file to produce my -prm- indicator. I was, however wanting (for modular purposes) to provide a simple addon /.../Usu_Read_More.php so as to reduce the need to edit your code. However, is the product_id dependancy available to use for modules outside the Usu_Products.php file? I have attempted to "clone" the Usu_Products.php logic, omitting references to product_reviews etc, but have found an error 404 when I do. I can a only assume that this is due to the product_id previously being declared? Would you be able to suggest a work-around? Or if the product_id is a dependant, is the only way to integrate a new module, to provide an amended Usu_Products.php file? Kind regards, James
×
×
  • Create New...