introducing cpshop 2.1
After 22(!) release candidates, I'm happy to offer up version 2.1. And not a moment too soon, since a change to the CafePress site broke product pages tonight, and this update fixes that problem.
Now, normally release candidates are used to fix last-minute bugs. I, on the other hand, believe in using release candidates as a mechanism for adding ridiculous numbers of new features in a short period of time. So 2.1 actually does come with a nifty bunch of tricks up its sleeve.
(And for those that haven't done so yet: if you bought cpshop before February 2005, there's a voluntary $10 upgrade fee, which can be purchased on the cpshop pricing page. For those that already chipped in their $10: Thanks! I've tried to make cpshop a bargain at its price, and I hope you see it that way.)
changes in cpshop 2.1 (since 2.0)
- added output caching via cpoutput folder
- supports dynamic direct linking of stores, sections and products
- updated cpadmin with collapsible interface
- added cpfilter_inherit, cpfilter_literal, cpfilter_type and cpfilter_killsection
- added new thumbnail grid layout tags
- huge performance improvements since 2.0
- many, many annoying bugs and issues fixed from 2.0
- see all updates in the History file, or see the 2.0 release candidate revision history
If you haven't already installed cpshop, use the contents of either cpshop2.1-Unix-full.zip or cpshop2.1-Win-full.zip to do so. If you have installed it...
how to upgrade
- Unzip the contents of either cpshop2.1-Unix-update.zip or cpshop2.1-Win-update.zip (or the newest version available). Be sure you use the "update" zip file -- and NOT the "full" zip file -- to upgrade!
- Upload the contents of the zip file to the cpshop directory on your server.
- If you want to take advantage of output caching, create another subdirectory in your cpshop install folder called "cpoutput", and give it the same permissions as the cplogs, cpcache and cpbackup directories.
- Test your store.
about the changes
added output caching via cpoutput folder
One of the biggest problems cpshop owners found with 2.0 was that really large installs were getting slow and using up a bunch of server CPU time. To remedy that, I've added output caching -- pages only need to be created once, and then are subsequently served out of a cache. It's compatible with pretty much everything, and much, much easier on the server (and faster for your customers!).
To enable it, just create another folder, this time called cpoutput, and make sure the permissions are the same as your cpcache folder. That's it. If the folder exists, cpshop will use it. And you'll love it.
supports dynamic direct linking of stores, sections and products
One of the cool features that got lost in the 2.0 shuffle was dynamic direct linking: the ability to use a store ID without having to enter it into cpadmin (i.e. cpshop.cgi/storeidhere). There's a bazillion potential ways to take advantage of it, but I'll let you work them out for yourself. It's more fun that way.
It also works with sections (cpshop.cgi/storeidhere/12345) and products (cpshop.cgi/storeidhere.9876543).
updated cpadmin with collapsible interface
For those that have grown tired of navigating cpadmin's seemingly-unending collection of options, I've updated it to fit a much easier to manage collapsing/expanding layout. Since one click on the "expand all" button pretty much reverts the page to the way it was before, I'm hoping it won't bother people too much. I like it, personally; I think it makes the system much, much easier to use, and reduces scrolling immensely.
added cpfilter_inherit, cpfilter_literal, cpfilter_type and cpfilter_killsection
cpfilter_inherit:
For those times when you've wanted your filters to persist throughout a store ID entry, cpfilter_inherit does just that. For example, use cpfilter_columns:2, cpfilter_inherit on a premium shop section, and every subsection of that section will be set to 2 columns.
cpfilter_literal:
This is especially handy with affiliate setups. Use cpfilter_literal to list premium section IDs for exact display (instead of sub-integration).
cpfilter_type:
I'm sure this will be the most popular filter yet. This filters the contents of a store entry by product type numbers (comma-separated).
cpfilter_killsection:
If you don't want a particular subsection to display in a premium shop, you can kill the link to it with cpfilter_killsection. Just keep in mind that you'll need to use it with cpfilter_inherit if you want to block a subsection below the top level. And it won't block the contents of other filters.
For more info on any of these, see the filters page.
added new thumbnail grid layout tags
<[parentsectionno]> - The section number in which the current product/section resides
<[alias]> - The current store ID entry alias (or CRC number if no alias was entered)
<[productypeno]> - The product type number of the product (for product thumbnails only)
<[productstoreid]> - The store ID of the product (for product thumbnails only)
<[sectionstoreid]> - The store ID of the section (for section thumbnails only)
You can see a list of all the template tags here.
huge performance improvements since 2.0
While I had hoped the performance improvements in 2.0 were great, when faced with the real world of cpshop uber-creative usage, the speed gains just weren't there. To improve upon that, I've optimized cpshop's speed to balance across shop sizes, and now, especially combined with output caching, cpshop 2.1 runs far faster than 2.0 did.
the last word(s)
I was chatting with Jean earlier, and she recommended I start blogging with an RSS feed, to make cpshop updates easier to access. While I bemoan the time I'd have to spend setting something like that up, it seems to me that it's really a more than perfect idea. So hopefully the next update I'll be able to send out a URL for cpshop news updates.
So I was going to try to implement intra-store search, but with the new distributed data setup, that's really, really difficult to do. I've still got some ideas on how I might set it up, though, so I haven't completely given up hope.
However, in the short term, I think I'm going to look to implement the XML feed first. My current stumbling point: how to format the search results. I've been going over layouts in my head for days now, and I just can't settle on anything. I'm not convinced the current CP search results layout is optimal, which confuses the issue. And making it totally flexible might be too confusing both to program and manage. If anyone has any ideas or suggestions, please let me know.
And remember -- if you make any sweeping changes to your cpshop store and want to show them off, email me the URL, and I can add it to my cpshop site list.
As always, let me know if you have any problems with this, either via or
posting on the message board.
Regards,
Marty