<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEUDQX0zfSp7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708</id><updated>2011-11-27T20:04:30.385-05:00</updated><title>Oscommerce, Oscmax, and other webdesign tricks</title><subtitle type="html">I'm a self-taught web designer, and throughout my work I've come across more than a few problems that I couldn't resolve through standard Googling.  I started this blog to share some simple, basic fixes that I found helpful. For the most part, these will improve your site's interface and make a big impact on the customer's experience.
Though I'm not a professional programmer, you're welcome to ask questions - if I know the answer I'll most likely share it...</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://oscommerce-tips.blogspot.com/" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/OscommerceOscmaxAndOtherWebdesignTricks" /><feedburner:info uri="oscommerceoscmaxandotherwebdesigntricks" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DUUHQ3kzeyp7ImA9Wx5RFEw.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-3954247363703210918</id><published>2010-08-21T14:54:00.002-04:00</published><updated>2010-08-21T15:00:32.783-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-21T15:00:32.783-04:00</app:edited><title>.htaccess - DirectoryIndex with rewrite</title><content type="html">I was looking for a way to not only set the default landing page for a directory, but also get that page name to show in the browser's URL area (basically with rewrite).  Googling and browsing through the Apache manual didn't seem to give an answer, so here's what I did...&lt;br /&gt;&lt;code&gt;&lt;br /&gt;RewriteRule ^folder/$ /folder/defaultpage [R]&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Seems obvious, but it was an "Aha!" moment for me.  The folder path would be relative to root - if someone tries to access the folder, redirect them to the page within the folder.  Virtually the same length as DirectoryIndex, but with a twist - enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-3954247363703210918?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0m5B8Gv6iEnijTPGC5mYOYTt0hA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0m5B8Gv6iEnijTPGC5mYOYTt0hA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0m5B8Gv6iEnijTPGC5mYOYTt0hA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0m5B8Gv6iEnijTPGC5mYOYTt0hA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/ycqhzFa9BsM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/3954247363703210918/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2010/08/htaccess-directoryindex-with-rewrite.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/3954247363703210918?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/3954247363703210918?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/ycqhzFa9BsM/htaccess-directoryindex-with-rewrite.html" title=".htaccess - DirectoryIndex with rewrite" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2010/08/htaccess-directoryindex-with-rewrite.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EGQn04eip7ImA9Wx5RFUU.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-2391746437345940016</id><published>2010-08-21T13:43:00.007-04:00</published><updated>2010-08-23T12:40:23.332-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T12:40:23.332-04:00</app:edited><title>A better "tabbed panels" script with jQuery</title><content type="html">I've been getting quite a few comments on my post about &lt;a href="http://oscommerce-tips.blogspot.com/2009/07/using-two-spry-tabbed-panels-within.html" target="_blank"&gt;using Dreamweaver's tabbed panels widget&lt;/a&gt;.  While it's a decent widget, I've been frustrated with the lack of control and flexibility it gave me.  After hearing a lot about the wonders of jQuery, I thought I'll give it a try.&lt;br /&gt;&lt;br /&gt;Picking up jQuery took some time.  I'm not great with javascript, and being used to the dynamic abilities of server-side languages (such as PHP) made me feel like I'm taking a step backwards.  So my reluctance made me integrate some jQuery UI widgets into my applications and leave it at that.&lt;br /&gt;&lt;br /&gt;Although jQuery UI was definitely better than Dreamweaver's widgets, I found myself again yearning for more control.  With my knowledge of jQuery at that point, I realized that the tabbed panels script I needed could take just a few lines of code...  And I wrote one from scratch.&lt;br /&gt;&lt;br /&gt;So there it is - a really simple, highly customizable, ultra lightweight (4 lines of javascript!) tabbed panels "widget".  I'm putting widget in quotes because it's so short, it barely feels like one.  Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The HTML&lt;/span&gt;&lt;br /&gt;Each tab title has its own div and corresponding div that holds the related content.  All of the divs that hold a tab title must share the same class, in my example it's "head".  Also, each div has a unique id, whose value must match the id of the corresponding content div with some predetermined prefix, in my case it's 'content'.  You can have any value whatsoever, so long as they match.  The order of the divs doesn't matter, so if you want this to look more like an accordion rather than tabbed panels just put each content div right after its title, rather than grouping all the titles and content separately.&lt;br /&gt;If you need the id attribute for the CSS, you can use the name attribute to hold a unique value instead.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt; 'div' class="head" id="tab_1"&gt;Tab 1 Title&lt; /div &gt;&lt;br /&gt;&lt; 'div' class="head" id="tab_2"&gt;Tab 2 Title&lt; /div &gt;&lt;br /&gt;&lt; 'div' class="head" id="tab_3"&gt;Tab 3 Title&lt; /div &gt;&lt;br /&gt;&lt; 'div' class="content" id="tab_1_content"&gt;Tab 1 Content&lt; /div &gt;&lt;br /&gt;&lt; 'div' class="content" id="tab_2_content"&gt;Tab 2 Content&lt; /div &gt;&lt;br /&gt;&lt; 'div' class="content" id="tab_3_content"&gt;Tab 3 Content&lt; /div &gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The CSS&lt;br /&gt;&lt;/span&gt;The only thing you need if you don't want all the content to display when it's first loading:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;.content { display: none; }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Other than that, you have the freedom to set your own styles - let the creativity roll!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The jQuery&lt;/span&gt;&lt;br /&gt;Well I promised 4 lines of code so I can't make this part too complicated either.  All you need:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$('.head').click(function() {&lt;br /&gt;var name = '#' + $(this).attr('id') + '_content';&lt;br /&gt;$('div.content').not(name).hide();&lt;br /&gt;$(name).show(); });&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;So basically, when you click on one of the head divs, get the id of that div (or name if you need the id for styling), show the content div with that id, and hide all the content divs whose id doesn't match that id - or all the other content divs.  Didn't I promise simple?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Advanced Stuff&lt;/span&gt;&lt;br /&gt;You can customize the jQuery with different effects instead of show and hide, or add delays to make the transitions look more smooth.&lt;br /&gt;&lt;br /&gt;To set a default tab to show, add any unique attribute to that content div and use jQuery to show it as soon as the page loads:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$('#default_tab').load(function() {&lt;br /&gt;$(this).show();&lt;br /&gt;});&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you want a different look for the tabs on mouseover:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$('.head').hover(function() {&lt;br /&gt;$(this).addClass('mouseoverclass') },&lt;br /&gt;function() {&lt;br /&gt;$(this).removeClass('mouseoverclass');&lt;br /&gt;});&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-2391746437345940016?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3V-x5OuvhPjsWGwzay9oAaEyIUA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3V-x5OuvhPjsWGwzay9oAaEyIUA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3V-x5OuvhPjsWGwzay9oAaEyIUA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3V-x5OuvhPjsWGwzay9oAaEyIUA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/9P5Hn8aAuCM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/2391746437345940016/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2010/08/better-tabbed-panels-script.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/2391746437345940016?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/2391746437345940016?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/9P5Hn8aAuCM/better-tabbed-panels-script.html" title="A better &quot;tabbed panels&quot; script with jQuery" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2010/08/better-tabbed-panels-script.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4HRHo7cSp7ImA9WxBRFUo.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-3631805806656537681</id><published>2010-01-03T22:09:00.003-05:00</published><updated>2010-01-03T22:15:35.409-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-03T22:15:35.409-05:00</app:edited><title>Dynamically create multiple directories</title><content type="html">I was looking for an easy way to dynamically create multiple directories with PHP, for example a directory and then sub-directories within the same script.  Couldn't find anything so I came up with something on my own:&lt;br /&gt;&lt;br /&gt;$first_directory = 'path/to/the/directory';&lt;br /&gt;$second_directory = 'name-of-second-directory-relative-to-first';&lt;br /&gt;mkdir($first_directory);&lt;br /&gt;chdir($first_directory);&lt;br /&gt;mkdir($second_directory);&lt;br /&gt;&lt;br /&gt;What this does is create the first directory (path should be relative to the folder where the file calling your script resides), and move to that directory with chdir.  Then the second directory is created within the first, path should be relative to the latter.&lt;br /&gt;&lt;br /&gt;Of course there are many other applications.  Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-3631805806656537681?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zsDLzN1YilxUvdzF5UjUCDawTeQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zsDLzN1YilxUvdzF5UjUCDawTeQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zsDLzN1YilxUvdzF5UjUCDawTeQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zsDLzN1YilxUvdzF5UjUCDawTeQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/Rry0DzmEed8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/3631805806656537681/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2010/01/dynamically-create-multiple-directories.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/3631805806656537681?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/3631805806656537681?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/Rry0DzmEed8/dynamically-create-multiple-directories.html" title="Dynamically create multiple directories" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2010/01/dynamically-create-multiple-directories.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUARX0zeyp7ImA9WxJaGEs.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-4259387677872441231</id><published>2009-08-09T20:15:00.002-04:00</published><updated>2009-08-09T20:30:44.383-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-09T20:30:44.383-04:00</app:edited><title>How to view oscommerce/oscmax in dreamweaver</title><content type="html">I've seen more than a few questions on how the oscommerce/oscmax template you build can be viewed in Dreamweaver's Design View or some similar HTML editor.&lt;br /&gt;&lt;br /&gt;The short, simple answer is that it can't.&lt;br /&gt;&lt;br /&gt;Here's why: oscommerce, oscmax, other shopping carts, or any database-driven solution for that matter - are dynamic in nature.  Whether written in PHP or not, it's just a bunch of arguments that will execute based on what the visitor has done.   In the case of PHP, the code needs to be processed by a PHP-enabled server that will send the appropriate HTML code to your browser.  Even if you have such capabilities running locally, you still won't be able to do this with Dreamweaver because it's static.&lt;br /&gt;&lt;br /&gt;For example, some code like the one I've posted &lt;a href="http://oscommerce-tips.blogspot.com/2009/08/oscmaxoscommerce-check-it-customer-is.html" target="_blank"&gt;here&lt;/a&gt; determines the final thing to show in the browser - the final HTML code - based on whether a customer is logged in or not.  The products page code instructs to show the details relevant to the product or category you've clicked on.  The server queries your database based on these conditions and sends the data to your browser.  You can't do this with Dreameaver.&lt;br /&gt;&lt;br /&gt;So you might be able to see some graphics and colors that are not dynamically generated.  But with most pages, you'll see some blank tables in the good case and absolutely nothing in the worst case.  Still, if you know HTML you shouldn't have trouble working in code view, and then test through your browser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-4259387677872441231?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KntRNbmDK_wncPee4No4gCL6hy0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KntRNbmDK_wncPee4No4gCL6hy0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KntRNbmDK_wncPee4No4gCL6hy0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KntRNbmDK_wncPee4No4gCL6hy0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/kFzizVJodmY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/4259387677872441231/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2009/08/how-to-view-oscommerceoscmax-in.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/4259387677872441231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/4259387677872441231?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/kFzizVJodmY/how-to-view-oscommerceoscmax-in.html" title="How to view oscommerce/oscmax in dreamweaver" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2009/08/how-to-view-oscommerceoscmax-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEENQHo6eCp7ImA9WxJaGU8.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-4161582044097299690</id><published>2009-08-09T19:51:00.005-04:00</published><updated>2009-08-10T13:51:31.410-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-10T13:51:31.410-04:00</app:edited><title>Oscmax/Oscommerce - Check if customer is logged in</title><content type="html">Sometimes you might want to specify some processing to occur or something to only show up if the customer is logged in.  So before you write anything you need to specify this login condition, or check if a login session has started.&lt;br /&gt;&lt;br /&gt;This is much simpler to do than it seems.  All you need is this line:&lt;br /&gt;&lt;br /&gt;if ((tep_session_is_registered('customer_id')) &amp;amp;&amp;amp; (!tep_session_is_registered('noaccount'))) {&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;your code&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;which basically tells the browser to check if the session is registered but make sure that it's an account (rather than PWA session).&lt;br /&gt;&lt;br /&gt;In oscommerce, you don't need the "noaccount" session since there is no PWA allowed.  So it would be:&lt;br /&gt;&lt;br /&gt;if (tep_session_is_registered('customer_id')) {&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;your code&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Replace "your code" with whatever code you have, and at the end don't forget to put the closing bracket or you'll get a parse error.&lt;br /&gt;&lt;br /&gt;For example, the following code redirects a logged in customer to the new products page, and otherwise sends a user to the login page:&lt;br /&gt;&lt;br /&gt;if ((tep_session_is_registered('customer_id')) &amp;amp;&amp;amp; (!tep_session_is_registered('noaccount'))) {&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;tep_redirect(tep_href_link(FILENAME_PRODUCTS_NEW));&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;tep_redirect(tep_href_link(FILENAME_LOGIN));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;And in oscommerce:&lt;br /&gt;&lt;br /&gt;if (tep_session_is_registered('customer_id')) {&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;tep_redirect(tep_href_link(FILENAME_NEW_PRODUCTS));&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;tep_redirect(tep_href_link(FILENAME_LOGIN));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-4161582044097299690?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/axkupksnX5RX_VQoxY-sKpfVSSg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/axkupksnX5RX_VQoxY-sKpfVSSg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/axkupksnX5RX_VQoxY-sKpfVSSg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/axkupksnX5RX_VQoxY-sKpfVSSg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/j2TSyuSixmE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/4161582044097299690/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2009/08/oscmaxoscommerce-check-it-customer-is.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/4161582044097299690?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/4161582044097299690?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/j2TSyuSixmE/oscmaxoscommerce-check-it-customer-is.html" title="Oscmax/Oscommerce - Check if customer is logged in" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2009/08/oscmaxoscommerce-check-it-customer-is.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQCQHo8fyp7ImA9WxJbGE8.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-237537434504949927</id><published>2009-07-28T18:18:00.005-04:00</published><updated>2009-07-28T19:06:01.477-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-28T19:06:01.477-04:00</app:edited><title>Attaching to email a file uploaded in a form</title><content type="html">I had to create a processing script that would attach to an e-mail the file a user uploaded through a contact-us style form. After more digging than I expected (most scripts simply upload the file to the server and leave it there; I wanted it e-mailed as an attachment) I found &lt;a href="http://www.sitepoint.com/article/advanced-email-php/5/" target="_blank"&gt;this script&lt;/a&gt;, which did exactly what I wanted, except that it allowed just one attachment. My solution had to have up to three attachments, and also accommodate more fields than just the comments textbox (i.e. phone, address, etc.).&lt;br /&gt;&lt;br /&gt;Well, I must say this script laid much of the groundwork. With a few modifications I was able to get it to exactly what I needed. Hopefully these tips will help you, too...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;&lt;span style="font-weight: bold;"&gt;Include additional fields&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The way I did this was to first add the fields in the form, e.g.&lt;br /&gt;&lt;br /&gt;Phone: &lt;' input name="phone" type="text"&gt;&lt;br /&gt;&lt;br /&gt;And so on for each field I wanted to add.&lt;br /&gt;&lt;br /&gt;Then, in the processing script, I edited line 11:&lt;br /&gt;$message = $_POST['message'];&lt;br /&gt;&lt;br /&gt;To include any other fields I wanted to include in the message, e.g.&lt;br /&gt;&lt;br /&gt;$message = 'Phone: ' . $_POST['phone'] . "\n" . 'Message: ' . $_POST['message'];&lt;br /&gt;&lt;br /&gt;The plain text - Phone: - is what you want to appear in the e-mail next to the input. Not necessary but certainly convenient. Within the $_POST brackets put the input name in single quotes.&lt;br /&gt;&lt;br /&gt;There's probably a more efficient way to loop through all the form fields and compile them into the message, but since I only had 4-5 fields I figured this would be the least time-consuming way.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;&lt;span style="font-weight: bold;"&gt;Multiple file attachments&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;To add more attachments I first added them in the form, e.g.&lt;br /&gt;&lt;br /&gt;&lt;' input name="fileatt2" type="file"&gt;&lt;br /&gt;&lt;br /&gt;Then in the processing script I defined all the variables for each file, e.g.&lt;br /&gt;&lt;br /&gt;$fileatt2      = $_FILES['fileatt2']['tmp_name'];&lt;br /&gt;$fileatt_type2 = $_FILES['fileatt2']['type'];&lt;br /&gt;$fileatt_name2 = $_FILES['fileatt2']['name'];&lt;br /&gt;&lt;br /&gt;I put these immediately after the first file's variables (beginning on line 17), although I don't think the order should matter.&lt;br /&gt;&lt;br /&gt;Then, just under line 43, which reads:&lt;br /&gt;&lt;br /&gt;$data = chunk_split(base64_encode($data));&lt;br /&gt;&lt;br /&gt;I added the following code:&lt;br /&gt;&lt;br /&gt;if (is_uploaded_file($fileatt2)) {&lt;br /&gt;// Read the file to be attached ('rb' = read binary)&lt;br /&gt;$file2 = fopen($fileatt2,'rb');&lt;br /&gt;$data2 = fread($file2,filesize($fileatt2));&lt;br /&gt;fclose($file2);&lt;br /&gt;$data2 = chunk_split(base64_encode($data2));&lt;br /&gt;&lt;br /&gt;$message .= "--{$mime_boundary}\n" .&lt;br /&gt;        "Content-Type: {$fileatt_type2};\n" .&lt;br /&gt;        " name=\"{$fileatt_name2}\"\n" .&lt;br /&gt;        //"Content-Disposition: attachment;\n" .&lt;br /&gt;        //" filename=\"{$fileatt_name2}\"\n" .&lt;br /&gt;        "Content-Transfer-Encoding: base64\n\n" .&lt;br /&gt;        $data2;&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Which is really just a duplicate of the code for the first file, except for the closing mime-boundary. Of course, you should edit the variable names - $file, $data, $fileatt_name and so on.&lt;br /&gt;&lt;br /&gt;Putting this just before the first file ensures that both are included in the message - otherwise you'll just get the first file attached. So, for any additional attachment fields you're adding, you should add the code in an order reversed from the one they appear in the form. For example for a third field, you'd add the same code with &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;$fileatt3&lt;/span&gt; but it would come &lt;span style="font-weight: bold;"&gt;before&lt;/span&gt; the code for &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;$fileatt2&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Again, there's probably a more efficient way to loop through all the fields automatically, but I only had three so writing that would be too time-consuming - so for most standard forms, this should do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-237537434504949927?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_hW0dqByajL9yB_FmtMwbjTMiRA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_hW0dqByajL9yB_FmtMwbjTMiRA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_hW0dqByajL9yB_FmtMwbjTMiRA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_hW0dqByajL9yB_FmtMwbjTMiRA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/N-vcJKMensE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/237537434504949927/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2009/07/attaching-to-email-file-uploaded-in.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/237537434504949927?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/237537434504949927?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/N-vcJKMensE/attaching-to-email-file-uploaded-in.html" title="Attaching to email a file uploaded in a form" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2009/07/attaching-to-email-file-uploaded-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EEQ38zfyp7ImA9WxJbFk8.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-2320818179991843995</id><published>2009-07-26T13:15:00.002-04:00</published><updated>2009-07-26T13:33:22.187-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-26T13:33:22.187-04:00</app:edited><title>Prevent customer checkout - Oscmax</title><content type="html">I've seen contributions that attempt to prevent checkout by adding some code to the "Checkout" button in the shopping cart page. This is good, but a customer can bypass this simply by clicking on a "Checkout" link anywhere else on the site - for example in the header if they are logged in.&lt;br /&gt;&lt;br /&gt;Rather than modifying every single checkout link, a more effective way is to add some code in checkout_shipping.php - since this page is the first checkout stage for all users, signed in or not. Another proof of reliability: oscommerce coders themselves use this page to verify that a customer is logged in, sending them to the login page otherwise.&lt;br /&gt;&lt;br /&gt;So how to add a condition? Say that using the &lt;a href="http://oscommerce-tips.blogspot.com/2009/07/how-to-show-distinct-count-of-products.html" target="_blank"&gt;distinct product count function&lt;/a&gt;, you want to prevent users from checking out if they added less than 5 distinct products to their cart...&lt;br /&gt;&lt;br /&gt;Open catalog/checkout_shipping.php&lt;br /&gt;&lt;br /&gt;Around line 35, find:&lt;br /&gt;"if (!tep_session_is_registered('customer_id'))"&lt;br /&gt;&lt;br /&gt;This redirects a customer to the login page and so we want our function, which will redirect to the shopping cart page, to be processed before that (i.e. before checking even if the customer is logged in, make sure they added enough items to the cart - otherwise don't bring them to login).&lt;br /&gt;&lt;br /&gt;Before this add the following:&lt;br /&gt;&lt;br /&gt;// check that required number of products has been met&lt;br /&gt;if ($cart-&gt;count_contents_distinct() &gt; 5) {&lt;br /&gt;   tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;Of course you should have the function in place or you'll get errors all over. For a how-to on that, &lt;a href="http://oscommerce-tips.blogspot.com/2009/07/how-to-show-distinct-count-of-products.html" target="_blank"&gt;check out this post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Alternatively, you can substitute a variety of other conditions in there: show_total, count_contents - basically any function from catalog/includes/classes/shopping_cart.php and others.&lt;br /&gt;&lt;br /&gt;The numbers are easily configurable as well - just substitute a variable like MIN_PRODUCTS and then define it in the corresponding language file (a more detailed tutorial to follow...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-2320818179991843995?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wNnwX4UGQ-vgD9eQpjkjMadRFZg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wNnwX4UGQ-vgD9eQpjkjMadRFZg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wNnwX4UGQ-vgD9eQpjkjMadRFZg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wNnwX4UGQ-vgD9eQpjkjMadRFZg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/gozfCH5YT4c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/2320818179991843995/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2009/07/prevent-customer-checkout-oscmax.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/2320818179991843995?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/2320818179991843995?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/gozfCH5YT4c/prevent-customer-checkout-oscmax.html" title="Prevent customer checkout - Oscmax" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2009/07/prevent-customer-checkout-oscmax.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AFRno6cSp7ImA9Wx5RFEw.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-3791440037962688877</id><published>2009-07-26T11:28:00.006-04:00</published><updated>2010-08-21T14:35:17.419-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-21T14:35:17.419-04:00</app:edited><title>Using two spry tabbed panels within the same site or page</title><content type="html">&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;***LATEST UPDATE*** &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;If you're looking for a simple tabbed panels script, check out &lt;/span&gt;&lt;a style="font-weight: bold; color: rgb(255, 0, 0);" href="http://oscommerce-tips.blogspot.com/2010/08/better-tabbed-panels-script.html" target="_blank"&gt;my other post about jQuery&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;***UPDATED*** This post has been updated - see the "widget inside widget" section for details.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dreamweaver's Spry Tabbed Panels is one of the most versatile scripts I've worked with. I've been able to implement it with a variety of other scripts with virtually no conflicts.  It's even possible to have two or more tabbed panels with different styles in the same website, webpage, or even within each other - here's how.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;&lt;span style="font-weight: bold;"&gt;Within the same website&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Each spry tabbed panels widget is referenced in your html:&lt;br /&gt;&lt;br /&gt;var TabbedPanels1 = new Spry.Widget.TabbedPanels("divID")&lt;br /&gt;&lt;br /&gt;This tells to look for function name "&lt;span style="font-weight: bold;"&gt;spry.widget.tabbedpanels&lt;/span&gt;" in the js script file to determine which css styles to apply. That's why you'll first need two "SpryTabbedPanels.js" files, each referencing the appropriate css styles.&lt;br /&gt;&lt;br /&gt;To do this, edit the lines this.tabSelectedClass, this.tabHoverClass, this.tabFocusedClass, this.panelVisibleClass (lines 11-14) to use the class names you want - you should create the css styles first though. Save them separately - for example as 'sprytabbedpanels1.js' and 'sprytabbedpanels2.js' and make sure you reference both files in your &lt;'head'&gt; tag.&lt;br /&gt;&lt;br /&gt;Next, to connect each widget to the correct css styles, change the name in the html reference - for example to something like:&lt;br /&gt;var TabbedPanels1 = new &lt;span style="font-weight: bold;"&gt;Spry.Widget.Panels&lt;/span&gt;("divID")&lt;br /&gt;&lt;br /&gt;Then open the 'sprytabbedpanels.js' file that references the css classes that you want associated with the widget instance that you just changed, and replace all &lt;span style="font-weight: bold;"&gt;spry.widget.tabbedpanels&lt;/span&gt; with the new name - in this case &lt;span style="font-weight: bold;"&gt;Spry.Widget.Panels&lt;/span&gt;. This is a basic find-replace; nothing more. The name doesn't really matter, so long as it's consistent.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Quick summary:&lt;/span&gt;&lt;br /&gt;1) Each "var TabbedPanels1 ..." line is referencing the same widget name as exist in the js file.&lt;br /&gt;2) Lines 11-14 in each sprytabbedpanels.js file are referencing classes that exist in the stylesheet.&lt;br /&gt;3) Each "var TabbedPanels1 ..." line is referencing the divID in the div that you want the styles to apply.&lt;br /&gt;4) All js and stylesheets are referenced in your head tag of each page.&lt;br /&gt;&lt;br /&gt;If you've done all of the above everything should work smoothly. I know it did for me...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;&lt;span style="font-weight: bold;"&gt;Within the same page, separated&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This is a bit more complicated but definitely possible. First, to avoid major functionality problems, the "var TabbedPanels1 ..." line should appear &lt;span style="font-weight: bold;"&gt;immediately after&lt;/span&gt; the closing "div" tag of each tabbed panels widget. Otherwise the browser can easily mess up your panels and content. Then follow the instructions above for multiple widgets within the same site and you should be good to go.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;&lt;span style="font-weight: bold;"&gt;Within the same page, widget inside widget&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;I actually had a case where I had a tabbedpanels widget where each panel's content was another tabbedpanels widget! Here, I used all the techniques mentioned above, and was able to get everything working except for the different class styles to show for "hover" and "selected" states. My trick was to use pictures to overcome this issue, at least for the tabs. Creating images as if for a button, I added the following code - from Dreamweaver's menu bar widget - inside the &lt;'li'&gt; tag to get the tab to change to over state when a user clicks it:&lt;br /&gt;&lt;br /&gt;'&lt; onclick="MM_nbGroup('down','group1','button-id','path-to-over-image',state-id)" onmouseover="MM_nbGroup('over','group-id','path-to-over-image','',state-id)" onmouseout="MM_nbGroup('out')"&gt;&lt; src="path-to-up-image" alt="" name="button-id" border="0" id="button-id" onload="MM_nbGroup('init','group1','button-id', 'path-to-up-image', '', state-id)"&gt;&lt; /a&gt;'&lt;br /&gt;&lt;br /&gt;(Remember to remove the spaces when opening tags).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;*** UPDATED ***&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I just realized that my instructions for spry tabbed panels within spry tabbed panels imply that you should change the function name (spry.widget.tabbedpanels) in the html reference and javascript file.  This should be done to achieve different styles &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;as long as the widgets are&lt;span style="font-weight: bold;"&gt; &lt;span style="font-weight: bold;"&gt;not within each other&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;.  If they are, do &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;not&lt;/span&gt;&lt;span style="font-style: italic;"&gt; follow this step or your widget will not work!  Accordingly, you don't need to change the css class names  in the javascript code, either.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;To achieve different styles for a widget inside another widget, you can add a new div with a class name defined in your regular stylesheet inside the &lt; 'li &gt; of each tab or &lt; 'div &gt; of each panel. This would work for the up-state only (i.e. until the tab is clicked).  If you want the different style to persist when clicked on, use images as described above.&lt;br /&gt;&lt;br /&gt;The quickest way to place a widget inside another widget is to open Design view, then choose the tab corresponding to the panel where you want the inner widget to appear, place the cursor inside the panel, and click on the insert widget button.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;May seem complicated but easy if you understand how the script works. Anyway, enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-3791440037962688877?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/C-kmHMA39RSphKSdmwIb7BKpFDI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C-kmHMA39RSphKSdmwIb7BKpFDI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/C-kmHMA39RSphKSdmwIb7BKpFDI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C-kmHMA39RSphKSdmwIb7BKpFDI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/Fy-71rQ2p7k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/3791440037962688877/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2009/07/using-two-spry-tabbed-panels-within.html#comment-form" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/3791440037962688877?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/3791440037962688877?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/Fy-71rQ2p7k/using-two-spry-tabbed-panels-within.html" title="Using two spry tabbed panels within the same site or page" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>13</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2009/07/using-two-spry-tabbed-panels-within.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQNR3Y5fSp7ImA9WxJbFk8.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-5204490454668838899</id><published>2009-07-26T11:09:00.005-04:00</published><updated>2009-07-26T12:56:36.825-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-26T12:56:36.825-04:00</app:edited><title>When using "#" make the page refresh</title><content type="html">I had an anchor link on a homepage that was to open a DHTML-style window.  But to establish the link the &lt;'a'&gt; tag had href="#".  This wasn't an issue except for when you first visited the homepage and clicked that link, the page would first refresh and then you'd need to click the link again to finally open the window. Once you were on the site, even if you re-visited the page, it would behave correctly. Not major, but most users were expected to click the link on the first page hit, and aside from being confusing it didn't look too professional.&lt;br /&gt;&lt;br /&gt;At first I thought it was related to the homepage initially showing up as "www.websitename.com" and later as "www.websitename.com/index.php". But even when I changed some references to "www.websitename.com" (or to index.php) the problem persisted.&lt;br /&gt;&lt;br /&gt;Then I tried emptying the href reference (e.g. href="") but that didn't work either. So I finally went ahead and eliminated the href completely. The remainder of my link tag looks exactly the same. Thought the feature wouldn't work, but it's running perfect. Problem solved!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-5204490454668838899?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MkoONcucgCm3gs13dUwx89ycx5s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MkoONcucgCm3gs13dUwx89ycx5s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MkoONcucgCm3gs13dUwx89ycx5s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MkoONcucgCm3gs13dUwx89ycx5s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/SRyxclKLCiw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/5204490454668838899/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2009/07/when-using-make-page-refresh.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/5204490454668838899?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/5204490454668838899?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/SRyxclKLCiw/when-using-make-page-refresh.html" title="When using &quot;#&quot; make the page refresh" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2009/07/when-using-make-page-refresh.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YDSXozeSp7ImA9WxJaGEo.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-2169872462044524424</id><published>2009-07-17T23:53:00.003-04:00</published><updated>2009-08-09T23:32:58.481-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-09T23:32:58.481-04:00</app:edited><title>Distinct "in cart" count in oscommerce</title><content type="html">This is a tutorial on how to show a distinct count of the products added to the cart in oscommerce (my other post dealt with oscmax).  The number generated here will correspond to the number of line items, disregarding quantities.  For more information and an explanation of why you'd want this, see my previous post: &lt;a href="http://oscommerce-tips.blogspot.com/2009/07/how-to-show-distinct-count-of-products.html"&gt;Oscmax: how to show a distinct count of products in the cart&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Please note that I have not been able to test this code on a live server; rather, I've followed here the same adaptation that I had for oscmax.&lt;br /&gt;&lt;br /&gt;*****&lt;br /&gt;&lt;br /&gt;Open catalog/includes/classes/shopping_cart.php.&lt;br /&gt;&lt;br /&gt;Search for "function numberOfItems" - should be around line 435.&lt;br /&gt;&lt;br /&gt;A few lines under find:&lt;br /&gt;return $total;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Just under add the following:&lt;br /&gt;&lt;br /&gt;   public function distinctNumberOfItems() {&lt;br /&gt;     $total = 0;&lt;br /&gt;&lt;br /&gt;     foreach ( $this-&gt;_contents as $product ) {&lt;br /&gt;       $total += 1;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     return $total;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;Save and upload.&lt;br /&gt;&lt;br /&gt;Then wherever you want the count to appear, add the following code:&lt;br /&gt;&lt;br /&gt;&lt; ?  php  echo $osC_ShoppingCart-&gt;distinctnumberOfItems();&lt;br /&gt;&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;Done and enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-2169872462044524424?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9zkHaHDB1q_AvPz8EREZ5fJDoSY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9zkHaHDB1q_AvPz8EREZ5fJDoSY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9zkHaHDB1q_AvPz8EREZ5fJDoSY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9zkHaHDB1q_AvPz8EREZ5fJDoSY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/8mW1Zm_V7AU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/2169872462044524424/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2009/07/distinct-product-count-in-oscommerce.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/2169872462044524424?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/2169872462044524424?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/8mW1Zm_V7AU/distinct-product-count-in-oscommerce.html" title="Distinct &quot;in cart&quot; count in oscommerce" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2009/07/distinct-product-count-in-oscommerce.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUECQ3o5eCp7ImA9WxJbFk8.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-4080199247142603734</id><published>2009-07-05T20:06:00.008-04:00</published><updated>2009-07-26T13:01:02.420-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-26T13:01:02.420-04:00</app:edited><title>Convert a non-BTS contribution to BTS</title><content type="html">&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Overview&lt;/span&gt;&lt;br /&gt;Oscmax uses the BTS system, which is a real time-saver for those who understand it (the idea of BTS is to separate the PHP processing code from the front-end HTML, and allow the designer to quickly setup a uniform "frame" for the whole site with the main_page.tpl.php file).  But since Oscommerce does not use this system, one major flaw is that many - perhaps most - developers are unfamiliar with it, and contributions are made with the usual format in mind.  This tutorial will provide a general overview on how to get such contributions to work with Oscmax.  I'll be using the Recently Viewed (Sales Optimized) contribution as my example.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to implement&lt;/span&gt;&lt;br /&gt;1) Create a new PHP file and name it the same as the original file, except with the extension tpl.php.  For example, my original file was recently_viewed.php, so the new one is recently_viewed.tpl.php. If using Dreamweaver, enter the code view and delete everything you see.&lt;br /&gt;NOTE: do not simply rename your old file - this new file does &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; replace it! In the end you will be using both on your site.&lt;br /&gt;&lt;br /&gt;2) Open the original file and find in the code the beginning of the HTML page - "!doctype html public" etc.&lt;br /&gt;&lt;br /&gt;3) Next, delete everything from the beginning of the HTML, the entire &lt;'head'&gt; tag, until and including the opening &lt;'body'&gt; tag.  In BTS, this part is already provided for by the main_page.tpl.php file, so you don't need it here again.&lt;br /&gt;NOTE: in the recently viewed contribution, there isn't anything new in this part of the code.  However, in other contributions there may be references in the  tag to script files or stylesheets.  In that case you need to copy these references to the &lt;'head'&gt;  section of the main_page.tpl.php file. &lt;span style="font-weight: bold;"&gt;Do not discard these references or your code will not work!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4) If there is a reference to "header.php" delete that too.  This is also part of main_page.&lt;br /&gt;&lt;br /&gt;5) Now go to the end of your new document.  Starting from "require" reference to "footer.php", delete everything - through and including the closing &lt; / body &gt; and &lt;  / html &gt; tags and the end of the document.  If there is no reference to the footer just delete everything below and including the closing HTML tags.&lt;br /&gt;&lt;br /&gt;6) Go to the beginning of the code - there should be a line that references "application_top.php" and immediately under it a "require" command for the corresponding language file.  Select all the code that remains except these two lines - they should stay in the original file.  Cut it, and paste into the new document you created in step #1.&lt;br /&gt;&lt;br /&gt;7) In your new file, go to the beginning of the code file and add the opening php tag - " &lt; ? php " (no quotes).  In Dreamweaver the code should appear color-coded correctly (i.e. not black - if it is you didn't cut/paste correctly or add the tag in the right place!)  Save this file with the tpl.php extension to the directory where all your other template content files reside (not necessarily the same folder as main_page.tpl.php...)  8) Open includes/filenames.php and add the following line:&lt;br /&gt;&lt;br /&gt;define('CONTENT_PAGENAME', 'pagename');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Replace "pagename" with the name of your file.  For example, for recently viewed:&lt;br /&gt;&lt;br /&gt;define('CONTENT_RECENTLY_VIEWED', 'recently_viewed');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9) Go back to the original file you started out with.  Under the language reference, add the following lines:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$content = CONTENT_PAGENAME;&lt;br /&gt;&lt;br /&gt;include (bts_select('main', $content_template)); // BTSv1.5&lt;br /&gt;&lt;br /&gt;require(DIR_WS_INCLUDES . 'application_bottom.php');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Replace "pagename" with the name of your file - should match what you just added to filenames.php.  For example, for recently viewed:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$content = CONTENT_RECENTLY_VIEWED;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;10) Add a closing php tag - " ? &gt; " (no quotes).  Now in Dreamweaver's code view, everything should show up color-coded, not black - if it's black you either didn't add everything or added it in the wrong places...&lt;br /&gt;&lt;br /&gt;That's it!  Save everything, upload to your server, and voila! You've converted a non-BTS file to BTS.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;What's next?&lt;/span&gt;&lt;br /&gt;This is just the beginning. Now that your file is in BTS mode, you can edit the HTML to match the look-and-feel of the rest of your site...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-4080199247142603734?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GqGTz40Ve4XBxP4_VOrDeyoR3Fg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GqGTz40Ve4XBxP4_VOrDeyoR3Fg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GqGTz40Ve4XBxP4_VOrDeyoR3Fg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GqGTz40Ve4XBxP4_VOrDeyoR3Fg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/l8JfvoHL63k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/4080199247142603734/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2009/07/getting-non-bts-contribution-to-work.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/4080199247142603734?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/4080199247142603734?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/l8JfvoHL63k/getting-non-bts-contribution-to-work.html" title="Convert a non-BTS contribution to BTS" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2009/07/getting-non-bts-contribution-to-work.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIASHY5fyp7ImA9WxJVGEw.&quot;"><id>tag:blogger.com,1999:blog-7353487969587938708.post-6355407713661627167</id><published>2009-07-05T13:06:00.008-04:00</published><updated>2009-07-05T14:12:29.827-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-05T14:12:29.827-04:00</app:edited><title>How to show a distinct count of products in the cart</title><content type="html">&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Overview&lt;/span&gt;&lt;br /&gt;The standard Oscmax $cart-&gt;count_contents() function, which is used to display the number of items in a customer's shopping cart, has one major flaw: it incorporates counts of quantities in the total.  First off, for stores that sell items priced by measurements - i.e. per inch, foot, yard etc. - using this will count the quantity of the unit rather than of products.  For example, if a store sells wire by foot, and the customer places 5 feet of the same wire in the cart, the function will output "5 items in  cart", whereas if the customer changes to 3 feet, it will output "3 items in cart".  This is quite confusing - after all the customer didn't really alter the number of products in the cart...  Plus, from a sales point of view, the number can escalate quickly, making the customer feel as if their cart is full and hurry to checkout (rather than spend more time browsing the catalog).&lt;br /&gt;&lt;br /&gt;To resolve this, the following function will show the number of &lt;span style="font-weight: bold;"&gt;distinct&lt;/span&gt; products in a customer's cart - equivalent to the number of rows in the shopping cart page.  Using the above example, it will show "1 item in cart" for the wire regardless of the quantity.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;How to implement&lt;/span&gt;&lt;br /&gt;1) Open the file catalog/includes/classes/shopping_cart.php&lt;br /&gt;&lt;br /&gt;2) Find the following (without the quotes): "function count_contents()"&lt;br /&gt;&lt;br /&gt;3) A few lines under find "return $total_items; }"&lt;br /&gt;&lt;br /&gt;4) After that bracket ("}") Add the following:&lt;br /&gt;&lt;br /&gt;//---&lt;br /&gt;&lt;br /&gt;function count_contents_distinct() {  // get number of different products in cart&lt;br /&gt;$total_items = 0;&lt;br /&gt;if (is_array($this-&gt;contents)) {&lt;br /&gt;reset($this-&gt;contents);&lt;br /&gt;while (list($products_id, ) = each($this-&gt;contents)) {&lt;br /&gt;$total_items += $this-&gt;in_cart($products_id);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return $total_items;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//---&lt;br /&gt;&lt;br /&gt;5) Then, wherever you want the count to appear (for example in shopping_cart.tpl.php) add the following code:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u6HHh5pL7ZY/SlDs9jkFfFI/AAAAAAAAABk/SUc9Bb1HLYs/s1600-h/Picture+1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 27px;" src="http://2.bp.blogspot.com/_u6HHh5pL7ZY/SlDs9jkFfFI/AAAAAAAAABk/SUc9Bb1HLYs/s320/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5355040499206290514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6) NOTES:&lt;br /&gt;- It's better to create a new function than alter the existing count_contents one, since it's used in several other places for calculations etc.&lt;br /&gt;- This does not group attributes, meaning that if the customer adds the same product with different attributes to the cart (i.e. wire --&gt; blue and wire --&gt; green) it will show as two different products.  Basically if it shows as a new product in the shopping cart page, it will be counted separately here.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;What's next?&lt;/span&gt;&lt;br /&gt;You can take this a step further and count only specific items in the cart, then prevent the customer from checking out if a specific condition is not satisfied.  More on that later...&lt;br /&gt;&lt;br /&gt;P.S. This only works for Oscmax - however I plan to post the code for Oscommerce soon, so stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353487969587938708-6355407713661627167?l=oscommerce-tips.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PXFuuoGtcD0Y9isvUglFQvjrGyw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PXFuuoGtcD0Y9isvUglFQvjrGyw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PXFuuoGtcD0Y9isvUglFQvjrGyw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PXFuuoGtcD0Y9isvUglFQvjrGyw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~4/sR8IAoCZptI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oscommerce-tips.blogspot.com/feeds/6355407713661627167/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oscommerce-tips.blogspot.com/2009/07/how-to-show-distinct-count-of-products.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/6355407713661627167?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7353487969587938708/posts/default/6355407713661627167?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OscommerceOscmaxAndOtherWebdesignTricks/~3/sR8IAoCZptI/how-to-show-distinct-count-of-products.html" title="How to show a distinct count of products in the cart" /><author><name>rubin</name><uri>http://www.blogger.com/profile/04142631476458779319</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_u6HHh5pL7ZY/SlDs9jkFfFI/AAAAAAAAABk/SUc9Bb1HLYs/s72-c/Picture+1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://oscommerce-tips.blogspot.com/2009/07/how-to-show-distinct-count-of-products.html</feedburner:origLink></entry></feed>

