<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>multimixer &#187; mini template system</title>
	<atom:link href="http://multimixer.gr/tag/mini-template-system/feed/" rel="self" type="application/rss+xml" />
	<link>http://multimixer.gr</link>
	<description>lets talk about osCommerce</description>
	<lastBuildDate>Fri, 19 Nov 2021 08:23:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Making a osCommerce template: all the progress step by step</title>
		<link>http://multimixer.gr/16/05/2011/making-a-oscommerce-template-all-the-progress-step-by-step/</link>
		<comments>http://multimixer.gr/16/05/2011/making-a-oscommerce-template-all-the-progress-step-by-step/#comments</comments>
		<pubDate>Mon, 16 May 2011 11:42:27 +0000</pubDate>
		<dc:creator>multimixer</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[mini template system]]></category>
		<category><![CDATA[osCommerce v2.3]]></category>

		<guid isPermaLink="false">http://multimixer.gr/?p=807</guid>
		<description><![CDATA[Follow me and watch how a create a new osCommerce template. All the process, step by step from the default look into a totally new and customized theme. This is not meant to be a tutorial, but still, I hope you will get some tips and tricks and maybe some inspiration]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I got a request to create a new osCommerce store. Very happy about this of course, new projects are always welcome, but more important, I liked the initial design idea, and that&#8217;s a great motivation always. Here are some of the images I got about how the website should look like</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/sample_product.jpg"><img class="alignleft size-medium wp-image-808" title="sample drawing of the product information page" src="http://multimixer.gr/wp-content/uploads/2011/05/sample_product-300x263.jpg" alt="sample drawing of the product information page" width="243" height="213" /></a><a href="http://multimixer.gr/wp-content/uploads/2011/05/sample_listing.jpg"><img class="size-medium wp-image-809 alignright" title="sample of categories/product listing page" src="http://multimixer.gr/wp-content/uploads/2011/05/sample_listing-300x263.jpg" alt="sample of categories/product listing page" width="243" height="213" /></a><br style="clear: both;" /></p>
<p style="text-align: justify;">It is a great help to get a concrete information about the clients vision on how the website should look like and even more to get a message like this one: &#8220;<em>You have free license to do what you think works best and looks good. I believe in your artistic taste.&#8221;</em></p>
<p style="text-align: justify;">Since this looks like a very promising project, the design is far away of whatever could be called a &#8220;stock osCommerce design&#8221;, I decided to post the progress of designing this new theme here. The post will be updated as I go, so if you like you can check back from time to time to see what I&#8217;m doing. Feel free to post any comments about anything.</p>
<p>The store is live and you can visit it if you like here <a title="Custom handmade titanium backcovers" href="http://maselements.com/" target="_blank">Mas Design</a></p>
<h3>Installing osCommerce</h3>
<p style="text-align: justify;">First step of course is to install osCommerce on my local computer using XAMPP. I&#8217;m going to use the latest production ready version, and hat is version 2.3.1 (version 3 is not ready to be used on live stores)</p>
<p style="text-align: justify;">That is how the product information page look like by default (I&#8217;m going to start the design with this page). Columns have been removed, that is very easy to do in the administration panel under <strong>admin&gt;modules&gt;boxes</strong>. You can disable there any boxes you don&#8217;t want, if you disable them all, you will get a layout without any columns or boxes</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info1.png"><img class="aligncenter size-large wp-image-832" title="Default layout of product information page in osCommerce" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info1-540x322.png" alt="Default layout of product information page in osCommerce" width="540" height="322" /></a></p>
<p style="text-align: justify;">I&#8217;m also going to use<a href="http://minitemplatesystem.com" target="_blank"> mini template system</a> for the design. <span style="font-size: 0.8em;">(please note that mini template system is a commercial addon for osCommerce, do not click the link if you are not interested in anything that is not free and keep on reading here)</span></p>
<p style="text-align: justify; padding-bottom: 0px; margin-bottom: 0px;">The reasons to use mini template system for this are following:</p>
<blockquote>
<ul style="margin: 0; padding: 0 10px 0 0;">
<li style="text-align: justify;">To have all design and template related files in one folder and not all over the osCommerce installation</li>
<li style="text-align: justify;">To be able to switch to an other template any time and for any reason, without having to modify any file</li>
<li style="text-align: justify;">To be able to use all the mini template system features to create the design easier, but most important</li>
<li style="text-align: justify;">To give the ability to my client to manage his template easily maknig any necessary adjustements him self without having to contact (and pay) me or anyone else for this</li>
</ul>
</blockquote>
<p>Having mini template system already installed on osCommerce, next step is to create a new template and activate it in the administation panel</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/mas_template.png"><img class="aligncenter size-large wp-image-833" title="Installing and activating a new template folder. All design will be done within this template " src="http://multimixer.gr/wp-content/uploads/2011/05/mas_template-540x284.png" alt="Installing and activating a new template folder. All design will be done within this template" width="540" height="284" /></a></p>
<p>That is how the same product information page look like after installing the template.</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info2.png"><img class="aligncenter size-large wp-image-834" title="The product information page in osCommerce using mini template system" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info2-540x417.png" alt="The product information page in osCommerce using mini template system" width="540" height="417" /></a></p>
<p>On this base and within this template folder we will create the new template. Although I will use mini template system, following explanations will mainly point out what I would do if working on a default osCommerce store so that anyone interested can follow</p>
<h3>Changing header and footer, adding background image</h3>
<p style="text-align: justify;">Header and foter affect the design the most. Changing them will give us immediately a new look and feeling and also, hopefully an inspiration on how to go on. To have the background image right away will give a feeling for all colors to be used</p>
<p style="text-align: justify;">The <strong>background image</strong> can be added easily in the css file, this is in case of mini template system the file catalog/mts/themes/themplatefolder.style.css for default osCommerce it is catalog/stylesheet.css. We do add the background directly to the &lt;body&gt; as follows</p>
<pre class="brush:css">body {background:url(images/backgroundPlain_2000x1718.jpg)}</pre>
<p style="text-align: justify;">There are of course many settings you can do here, depending on what type of background image you&#8217;re going to use (eg a large one as in this case here or a small one that you want to repeat etc) You can read more about at <a href="http://www.w3schools.com/css/css_background.asp" target="_blank">w3schools</a>. It is important in any case to have the image uploaded on your server and to set the correct path to it, in this case it is in folder /images/ but it could be in any folder</p>
<p style="text-align: justify;">In the <strong>header section</strong> only thing we do right now is to remove any menus, backgrounds etc and to leave just the logo in place. We will add a menu in a later step. The file to do this (in a default osCommerce set up) is catalog/includes/header.php, if using mini template system, you will find the file in catalog/includes/mts/themes/templatefolder/files.</p>
<p style="text-align: justify;">In the <strong>footer section</strong> we can already do more. Since we don&#8217;t want a thick footer with many links and stuff in in, all we have to do is a simple &lt;ul&gt;&lt;li&gt; structure, add the links we need to there (placeholder links for now) and style a little in the css file. The file to work on is called &#8220;footer.php&#8221; and is at the same location as the header file. As an example, the section of the footer that holds the left hand links, look like this in the file</p>
<p style="text-align: justify;">
<pre class="brush:xml">        &lt;ul class="left"&gt;
          &lt;li&gt;&lt;?php echo '&lt;a href="'. tep_href_link(FILENAME_DEFAULT) .'"' . 'class="menu"' . '&gt;'. 'home' .'&lt;/a&gt;'; ?&gt;&lt;/li&gt;
          &lt;li&gt;&lt;?php echo '&lt;a href="'. tep_href_link(FILENAME_DEFAULT) .'"' . 'class="menu"' . '&gt;'. 'one link' .'&lt;/a&gt;'; ?&gt;&lt;/li&gt;
          &lt;li&gt;&lt;?php echo '&lt;a href="'. tep_href_link(FILENAME_DEFAULT) .'"' . 'class="menu"' . '&gt;'. 'one link' .'&lt;/a&gt;'; ?&gt;&lt;/li&gt;
          &lt;li&gt;&lt;?php echo '&lt;a href="'. tep_href_link(FILENAME_CONTACT_US).'"' . 'class="menu"' . '&gt;'. 'contact' .'&lt;/a&gt;'; ?&gt;&lt;/li&gt;
        &lt;/ul&gt;</pre>
<p style="text-align: justify;">That is how the website look like after doing this changes</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info3.png"><img class="aligncenter size-large wp-image-840" title="Changing header, footer and adding a background affects the design alot" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info3-540x330.png" alt="Changing header, footer and adding a background affects the design alot" width="540" height="330" /></a></p>
<p style="text-align: justify;">Already coming closer, not? Lets concentrate now on the contents and the layout of the product information page it self</p>
<h3>Change the layout of the product information page</h3>
<p style="text-align: justify;">First we want to change the page structure, so we need to know how the various eements, like the image, description etc are placed. To visualize this, we just add stroong background colors to each &#8220;container&#8221;</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info4.png"><img class="aligncenter size-large wp-image-843" title="Using strong background colors to visualize the various areas of the product information page" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info4-540x330.png" alt="Using strong background colors to visualize the various areas of the product information page" width="540" height="330" /></a>Now that we can see each area clearly, lets move the product images area to the left and the description to the right. This is easy to do, just open your file catalog/product_info.php, find following line (2 times in the code) and change the &#8220;right&#8221; to be &#8220;left&#8221;</p>
<p style="text-align: justify;">
<pre class="brush:xml">    &lt;div id="piGal" style="float: right;"&gt;</pre>
<p>It&#8217;s however recommended to not use inline styles but to add any rules to your css file.</p>
<p>We also move the &lt;h1&gt; area (holding the product name and price) and the button area to be on the right of the product image.</p>
<p>That is how it looks</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info5.png"><img class="aligncenter size-large wp-image-844" title="Moving the product image to the left" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info5-540x303.png" alt="Moving the product image to the left" width="540" height="303" /></a>Next thing we want to do is, to move the additional images to be on the left of the main image and not under it. That&#8217;s also not hard to do, instructions are on the <a href="http://bxslider.com/" target="_blank">bx slider</a> site, that is the script that osCommerce use to create the image gallery. Also important, to make the correct settings for the sizes of the main and additional images. They are done directly in file catalog/product_info.php, the default settings look like this, you need to change them according to the image sizes you plan to use</p>
<pre class="brush:xml">&lt;script type="text/javascript"&gt;
$('#piGal ul').bxGallery({
  maxwidth: 300,
  maxheight: 200,
  thumbwidth: &lt;?php echo (($pi_counter &gt; 1) ? '65' : '0'); ?&gt;,
  thumbcontainer: 300,
  load_image: 'ext/jquery/bxGallery/spinner.gif'
});
&lt;/script&gt;</pre>
<p style="text-align: justify;">An other thing to do is to get the &#8220;social bookmarks&#8221; directly into the body of the product information page.  I wrote a separate post about how to do this, please read here about how to<a title="Move social bookmarks to the product page in osCommerce" href="http://multimixer.gr/26/07/2011/move-social-bookmarks-to-the-product-information-page/"> move social bookmarks to the body product information page in oscommerce</a></p>
<p style="text-align: justify;">I also reorganized the way the information is getting displayed like price, add to cart button etc. The add to cart button is still the default, this will change later after the general button style is decided.</p>
<p>Let&#8217;s check how things look now</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info6.png"><img class="aligncenter size-large wp-image-845" title="Additional images moved to the left of the main image" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info6-540x280.png" alt="Additional images moved to the left of the main image" width="540" height="280" /></a></p>
<p style="text-align: justify;">Next thing will be to add &#8220;related products&#8221;, that is an area to show any cross- or up-sell items of a product. There is an addon existing for this in osCommerce, called &#8220;<a href="http://addons.oscommerce.com/info/2293" target="_blank">optional related products</a>&#8220;. This need of course to be upgraded to work with version 2.3.1 of osCommerce. Also the way the product information get printed to the screen, need to be adjusted to the particular layout. An other layout, than the one shown here, is posted <a href="http://multimixer.gr/18/03/2011/equal-height-for-oscommerce-product-listing-boxes/">here</a> and also used live on <a href="http://harlemflowers.com/boutique/product_info.php?products_id=47" target="_blank">this site</a></p>
<p style="text-align: justify;">However, in this case we need just the related product images to be dispayed, all other info will appear as a toltip upon hover, or in a &#8220;jquery dialog&#8221; upon click, I&#8217;m not sure yet. After adding this, the website look like this</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info7.png"><img class="aligncenter size-large wp-image-847" title="Related products on the product information page of osCommerce" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info7-540x280.png" alt="Related products on the product information page of osCommerce" width="540" height="280" /></a></p>
<p style="text-align: justify;">We are more or less done with the layout. Lets remove the help background colors and replace them by semi transparent rgba colors (for IE we will use png images) and that is how everything look like now</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info8.png"><img class="aligncenter size-large wp-image-848" title="The new styled osCommerce product information page" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info8-540x280.png" alt="The new styled osCommerce product information page" width="540" height="280" /></a></p>
<p style="text-align: justify;">There are still more things to do of course, like to improve the page functionality: I don&#8217;t want the various links  (like &#8220;ask a question about this product&#8221; or &#8220;reviews&#8221; etc) to lead to other pages, I don&#8217;t think that it is a good idea to let customers leave the product information page (except of course towards checkout), so all this information need to pop up within the product information page. For this I&#8217;m going to use either one of the existing scripts (the jQuery UI dialog or a fancybox style) or something totally different</p>
<p style="text-align: justify;">After doing some smaller changes, and after adding the real products and real images, here is how the product information page look like</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info_1.jpg"><img class="aligncenter size-large wp-image-1034" title="Product information page in oscommerce" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info_1-540x368.jpg" alt="Product information page in oscommerce" width="540" height="368" /></a></p>
<p>What is new here, compared to the previous &#8220;version&#8221;?</p>
<p style="text-align: justify;"><strong>Option types:</strong> That are the radio buttons that let users to select the iPhone model they use. For this I used the addon &#8220;<a href="http://addons.oscommerce.com/info/6818" target="_blank">option types v2</a>&#8221; that I modified a little to work with osCommerce version 2.3.1. Additionally I added some more improvements made by me, like the ability to add short and long option descriptions etc. Unfortunately, I didn&#8217;t found time to upload a new version of the addon, all information is posted however at the <a href="http://forums.oscommerce.com/topic/338661-contribution-option-types-v2/page__st__520" target="_blank">osCommerce forum</a></p>
<p><a href="http://forums.oscommerce.com/topic/338661-contribution-option-types-v2/page__st__520" target="_blank"></a>Here is an example of how the option description pop up window look like</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info_3.jpg"><img class="aligncenter size-large wp-image-1036" title="Option description pop up in osCommerce" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info_3-540x368.jpg" alt="Option description pop up in osCommerce" width="540" height="368" /></a></p>
<p style="text-align: justify;">An other &#8220;new&#8221; thing is the &#8220;<strong>ask a question</strong>&#8221; feature, that enables store customers to send a question about that product to the store owner without having to leave the product information page. I think there are some addons available that promise to do this, I preferred however to create the functionality by my self from scratch.</p>
<p style="text-align: justify;">I will make a separate post about this, for now just to say that what I did was, to create an ordinary form, same/similar to the contact us form of the default osCommerce, include it into file product_info.php, wrap it into a div and link to that div using fancybox, you can read more about at the <a href="http://fancybox.net/howto" target="_blank">fancybox usage instructions</a></p>
<p style="text-align: justify;">Additionally I added the image of the product in question to the left and a jQuery valitadition. This is how the screen look like after pressing the &#8220;ask a question&#8221; link</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info_2.jpg"><img class="aligncenter size-large wp-image-1038" title="Ask a question contact form within the osCommerce product info page" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info_2-540x368.jpg" alt="Ask a question contact form within the osCommerce product info page" width="540" height="368" /></a></p>
<p>An oer issue that had to be solved was the space issue. As you can see the text side of the product info page has the same height as the image side, so the text is limited by this. It appeared now the case, that some products needed some extra text, and there was absolutely no space for this.</p>
<p>One way was to add a scrollbar  to the product description it self. This is technically easy, by adding an &#8220;overflow:auto&#8221; to the &lt;div&gt; that wraps the product description, but the result is really very ugly:</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info_scrollbar.jpg"><img class="aligncenter size-large wp-image-1046" title="Adding a scrollbar to accommodate longer descriptions is not nice" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info_scrollbar-540x283.jpg" alt="Adding a scrollbar to accommodate longer descriptions is not nice" width="540" height="283" /></a></p>
<p style="text-align: justify;">What to do then? Since the additional text is related to the images, why not to add it over the images and make it appear upon hover? This is what I decided to do, but how to implement? Not all products have this extra note, and the text can be different from product to product.</p>
<p style="text-align: justify;">Someone would say to go on as follows: Make a new field in the database for the extra text, an input filed in admin to enter this text, then change the query in product_info.php to get this text, and finally modify the file one more time to display it. Such a trouble !</p>
<p style="text-align: justify;">I did something totally different, using jQuery. Since we have it in osCommerce why not to use it? The particulat jQuery method to use is <a href="http://api.jquery.com/append/" target="_blank">append()</a> Using this, all I had to do is to type in the text into the product description, wrap my extra text into a &lt;div&gt;, give to that &lt;div&gt; an id, eg &lt;div id=&#8221;kuku&#8221;&gt; and then, using append() to move that &lt;div&gt; from its original place (the description) to the &lt;ul&gt; that holds the large image. To get the hover effect all you need is some css, there are many tutorials all over</p>
<p>Here is how it look like upon hover over the image:</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_info_4.jpg"><img class="aligncenter size-large wp-image-1047" title="Extra text over the main image using jQuery" src="http://multimixer.gr/wp-content/uploads/2011/05/product_info_4-540x285.jpg" alt="Extra text over the main image using jQuery" width="540" height="285" /></a></p>
<h3>Index pages: Product listing, category listing and home page</h3>
<p style="text-align: justify;">Next step is to do something about the homepage and the product and category listing pages. In osCommerce product listing and categories listing happens on the index page. This may be a little confusing, because usually we call &#8220;index&#8221; the &#8220;home&#8221; page. However, in osCommerce, the index page has 3 &#8220;cases&#8221;:</p>
<ul>
<li>case to list subcategories</li>
<li>case to list products</li>
<li>Case not to list anything, that case is if no &#8220;cPath&#8221; is given, that is the so called &#8220;front-&#8221; or &#8220;home-&#8221; page</li>
</ul>
<p>That &#8220;cases&#8221; are clearly to indentify in your catalog/index.php file, and look like this:</p>
<pre class="brush:php">  if ($category_depth == 'nested') {
.
here we have subcategory listing
.

  } elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) {
.
Here we have product listing
.

  } else { // default page
.
here we dont have anything = front page
.
  }</pre>
<h4>Index page: listing subcategories in a simple grid</h4>
<p style="text-align: justify;">This is the first &#8220;case&#8221; we will start with. The file we will work on is catalog/index.php and particularly the section that starts with</p>
<p style="text-align: justify;">
<pre class="brush:php">  if ($category_depth == 'nested') {</pre>
<p>You will find this at line about 37 in a default index.php file and the default output look like this</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/subindex1.jpg"><img class="aligncenter size-large wp-image-871" title="The default way of subcategory listing on the index page" src="http://multimixer.gr/wp-content/uploads/2011/05/subindex1-540x452.jpg" alt="The default way of subcategory listing on the index page" width="540" height="452" /></a></p>
<p>First thing we activate our template, the one we are working on, and now it looks like this</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/subindex2.jpg"><img class="aligncenter size-large wp-image-872" title="Subcategory listing with activated template" src="http://multimixer.gr/wp-content/uploads/2011/05/subindex2-540x532.jpg" alt="Subcategory listing with activated template" width="540" height="532" /></a></p>
<p style="text-align: justify;">There is not really much to do here, things look almost ok. I&#8217;ll do following:</p>
<p style="text-align: justify;">Disable the new products module. Very easy to do, in the file, at line about 88, comment out the new products module &#8220;inclusion&#8221; like this</p>
<p style="text-align: justify;">
<pre class="brush:php">&lt;?php //include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?&gt;</pre>
<p>Next, I will remove any borders and make the subcategory name to be placed on the image and not under it. The part of the file to work on is this here (line about 73)</p>
<pre class="brush:php">      echo '        &lt;td align="center" class="smallText" width="' . $width . '" valign="top"&gt;&lt;a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '"&gt;' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '&lt;br /&gt;&lt;/a&gt;&lt;a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '"&gt;' . $categories['categories_name'] . '&lt;/a&gt;&lt;/td&gt;' . "\n";</pre>
<p style="text-align: justify;">What I will do is to place the contents of the &lt;td&gt; into 2 nested &lt;div&gt;, the first one will get the full &lt;td&gt; width and will be used to add a background, the second one will be positioned relative and will get the width of the image and will be used as a wrapper for the next element, an absolute positioned &lt;p&gt;, wrapped by the 2 div&#8217;s that will hold the category name</p>
<p style="text-align: justify;">Final step is to adjust the subcategory image size, this I do in the administration panel under admin&gt;configuration&gt;images. Number of items per row can be set under admin&gt;maximum values&gt;Categories To List Per Row</p>
<p style="text-align: justify;">The rest is a few lines of css to set margin and padding for the elements and to choose the background colors that will be again set as semi transparent rgba colors. I do also play a little with opacity values, so I can get a nice effect upon hover. For browsers that support transitions, there will be also a small delay in the effects</p>
<p style="text-align: justify;">That&#8217;s how the site look like now</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/subindex4.jpg"><img class="aligncenter size-large wp-image-873" title="The final result for listing subcategories on the osCommerce index page" src="http://multimixer.gr/wp-content/uploads/2011/05/subindex4-540x335.jpg" alt="The final result for listing subcategories on the osCommerce index page" width="540" height="335" /></a></p>
<p style="text-align: justify;">
<p style="text-align: justify;">On hover over any subcategory, opacity values change and it look like this</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/subindex4_hover.jpg"><img class="aligncenter size-large wp-image-874" title="Subcategory listing hover effect" src="http://multimixer.gr/wp-content/uploads/2011/05/subindex4_hover-540x335.jpg" alt="Subcategory listing hover effect" width="540" height="335" /></a></p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p>Because I&#8217;m not sure yet about the image ratio that will be used, I created 2 more subcategory listing layouts, one with a dark background and one on a white background.</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/subindex_alt1.jpg"><img class="aligncenter size-large wp-image-892" title="An alternative listing of subcategories on a dark semi transparent background" src="http://multimixer.gr/wp-content/uploads/2011/05/subindex_alt1-540x293.jpg" alt="An alternative listing of subcategories on a dark semi transparent  background" width="540" height="293" /></a></p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/subindex_alt2.png"><img class="aligncenter size-large wp-image-893" title="The same listing on a white background. It all depends on the images to be used" src="http://multimixer.gr/wp-content/uploads/2011/05/subindex_alt2-540x293.png" alt="The same listing on a white background. It all depends on the images to be used" width="540" height="293" /></a></p>
<p>To switch from one listing layout to an other is quite simple, all that I needed to do is to change the number of &#8220;categories to list per row&#8221; under admin&gt;configuration&gt;maximum values and the subcategory image size of course under admin&gt;configuration&gt;images.</p>
<p>The colors can be set and changed by modifying a couple of lines in stylesheet.css</p>
<p>The final subcategory listing section of the index page, using the real product images look like this. The category name appear upon hover over the image</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/05/category_listing.jpg"><img class="aligncenter size-large wp-image-1023" title="subcategory listing in osCommerce: Category name upon hover" src="http://multimixer.gr/wp-content/uploads/2011/05/category_listing-540x284.jpg" alt="subcategory listing in osCommerce: Category name upon hover" width="540" height="284" /></a></p>
<h4>Index page: Product listing using bxGallery</h4>
<p style="text-align: justify;">The osCommerce product listing page (index,php for &#8220;case&#8221; products) looks by default like this.</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/listing1.jpg"><img class="aligncenter size-large wp-image-876" title="Default product listing in osCommerce" src="http://multimixer.gr/wp-content/uploads/2011/05/listing1-540x409.jpg" alt="Default product listing in osCommerce" width="540" height="409" /></a></p>
<p style="text-align: justify;">After activating the template, we see that the &#8220;body&#8221; of the listing remain almost the same. How it comes? It has the css class &#8220;.ui-widget-content&#8221; and since we didn&#8217;t change the ui theme yet, the result looks same.</p>
<p style="text-align: justify;">Before changing anything in colors and backgrounds, we want to change the way of product listing. The default osCommerce way is maybe suitable for stores with many products and very practical, since it gives a fast overview, but, in this case here, it doesn&#8217;t match the whole design.</p>
<p style="text-align: justify;">How and where to change this? The file to work on is catalog/includes/modules/product_listing.php This one get included into the index.php file in &#8220;category_depth&#8221; products, at about line 238</p>
<p style="text-align: justify;">
<pre class="brush:php">    include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);</pre>
<p style="text-align: justify;">All data get collected in index.php, product_listing.php is responsible for the display. That mean that, if you want to have any other data displayed on your product listing, you need to make sure this data is taken from the database in index.php and then you can decide how to display it modifying this file here.</p>
<p style="text-align: justify;">What we want to do is to change the listing style completely, to turn it into a &#8220;gallery&#8221; style. Since osCommerce has already the very nice <a title="http://bxgalleryplugin.com/" href="http://" target="_blank">bxGallery</a> script (by  <a href="http://stevenwanderski.com/" target="_blank">Steven Wanderski</a>) installed, there is no reason to look for an other one.</p>
<p style="text-align: justify;">bxGallery must be applied to an html unordered list, so, first thing is to change the table structure of product_listing.php into an unordered list. (An &#8220;unordered list&#8221; is a list created by &lt;ul&gt;&lt;li&gt; etc oposite to the &#8220;ordered list&#8221;, that means numbered, that is like &lt;ol&gt;&lt;li&gt; etc)</p>
<p style="text-align: justify;">After doing this, the file looks like this (in a simplified form)</p>
<p style="text-align: justify;">
<pre class="brush:applescript"> echo '&lt;div id="liGal"&gt;&lt;ul class="mainImage" &gt;' . "\n";

    $pi_counter = 0;
    while ($listing = tep_db_fetch_array($listing_query)) {
    $pi_counter++;

            $pi_entry = '&lt;li&gt;';

	$pi_entry .= '&lt;a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&amp;' : '') . 'products_id=' . $listing['products_id']) . '"&gt;' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'] . '&lt;/a&gt;';

            $pi_entry .= '&lt;/li&gt;';

    } // end while ($listing = tep_db_fetch_array($listing_query)) {

    echo '&lt;/ul&gt;&lt;/div&gt;';</pre>
<p style="text-align: justify;">To say the truth, all you need to do is, to look how it is done in product_info.php that use the same gallery. You can of course add anything you want into each &lt;li&gt;&lt;/li&gt;, in the example above it is just the image. I will add also the name, price, buttons etc, wrapping everything into &lt;p&gt; within the &lt;li&gt;.</p>
<p style="text-align: justify;">If you want to keep the admin settings, about what to show on the listing, you can use the switch/case structure that exist in the file, just make sure you replace the table structure by &lt;div&gt;&#8217;s or anything that suit your needs</p>
<p style="text-align: justify;">Do not forget to add this after your list is done</p>
<p style="text-align: justify;">
<pre class="brush:java">&lt;script type="text/javascript"&gt;
$('#liGal ul').bxGallery({
  maxwidth: 375,
  maxheight: 375,
  thumbwidth: 185,
  thumbcontainer: 565,
  thumbplacement: 'left',
  opacity: .7,
  load_image: 'ext/jquery/bxGallery/spinner.gif'
});
&lt;/script&gt;</pre>
<p style="text-align: justify;">You can find more information and setting options on the <a href="http://bxgalleryplugin.com/" target="_blank">bxGallery</a> site. However, hat are the settings I used to create a list like on the image below</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/listing5_left.jpg"><img class="aligncenter size-large wp-image-879" title="A new styled product listing in osCommerce based on bxGallery" src="http://multimixer.gr/wp-content/uploads/2011/05/listing5_left-540x303.jpg" alt="A new styled product listing in osCommerce based on bxGallery" width="540" height="303" /></a></p>
<p style="text-align: justify;">All products of a category are listed in &#8220;thumbnails&#8221;, upon hover the main image on the left change. This is what the installed gallery script do</p>
<p style="text-align: justify;">Upon hover over the main image, a short product description and the &#8220;buy now&#8221; and &#8220;details&#8221; buttons appear.</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/listing5_left_hover.jpg"><img class="aligncenter size-large wp-image-880" title="Additional information and buttons upon hover" src="http://multimixer.gr/wp-content/uploads/2011/05/listing5_left_hover-540x303.jpg" alt="Additional information and buttons upon hover" width="540" height="303" /></a></p>
<p style="text-align: justify;">I&#8217;m not absolutely sure if I maybe prefer the large image to be on the right, that is easy to change by changing the thumbplacement: &#8216;right&#8217;, to be thumbplacement: &#8216;left&#8217;, in the bxSlider settings</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/listing5_right.jpg"><img class="aligncenter size-large wp-image-878" title="The large image on the right, functionality is same" src="http://multimixer.gr/wp-content/uploads/2011/05/listing5_right-540x303.jpg" alt="The large image on the right, functionality is same" width="540" height="303" /></a></p>
<p style="text-align: justify;">Tell me what you like more, left or right? I really can not decide</p>
<p style="text-align: justify;">An issue I had to solve here was that, the thumbnails generated by bxGallery are not links, they can not be clicked, or let&#8217;s say, if clicked they only change the main image. Here I did a temporary fix, I&#8217;m not posting it because it&#8217;s not very &#8220;elegant&#8221; and it also requires changes to the bx gallery script it self, so I think it will cause more questions than necessary.</p>
<h4>Index page: product listing in a grid</h4>
<p style="text-align: justify;">Well, finally I decided to go with a much more simple and &#8220;lightweight&#8221; listing in a grid style, that looks like this</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/product_listing.jpg"><img class="aligncenter size-large wp-image-1025" title="product listing in osCommerce in grid style" src="http://multimixer.gr/wp-content/uploads/2011/05/product_listing-540x280.jpg" alt="product listing in osCommerce in grid style" width="540" height="280" /></a></p>
<p style="text-align: justify;">Things are much more easy here, than in the bx gallery case. All you have to do is, to modify the code of file includes/modules/product_listing.php to create a &lt;td&gt; for each product instead of a &lt;tr&gt; as per default. Within this &lt;td&gt; you can add any information you like, such as name, price etc. This I wrapped all into &lt;p&gt;, that are the &lt;td&gt; of the original file.</p>
<p style="text-align: left;">Next thing to do will be, to copy the &#8220;logic&#8221; of the products to display per row for example from the new products module, that is located in file catalog/includes/modules/new_products.php</p>
<p style="text-align: justify;">In case you are a mini template system user, there are good news: This all and much more will be included into version 1.4 that will be released soon, so you can make all adjustments from your administration panel.</p>
<h4>Index page: Front page with banners</h4>
<p style="text-align: justify;">We all know the default osCommerce frontpage, showing the new products and the famous&#8221;welcome guest&#8221; message</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/front_1.jpg"><img class="aligncenter size-large wp-image-883" title="The osCommerce front page and the famous &quot;welcome guest&quot; message" src="http://multimixer.gr/wp-content/uploads/2011/05/front_1-540x372.jpg" alt="The osCommerce front page and the famous &quot;welcome guest&quot; message" width="540" height="372" /></a></p>
<p style="text-align: justify;">To show new products may be fine, depending on the store, but <strong>the &#8220;welcome message&#8221; is something that need&#8217;s to be removed in any case and for every price. People do not visit online stores to login or to create accounts</strong>, so, if you still have this on your store, remove it asap !</p>
<p style="text-align: justify;">Having <a href="http://minitemplatesystem.com/" target="_blank">mini template system</a> installed, it get really easy to configure the front page. Using the <a href="http://minitemplatesystem.com/usage/front-page-manager-oscommerce/" target="_blank">front page manager</a> and the <a href="http://minitemplatesystem.com/usage/banner-manager-oscommerce/" target="_blank">banner manager</a> we can configure the front page very quickly without having to modify any file at all. <span style="font-size: 0.8em;">(please note that mini template system is a commercial addon for osCommerce, do not click the link if you are not interested in anything that is not free and keep on reading here)</span></p>
<p style="text-align: justify;">We are going to use the 2 banner modules, the first one to display a large image and message, the second one can be used to promote featured products or specials or anything. I won&#8217;t get to much busy with the content, since this is very easy to manage and change by the store owner himself.</p>
<p style="text-align: justify;">That&#8217;s how our front page look like after a few clicks in the admin panel</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/front_3.jpg"><img class="aligncenter size-large wp-image-884" title="The new front page done in the administration panel" src="http://multimixer.gr/wp-content/uploads/2011/05/front_3-540x322.jpg" alt="The new front page done in the administration panel" width="540" height="322" /></a></p>
<p style="text-align: justify;">Well, finally, the front page includes just 1 banner slider and look like this</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/front_page.png"><img class="aligncenter size-large wp-image-1032" title="The final front page of the new osCommerce store: Simple and clean" src="http://multimixer.gr/wp-content/uploads/2011/05/front_page-540x280.png" alt="The final front page of the new osCommerce store: Simple and clean" width="540" height="280" /></a></p>
<p style="text-align: justify;">This is however the easiest part of the whole design process, technically I mean. The hard part is to get the right inspiration :-)</p>
<p style="text-align: justify;">As said, this is all done using mini template system. Let&#8217;s see what you would need to do in case you don&#8217;t use it. The file we need to work on is index.php and concrete the last &#8220;section&#8221; of it that starts at about line 244 in a default osCommerce installation and look like this</p>
<p style="text-align: justify;">
<pre class="brush:xml">  } else { // default page
?&gt;

&lt;h1&gt;&lt;?php echo HEADING_TITLE; ?&gt;&lt;/h1&gt;

&lt;div class="contentContainer"&gt;
  &lt;div class="contentText"&gt;
    &lt;?php echo tep_customer_greeting(); ?&gt;
  &lt;/div&gt;

&lt;?php
    if (tep_not_null(TEXT_MAIN)) {
?&gt;

  &lt;div class="contentText"&gt;
    &lt;?php echo TEXT_MAIN; ?&gt;
  &lt;/div&gt;

&lt;?php
    }

    include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS);
    include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS);
?&gt;

&lt;/div&gt;

&lt;?php
  }</pre>
<p>Here you can basically delete everything, so that this area of the file look like this</p>
<pre class="brush:xml">  } else { // default page
?&gt;

&lt;div class="contentContainer"&gt;
  &lt;div class="contentText"&gt;

  &lt;/div&gt;
&lt;/div&gt;

&lt;?php
  }</pre>
<p style="text-align: justify;">You are free now to add anything you want into here, this is plain html and you can do whatever you want, no limitation. If you want for example to add a slider, there are many nice jQuery based sliders around, I personally would use <a href="http://www.bxslider.com/" target="_blank">bxSlider</a> as I did for mini template system. However, here is an other <a href="http://www.1stwebdesigner.com/css/fresh-jquery-image-gallery-display-solutions/" target="_blank">slider overview</a>, but please do not feel limited to this, there are for sure more.</p>
<p style="text-align: justify;">Most, if not all, of them will require to make an unordered list (&lt;ul&gt;&lt;li&gt;) of the images you want to display. Some others allow also some text, however each slider has it&#8217;s own specific setup. What you need to do is to add the unordered list into the &lt;div&gt; structure left in index.php, link to each image separately and of course make sure the images are on the server and the path to them is correct.</p>
<p style="text-align: justify;">Finally you will need to add the new script files and link to them in includes/template.top.php</p>
<p style="text-align: justify;">If you want to have new products, or upcomming products or any other module you may have installed, you can add it to here like this for the new products</p>
<pre class="brush:xml">&lt;?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?&gt;</pre>
<p style="text-align: justify;">If you want to style this module too, you need to do it in its file, for example the file that displays the new products is catalog/includes/modules/new_products.php</p>
<p>So, we are done with the front page, not so hard, not? Next step is no make the main navigation menu on top.</p>
<h3>The header and the main navigation</h3>
<p>This is something that I left for the end, for sure you noticed that on the final images, the header is already there. Here is how I did it</p>
<p style="text-align: justify;">First of all to say that, even the main navigation is in the header, I didn&#8217;t modify the file that holds the header information at all ! Well, this is because of mini template system, if you have the default osCommerce, you will need to do a couple of changes to the file includes/header.php</p>
<p style="text-align: justify;"><a href="http://multimixer.gr/wp-content/uploads/2011/05/headet.jpg"><img class="aligncenter size-large wp-image-1053" title="The header of the new osCommerce store" src="http://multimixer.gr/wp-content/uploads/2011/05/headet-540x162.jpg" alt="The header of the new osCommerce store" width="540" height="162" /></a></p>
<p>The header section consist of 3 elements: The logo, the main &#8220;slogan&#8221; on the right and the menu under it</p>
<ul>
<li>The <strong>logo</strong> is easy, just upload it under admin&gt;configuration&gt;store logo. That&#8217;s all</li>
<li style="text-align: justify;">The <strong>slogan</strong>, at the top right is in real a banner. Instead of an image, I typed in my text into the &#8220;html&#8221; textarea in admin&gt;tools&gt;banner manager. I added this banner to banner group &#8220;my_theme_name_header&#8221;.The first row is a &lt;h2&gt; tag, the second one a &lt;h3&gt;. The rest is css styling</li>
<li style="text-align: justify;">To set up the <strong>menu</strong>, I created a link group using mini template systems <a title="link manager for osCommerce" href="http://minitemplatesystem.com/usage/link-manager-oscommerce/" target="_blank">link manager</a> and enabled the <a title="Menu maker for osCommerce" href="http://minitemplatesystem.com/usage/menu-maker-horizontal-drop-down-navigation-menu/" target="_blank">main navigation</a> bar setting it to display my just created link group.</li>
</ul>
<p style="text-align: justify;">That was all. Lets see now what I had to do if not using mini template system. Here is a <a title="osCommerce header layout" href="http://multimixer.gr/25/11/2010/make-a-nice-header-for-your-store-in-oscommerce-version-2-3-1/">useful article</a> to read, that explain the osCommerce header structure. If you want such a header, what you need to do in file catalog/includes/header.php is</p>
<ul>
<li>replace the contents of &lt;div id=&#8221;headerShortcuts&#8221;&gt; by the banner code. You will find such a code example in file catalog/includes/footer.php Choose a link group name and add the content to that group via admin, same as I did before</li>
<li>Strip out the complete breadcrumb section and replace it by your menu. I&#8217;m sorry, but I can&#8217;t go into details here about how to create such a menu, maybe there is something in the osCommerce addons area, I&#8217;m not sure. As a general orientation, you need to get your categories structure into an unordered list (there is an addon for this) and then apply a script to create the dropdowns, what I use is superfish, but there are others too.</li>
</ul>
<h3></h3>
<h3>Additional information</h3>
<p>I used a custom ui widget theme to fit the needs of the template. This I created using <a href="http://jqueryui.com/themeroller/" target="_blank">themeroller</a>, all I had to do was to install it, you can read here about <a title="new theme osCommerce" href="http://multimixer.gr/02/12/2010/how-to-get-a-new-theme-for-your-oscommerce-store/">how to install a new theme</a> to your osCommerce store</p>
<p>I used also custom fonts for the header section and all page headings, you can <a title="using @font face in osCommerce" href="http://multimixer.gr/21/06/2011/font_face_oscommerce/">read here</a> about how to do this</p>
<p style="text-align: justify;">Well, people, I maybe forgot to mention some things I did, feel free to ask. I&#8217;m sorry for not going into detail in some things, the post would be too long, it is already long, I&#8217;ll try to cover particular issues in separate posts. Target of this post is finally to give you inspiration and not to teach you each technique step by step</p>
<h3>Conclusion</h3>
<p>Files that I had to modify (starting from a default osCommerce 2.3.1 store and without mini template system in use) are</p>
<ul>
<li>stylesheet.css</li>
<li>index.php</li>
<li>product_info.php</li>
<li>includes/template_top.php</li>
<li>includes/header.php</li>
<li>includes/footer.php</li>
<li>includes/modules/product_listing.php</li>
</ul>
<p style="text-align: justify;"><strong><span style="text-decoration: underline;">Total = 7  files</span></strong><span style="text-decoration: underline;">. </span></p>
<p style="text-align: justify;">Please realize that changing just 7 files changed the overall look of the store completely. Consider this when you are planning to purchase a template and ask (before buying) how many files will need to be modified or replaced by he template. Most of the poorly coded templates will require a complete reinstallation of osCommerce. A properly coded template will not require changes to more than 10 files, something aroud 5 to 10 files. Also to say that, if using mini template system most of the files don&#8217;t need to be modified at all.</p>
<p style="text-align: justify;">The store is live and you can visit it if you like here <a title="Custom handmade titanium backcovers" href="http://maselements.com/" target="_blank">Mas Design</a> Feel free to browse around and to check whatever I posted here. Please do not make any test orders because the store is live, I guess that real orders are welcome of course, I can only say that this titatium backcovers are really a nice thing.</p>
<p style="text-align: justify;">Enjoy</p>
<p style="text-align: justify;">PS Please do not ask me to send you this template. I&#8217;m not selling it and not giving it in any form. This is a custom work, the design and layout are unique, the store owner participated him self at many stages of the design process, making images, suggestions, giving ideas etc. So, there will be no second exactly same store. If you need a custom store, you can get in touch of course, I&#8217;ll be happy to discuss any details with you, but please don&#8217;t ask for exactly this one</p>
]]></content:encoded>
			<wfw:commentRss>http://multimixer.gr/16/05/2011/making-a-oscommerce-template-all-the-progress-step-by-step/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>Link manager and menu maker for osCommerce version 2.3.1</title>
		<link>http://multimixer.gr/09/03/2011/link-manager-and-menu-maker-for-oscommerce-version-2-3-1/</link>
		<comments>http://multimixer.gr/09/03/2011/link-manager-and-menu-maker-for-oscommerce-version-2-3-1/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 17:14:28 +0000</pubDate>
		<dc:creator>multimixer</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[mini template system]]></category>
		<category><![CDATA[osCommerce v2.3]]></category>

		<guid isPermaLink="false">http://multimixer.gr/?p=729</guid>
		<description><![CDATA[Links are one of the most important parts on a online store. Unfortunately, the default osCommerce doesn’t make it very easy to add new links. Thats why I made the link manager and menu maker for version 2.3.1]]></description>
			<content:encoded><![CDATA[<p>Links are one of the most important parts on a online store. It’s basically the only way to get from one page to an other. Unfortunately, the default osCommerce doesn’t make it very easy to add new links. There is no other way than to type them directly into the php files. And there is just one box that is supposed to display links, the &#8220;information&#8221; box.</p>
<p>There are all the time questions from people about how to add a link here or there, questions about how to place it into the code and about the same amount of wrong links, for example links that do not hold the necessary session id.</p>
<p>So I thought why should this be so hard? Why not to be able just to type in any links to anywhere I like and then to display them easily on my webstore without having to alter any file? So first I went to the addon section of osCommerce to take a look. Yes, there are a couple of link managers, but they don&#8217;t do exactly what I want. They are all kind of &#8220;link exchange&#8221; orientated, and this was not my need. Then I saw Gary&#8217;s blog post about his own version of a <a href="http://www.clubosc.com/coming-soon-links-manager-for-2-3-1.html" target="_blank">link manager</a> and this gave me the final motivation to start dong my own thing.</p>
<p><strong>For the impatient readers, the result in short:</strong> What I did is a link manager and menu creator, completelly to manage from the osCommerce administration panel</p>
<ul>
<li><strong>Link manager</strong> I call the admin interface to create links and to organize them into groups. I can type in any links and I can create groups and subgroups of any depth, and to add to each group any type of links: links to internal osCommerce pages (eg privacy.php), link to external websites, links to product categories or links to products themselves.</li>
<li><strong>Menu maker </strong>I call the various ways I got to display that links and link groups on the website, for example on the main navigation bar or in boxes. Here I have various configuration options to adjust the content, lay out and colors of the menus completely to the  needs of the website. Again, without having to touch any file.</li>
</ul>
<p>Little more in detail now and first about the part to create and organize links, what I call &#8220;link manager&#8221;.</p>
<h2>Link manager: Create and organize links</h2>
<p>The whole setup is very similar to the way products and categories are created, just one difference. While products and categories are manage from one and only file (admin/categories.php), and that any product has to be part of a category, my link manager works different: There is <strong>one part just to enter links</strong>, something like a &#8220;link-pool&#8221;, and <strong>an other part to make the groups</strong>.</p>
<p>This comes from the simple conclusion, that a link can be a member of many groups, so it would be confusing to enter a link as part of a group and then to start to copy it to here and there. Much better to have such a link pool, where I can have a complete overview of all my links.</p>
<p>Such an overview look like this</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/03/link_manager_links.png"><img class="aligncenter size-large wp-image-736" title="Link manager: The link pool" src="http://multimixer.gr/wp-content/uploads/2011/03/link_manager_links-540x490.png" alt="Link manager: The link pool" width="540" height="490" /></a></p>
<p>The overview can be filtered to show only external or only internal links</p>
<p>How to add new links? Very easy. Links to internal osCommerce pages are added automatically. In case there are any new files, there is a button &#8220;update&#8221; that will add them. External links need to be added manually. There is no link exchange function and such. The store owner adds manually any link to any page he want to link to from his store. Simple and clean</p>
<p>For a new link you can add a link name, a link description (that will be the title) and of course the url (without any http://). Next you can decide if you want the link to be active or not, and also to what visitor group in should be visible: To registered users, not registered users or all users. Thats necessary for links to pages like login.php or logoff.php. Any link, internal or external can be edited any time of course. The screen look like this</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/03/link_manager_links_new_link.png"><img class="aligncenter size-large wp-image-739" title="Add and edit links" src="http://multimixer.gr/wp-content/uploads/2011/03/link_manager_links_new_link-540x288.png" alt="Add and edit links" width="540" height="288" /></a></p>
<p>Thats it regarding creating links, nothing else to do. Next step is to organize this links into groups. For that there is an other page respnsible, called &#8220;link groups&#8221;. The overview here look like this</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/03/link_manager_link_groups_overview.png"><img class="aligncenter size-large wp-image-742" title="Link groups overview" src="http://multimixer.gr/wp-content/uploads/2011/03/link_manager_link_groups_overview-540x274.png" alt="Link groups overview" width="540" height="274" /></a></p>
<p>Much similar to categories, not? Here you can <strong>create</strong> as many groups and sub groups you like. You can also <strong>delete</strong> that groups, you can <strong>move</strong> them and you can <strong>copy </strong>them. And of course you can <strong>add links</strong> to them ! The screen to add links to groups look like this</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/03/link_manager_link_groups_addlink.png"><img class="aligncenter size-large wp-image-743" title="Add links to link groups" src="http://multimixer.gr/wp-content/uploads/2011/03/link_manager_link_groups_addlink-540x274.png" alt="Add links to link groups" width="540" height="274" /></a></p>
<p>All links of the link pool are available. You can set for each link if you want it to open in the same or in anew window. An other thing you can do is to add product categories, and you can also decide what category you want to add.</p>
<p>An other thing you can do is to add a url to the group title. That means to make the group title to be a link it self. This makes a sense if the group is going to be part of a larger menu</p>
<p style="text-align: center;"><a href="http://multimixer.gr/wp-content/uploads/2011/03/link_manager_link_groups_addurl.png"><img class="size-large wp-image-744 aligncenter" title="Add a url to the link group title" src="http://multimixer.gr/wp-content/uploads/2011/03/link_manager_link_groups_addurl-540x635.png" alt="Add a url to the link group title" width="540" height="635" /></a></p>
<p>Again you have all links available, you can decide if you want the link to open in the same or in a new window, and you can also have the category to be the link target, in case the link group include product categories</p>
<p>Next step is to display the links, thats the job of the menu creator</p>
<h2>Menu creator: Display your links in a nice way</h2>
<p>There are many areas where links could be displayed, for now I set up 2 areas: The main navigation bar and the &#8220;link boxes&#8221;.</p>
<ul>
<li><strong>The main navigation bar</strong> will display the links in a drop down way</li>
<li><strong>The &#8220;link boxes&#8221;</strong> will do the same, using a fly out effect</li>
</ul>
<p>Both do use the &#8220;superfish&#8221; jQuery script, I plan to add more display ways, like tree, accordion etc. Also more areas to display the links, like the footer and whatever else I will think of</p>
<p>Let&#8217;s concentrate on what is now. And what is now are really many configuration options, like everything somebody could think of when setting up a menu. The point here: Everything is done per mouse click in the administration panel of osCommerce. The interface for the navigation bar for example has more than 30 different configuration options the image is too large to post it here.</p>
<p>For example you can decide to show the &#8220;search&#8221; in the header or not, to show products in the menu or not, you can decide if you want the width of the top level menu items to be set automatically or manually (to adjust to vary long or very short items), you can set the height and width of the menu tabs on top level and the sub levels, you can decide to use &#8220;supersubs&#8221; or not (that&#8217;s to adjust  the width of the submenus to it&#8217;s content automatically), you can set colors about anything you can imagine and so on.</p>
<p>Here are some screenshots of the main navigation bar</p>
<p style="text-align: center;"><a href="http://multimixer.gr/wp-content/uploads/2011/03/navbar_front_categories.jpg"><img class="size-large wp-image-753 aligncenter" title="Categories in the main navigation bar" src="http://multimixer.gr/wp-content/uploads/2011/03/navbar_front_categories-540x228.jpg" alt="Categories in the main navigation bar" width="540" height="228" /></a></p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/03/custom2.jpg"><img class="aligncenter size-large wp-image-754" title="Full width and thick navigation bar" src="http://multimixer.gr/wp-content/uploads/2011/03/custom2-540x273.jpg" alt="Full width and thick navigation bar" width="540" height="273" /></a><a href="http://multimixer.gr/wp-content/uploads/2011/03/custom3.jpg"></a></p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/03/custom3.jpg"><img class="aligncenter size-large wp-image-755" title="Very thin navigation bar showing categories only and no search" src="http://multimixer.gr/wp-content/uploads/2011/03/custom3-540x273.jpg" alt="Very thin navigation bar showing categories only and no search" width="540" height="273" /></a></p>
<p>Same of course you can do with the vertical fly out menus. This you can use also to create separate menu boxes per category</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/03/custom31.jpg"><img class="aligncenter size-large wp-image-756" title="Separate menus per category" src="http://multimixer.gr/wp-content/uploads/2011/03/custom31-540x284.jpg" alt="Separate menus per category" width="540" height="284" /></a></p>
<p>Configuration options are like unlimited too</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/03/custom1.jpg"><img class="aligncenter size-large wp-image-757" title="Redmond blue style menu" src="http://multimixer.gr/wp-content/uploads/2011/03/custom1-540x282.jpg" alt="Redmond blue style menu" width="540" height="282" /></a></p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/03/custom21.jpg"><img class="aligncenter size-large wp-image-758" title="Matching pepper menu" src="http://multimixer.gr/wp-content/uploads/2011/03/custom21-540x284.jpg" alt="Matching pepper menu" width="540" height="284" /></a></p>
<p>I hope you noticed that the vertical menu can fly out to the left or to the right depending on where the box is located.</p>
<p>If you are interested in more details you can read here about.</p>
<ul>
<li><a href="http://minitemplatesystem.com/usage/link-manager-oscommerce/">The link manager</a></li>
<li><a href="http://minitemplatesystem.com/usage/menu-maker-horizontal-drop-down-navigation-menu/">Main navigation bar: Drop down menu</a></li>
<li><a href="http://minitemplatesystem.com/usage/menu-maker-vertical-fly-out-menu/">Vertical fly out menu</a></li>
</ul>
<p>And you can <a href="http://demo.minitemplatesystem.com">see it in action here</a></p>
<p>The link manager and menu maker is installed by default into mini template system as a core feature, but I could also imagine it as a standalone solution for any osCommerce store, I just don&#8217;t know if there is any interest for this.</p>
<p>Well, that&#8217;s all nice and fine, what I want to do now is to tell you a little about what caused some headache when developing this system</p>
<ul>
<li><strong>To make an order to all that ul&#8217;s and li&#8217;s</strong> that have to open and close in the right moment. That&#8217;s not that hard if you have just categories or just link groups in a menu, but it is getting more and more complicated if you want to have them all &#8220;link groups, direct links, product categories and products. I can tell you, I spend some time looking at the source code of my site trying to analyze the output. Kind of &#8220;ulitis&#8221; I got (no need for a dentist for this, a beer is much better)</li>
<li><strong>To get the cPath always correctly.</strong> That&#8217;s not an issue if you display the categories from the top level, but what is if you want to display just the sub &#8220;dvd movies&#8221; or  its sub level &#8220;action&#8221; and this either on top level or somewhere in the menu jungle? There is of course a function available to get this, but this is querying the database, so this got solved in an other way without a single query</li>
<li><strong>To avoid queries in general:</strong> First time I checked, a single menu was causing 740 queries ! Total disaster. Finally to display the categories needs less queries than the default osCommerce categories box</li>
<li><strong>To get the &#8220;left-right&#8221; fly out:</strong> Yes, this was a problem, specially after involving the &#8220;subersubs&#8221; thing, but thats also gone now, solved, past and forgotten</li>
<li><strong>To get the &#8220;auto&#8221; width feature for the navigation bar:</strong> Basically what happens is to count the top level parts and then to find the percentage for each. Thats all fine, if you have just to items (50% x2) or 4  items (25% x4) etc. But what is if you have 3, 6 or 7 items? Browsers do interpret the decimals in a different way, that can result to a disaster for your menu. Only way, back to the pixels, and because the width is also not fixed (can be 960 or 1200 for example) and because there can be a search or not, this all needs to be calculated correctly.</li>
</ul>
<p>Well people, I hope you take a look and tell me what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://multimixer.gr/09/03/2011/link-manager-and-menu-maker-for-oscommerce-version-2-3-1/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Mini Template System officially released</title>
		<link>http://multimixer.gr/06/01/2011/mini-template-system-officially-released/</link>
		<comments>http://multimixer.gr/06/01/2011/mini-template-system-officially-released/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 04:43:38 +0000</pubDate>
		<dc:creator>multimixer</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[mini template system]]></category>

		<guid isPermaLink="false">http://multimixer.gr/?p=667</guid>
		<description><![CDATA[Proud to announce that the first official release of mini template system for osCommerce version 2.3.1. is available to download and use. The system is available in 2 forms: As a “modular package“ or as a complete "osCommerce package" ]]></description>
			<content:encoded><![CDATA[<p>Proud to announce that the first official release of mini template system (MTS) for osCommerce version 2.3.1. is available to download and use. Please visit the <a href="http://minitemplatesystem.com" target="_blank">mini template system website</a> for more information</p>
<p>The system is available in 2 forms:</p>
<p>As a “<strong>modular package</strong>“: This package contains all necessary files and instructions to install mini template system (MTS) on an existing osCommerce store, that it based on version 2.3.1</p>
<p>An a “<strong>osCommerce package</strong>“: This is a complete osCommerce installation (version 2.3.1), exactly as offered on the official osCommerce website with mini template system (MTS) pre-installed</p>
<p>I hope you&#8217;ll enjoy it all and I&#8217;m waiting of course for your comments, questions or suggestions about</p>
]]></content:encoded>
			<wfw:commentRss>http://multimixer.gr/06/01/2011/mini-template-system-officially-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Separating data from execution in osCommerce boxes</title>
		<link>http://multimixer.gr/03/01/2011/separating-data-from-execution-in-oscommerce-boxes/</link>
		<comments>http://multimixer.gr/03/01/2011/separating-data-from-execution-in-oscommerce-boxes/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 12:11:44 +0000</pubDate>
		<dc:creator>multimixer</dc:creator>
				<category><![CDATA[learn]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[mini template system]]></category>
		<category><![CDATA[osCommerce v2.3]]></category>

		<guid isPermaLink="false">http://multimixer.gr/?p=640</guid>
		<description><![CDATA[Let's say you want to access the data of a box in osCommerce without having the box being "executed", that means in this case, added to the left or right column. There are several reasons to do this. Read here why and how to do it]]></description>
			<content:encoded><![CDATA[<p>I was in the need to be able to access the data of each box in osCommerce without having the box being &#8220;executed&#8221;, that means in this case, added to the left or right column. Why this, you may want to ask. There are several reasons for, lets say I want to add the contents of the box into an other group and to have it displayed in the footer, header or in the middle of the page, whatever.</p>
<p>Let&#8217;s take things from the beginning on a concrete example and let&#8217;s understand first how things work by default before doing any changes. Thats always a good idea.</p>
<p>Let&#8217;s take a simple box, the one that displays the links to &#8220;contact us&#8221;, &#8220;shipping and returns&#8221;, &#8220;conditions of use&#8221; etc. This box, the &#8220;information&#8221; box is getting created in file catalog/includes/modules/boxes/bm_information.php</p>
<p>Opening the file, we see that it is a class with various functions in it. We are interested in function &#8220;execute()&#8221; that looks like this</p>
<pre class="brush:php: first-line:33">    function execute() {
      global $oscTemplate;

      $data = '&lt;div class="ui-widget infoBoxContainer"&gt;' .
              '  &lt;div class="ui-widget-header infoBoxHeading"&gt;' . MODULE_BOXES_INFORMATION_BOX_TITLE . '&lt;/div&gt;' .
              '  &lt;div class="ui-widget-content infoBoxContents"&gt;' .
              '    &lt;a href="' . tep_href_link(FILENAME_SHIPPING) . '"&gt;' . MODULE_BOXES_INFORMATION_BOX_SHIPPING . '&lt;/a&gt;&lt;br /&gt;' .
              '    &lt;a href="' . tep_href_link(FILENAME_PRIVACY) . '"&gt;' . MODULE_BOXES_INFORMATION_BOX_PRIVACY . '&lt;/a&gt;&lt;br /&gt;' .
              '    &lt;a href="' . tep_href_link(FILENAME_CONDITIONS) . '"&gt;' . MODULE_BOXES_INFORMATION_BOX_CONDITIONS . '&lt;/a&gt;&lt;br /&gt;' .
              '    &lt;a href="' . tep_href_link(FILENAME_CONTACT_US) . '"&gt;' . MODULE_BOXES_INFORMATION_BOX_CONTACT . '&lt;/a&gt;' .
              '  &lt;/div&gt;' .
              '&lt;/div&gt;';

      $oscTemplate-&gt;addBlock($data, $this-&gt;group);
    }</pre>
<p>Two things are going on here. The first is that $data is getting defined, so we say that $data is this and this and this, in this example $data is a collection of links to various pages</p>
<p>Second thing that happens is to add this data to a group. What group? The one that got defined just before in function &#8220;bm_information()&#8221; :</p>
<pre class="brush:php; first-line:29">        $this-&gt;group = ((MODULE_BOXES_INFORMATION_CONTENT_PLACEMENT == 'Left Column') ? 'boxes_column_left' : 'boxes_column_right');</pre>
<p>This here says that the group is either the left or the right column, depending on what the value in the configuration table of our database is. Thats in other words the setting we have when configuring the boxes in the admin area, setting the option to &#8220;left column&#8221; or &#8220;right column&#8221;</p>
<p>Back to the execution function, and the part where the $data is getting added to a group</p>
<pre class="brush:php; first-line:46">      $oscTemplate-&gt;addBlock($data, $this-&gt;group);</pre>
<p>We see that a function of class $oscTemplate is getting used, thats in the file catalog/includes/classes/osc_template.php, and the function looks like this</p>
<pre class="brush:php; first-line:56;">    function addBlock($block, $group) {
      $this-&gt;_blocks[$group][] = $block;
    }</pre>
<p>It&#8217;s simply adding our $data (of the box file) to the array of blocks, the group, again defined in the box file.</p>
<p>To complete the picture, we should also know that the whole &#8220;execution system&#8221; is getting activated via the function buildBlocks() (file catalog/ includes/classes/osc_template.php starting at line 70) and this function again is called in file catalog/includes/template_top.php, just at the beginning, at line 13</p>
<p>Now, that we know how the system works, we can go back to the original question, that is: To separate the &#8220;data&#8221; (in our example the creation of the list of links) from the &#8220;execution&#8221; (in our example to add this list of links to the left or right column)</p>
<p>I hope that now, the reasons why to do this are more clear than before: I want simply to have the option to access the plain (well, ok, including it&#8217;s html) data of each box, so that I can do with it whatever I want, without having to access each time the box file.</p>
<p>There is for example a addon available (<a href="http://addons.oscommerce.com/info/7694/v,23">Box content placement</a>), that is adding 3 more optional positions for the boxes, and for this it is altering each box file. Thats all fine, but what if you want to add one more position? And what if you want to have some boxes to appear under some conditions only? For example jut on some pages? Or to have the boxes appearing on all pages but the front page? And so on and so forth.</p>
<p>Thats why I ended up with the approach I&#8217;m presenting here, to separate data from execution. In our box example (file includes/modules/boxes/bm_information.php), all I do is to split the function execute into 2 separate functions, so it looks like this</p>
<pre class="brush:php; first-line:33;">    function dataF() {

      $data = '&lt;div class="ui-widget infoBoxContainer"&gt;' .
              '  &lt;div class="ui-widget-header infoBoxHeading"&gt;' . MODULE_BOXES_INFORMATION_BOX_TITLE . '&lt;/div&gt;' .
              '  &lt;div class="ui-widget-content infoBoxContents"&gt;' .
              '    &lt;a href="' . tep_href_link(FILENAME_SHIPPING) . '"&gt;' . MODULE_BOXES_INFORMATION_BOX_SHIPPING . '&lt;/a&gt;&lt;br /&gt;' .
              '    &lt;a href="' . tep_href_link(FILENAME_PRIVACY) . '"&gt;' . MODULE_BOXES_INFORMATION_BOX_PRIVACY . '&lt;/a&gt;&lt;br /&gt;' .
              '    &lt;a href="' . tep_href_link(FILENAME_CONDITIONS) . '"&gt;' . MODULE_BOXES_INFORMATION_BOX_CONDITIONS . '&lt;/a&gt;&lt;br /&gt;' .
              '    &lt;a href="' . tep_href_link(FILENAME_CONTACT_US) . '"&gt;' . MODULE_BOXES_INFORMATION_BOX_CONTACT . '&lt;/a&gt;' .
              '  &lt;/div&gt;' .
              '&lt;/div&gt;';

	  return $data;
    }

    function execute() {
      global $oscTemplate;

      $oscTemplate-&gt;addBlock($this-&gt;dataF(), $this-&gt;group);
    }</pre>
<p>You see that I created a new function, called &#8220;dataF()&#8221; (could be &#8220;kuku()&#8221;) where the &#8220;data creation process&#8221; happens and then I use the output of this function for the function execute(), that is now just executing any data that was &#8220;created&#8221; before. Same of course I need to do for all boxes</p>
<p>After done once, things are getting really easy. Each time I need a box (out of the regular left/right schema), all I need to do is to &#8220;activate&#8221; the class of the box I need and to output the contents of dataF() anywhere I want. Or, I can create a new group of boxes, called eg &#8220;boxes_footer, add to it any boxes I like, and then display the whole thing in the footer, or wherever I want. Or I can move all boxes together to the left or to the right. In general: I have the total control over the boxes display, without doing anything to the boxes files themselves</p>
<p>This approach is used in <a href="http://demo.minitemplatesystem.com" target="_blank">mini template system</a>, for example when moving all boxes to the left or to the right, or when making the &#8220;information&#8221; or &#8220;search&#8221; box to disappear when a certain template is activated</p>
<p>Update on 5/5/2010: Because some of you asked how to output the content of dataF(), here is the way to do it.</p>
<p>Let&#8217;s say you want to display the contents of box &#8220;shopping cart&#8221; at the bottom of file shipping.php. That&#8217;s not very realistic, it&#8217;s just an example to demonstrate that you can display anything anywhere</p>
<p>What you need to do in this case? first thing is to &#8220;activate&#8221; the class in this way</p>
<pre class="brush:php">$boxdata = new bm_shopping_cart;</pre>
<p>Next step is to echo the variable $boxdata wherever you want, not that the variable could be called anything, eg $kuku</p>
<pre class="brush:php">echo $boxdata-&gt;dataF();</pre>
<p>Now, there is the &#8220;danger&#8221; to get an error on the page in case the shopping cart box is not present, that means installed. To avoid this, we need to check if the class exists and to activate it only if this is the case, like this</p>
<pre class="brush:php">if (class_exists(bm_shopping_cart)) {
$boxdata = new bm_shopping_cart;
echo $boxdata-&gt;dataF();
}</pre>
<p>The result on shipping.php looks like this</p>
<p><a href="http://multimixer.gr/wp-content/uploads/2011/01/my-store_1304601451532.png"><img class="aligncenter size-large wp-image-803" title="Shopping cart box at the bottom of privacy.php" src="http://multimixer.gr/wp-content/uploads/2011/01/my-store_1304601451532-e1304601587331-540x170.png" alt="Shopping cart box at the bottom of privacy.php" width="540" height="170" /></a></p>
<p>In the same way you can output any box at any place of your store, for example the cart in the header, or the information box in the footer, or whatever</p>
<p>You will want of course to wrap everything into proper html and/or to use some css to style everything. Enjoy</p>
]]></content:encoded>
			<wfw:commentRss>http://multimixer.gr/03/01/2011/separating-data-from-execution-in-oscommerce-boxes/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Mini Template System for osCommerce v2.3.1</title>
		<link>http://multimixer.gr/19/12/2010/mini-template-system-for-oscommerce-v2-3-1/</link>
		<comments>http://multimixer.gr/19/12/2010/mini-template-system-for-oscommerce-v2-3-1/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 15:19:04 +0000</pubDate>
		<dc:creator>multimixer</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[mini template system]]></category>
		<category><![CDATA[osCommerce v2.3]]></category>

		<guid isPermaLink="false">http://multimixer.gr/?p=607</guid>
		<description><![CDATA[mini template system for osCommerce v2.3.1 is a small and lightweight templating system that comes to make your life with osCommerce easier. Just drop in a new template, select it in your administration panel and go. Each template gives you uncountable layout combinations. ]]></description>
			<content:encoded><![CDATA[<p>I recently got the idea, and task to my self, to create a basic, generic template for the new osCommerce version 2.3. In other words not &#8220;just&#8221; a template, but a flexible base that could carry many types of stores and open to any customization.</p>
<p>In detail, the task included:</p>
<p><strong>jquery ui widget compatibility</strong>: Since this feature is included in osCommerce it should be kept and wherever possible expanded. It&#8217;s a nice, fast and easy way to change the look of the store. The jquery ui themeroller is a great and free online tool, each one can go and pick whatever he like. The point is, that it should be easy to integrate into the store, without having to change anything in the files</p>
<p><strong>Flexibilit</strong>y: The template should be flexible in any way. Unlike other templates, that look nice eg when they have 6 products on the front page, but totally screwed up when having to display just 4, the template should look nice under &#8220;any conditions&#8221;. It should look nice with wide or narrow columns, with all boxes on the left or on the right, or even with no boxes at all. It should look nice with or without banners, should be able to take a &#8220;minimal&#8221; or &#8220;overloaded&#8221;, a pale or strong look without any problems</p>
<p><strong>Common sense: </strong> it&#8217;s maybe just my point of view, but some things look to me like having a &#8220;natural&#8221; order. For example, some links, like &#8220;login/logout&#8221;, or &#8220;order history&#8221; etc belong to the header. Same the information about what&#8217;s in the cart. Same, and most important, for the checkout link. Why? Because they have to be accessible any time from any page without having to search or to scroll. Same also for the boxes: not everything has to be in a box. I saw once a addon to osCommerce that was doing the incredible thing to add the paypal logo to the store in a side box, with border and titles as : &#8220;the paypal logo&#8221;. So, each template removes some boxes, depending on how it is structured: If there is a search area in the main navigation menu, there is no necessity for a search box, right? Common sense for me, I hope you share my point of view.</p>
<p><strong>Admin controls</strong>: The store owner should be able to manage the main structure of the store right from the admin panel. It&#8217;s not possible to expect from every store owner to be a php expert, to know about css and who knows what else. Also not possible to expect from store owners to spend hours reading tutorials and asking questions about how to change the background of their store. Also not acceptable no expect store owners to pay a good amount of money for every single change they need.  A store owner should be busy with commercial activities and not with coding</p>
<p><strong>Easy and native operation:</strong> Everything should be easy for the store owner. Easily to drop in a new template, easy to activate or deactivate it, easy to modify it. Easy to create various looks of the same template, easy to share them with friends and colleagues to get opinions, leaving the current store operation untouched. But also for developers designers, it should be easy to jump in at any point and start customizing the way they want, without having to spend the half day, trying to understand how everything is structured.</p>
<p><strong>100% osCommerce compatibility:</strong> All main files should stay in their original condition without any changes. This was of highest importance to guarantee conformity and easy integration of addons and/or upgrades of the core code. Also, in case somebody wants to uninstall it, the whole system should not leave any garbage behind.  This was also the hardest part, because all design had to be implemented without adding or removing css classes or changing the markup. You can say it had to be a &#8220;remote&#8221; designing only and exclusively via css and some functions.</p>
<p>The result? Yes it is working. You can just upload a template to the templates folder, go to your admin, click &#8220;install&#8221; edit any settings you need, then click &#8220;activate&#8221; to go live with it. Much like in wordpress. A new template installation won&#8217;t take you more than 3 minutes, the de-installation (in case you want to go back to the default look) will cost you just one click.</p>
<p>In a first step you can change the ui theme, color scheme, shadow structure, column position and column width. This gives already more than 1000 possible combinations and should be satisfying for most of the cases. Here are some screenshots of combinations I like (It&#8217;s possible of course to create incredible combinations too)</p>
<p><img class="aligncenter size-large wp-image-617" title="The basic template with a dark ui theme, gray background and schadow" src="http://multimixer.gr/wp-content/uploads/2010/12/dark_s3-540x759.png" alt="The basic template with a dark ui theme, gray background and schadow" width="540" height="759" /></p>
<p><img class="aligncenter size-large wp-image-618" title="The basic template in red gray combination and a decent shadow" src="http://multimixer.gr/wp-content/uploads/2010/12/red_s1-540x627.png" alt="The basic template in red gray combination and a decent shadow" width="540" height="627" /></p>
<p><img class="aligncenter size-large wp-image-620" title="The standard redmond theme after passing the mini template system lifting" src="http://multimixer.gr/wp-content/uploads/2010/12/redmond_s2-540x729.png" alt="The standard redmond theme after passing the mini template system lifting" width="540" height="729" /></p>
<p><img class="aligncenter size-large wp-image-622" title="A very pale combination in light beige using a tweaked ui pepper theme" src="http://multimixer.gr/wp-content/uploads/2010/12/pepper_s4-540x725.png" alt="A very pale combination in light beige using a tweaked ui pepper theme" width="540" height="725" /></p>
<p>There are uncountable combinations possible. You see that even I say &#8220;base template&#8221; it is like having many, really many templates for osCommerce version 2.3.1 available any moment, just a click away.  I&#8217;ll create some more shadow/wrapping/color schemes, and of course some more templates. Isn&#8217;t that great? To switch for example no, in the cChristmas time, to a Christmas template and then back again to the regular one? Don&#8217;t forget that this all is done in your administration panel, easily and comfortable by clicking on buttons. Here is an idea of the environment in admin:</p>
<p><img class="aligncenter size-large wp-image-624" title="install osCommerce templates with a single click" src="http://multimixer.gr/wp-content/uploads/2010/12/install-540x311.jpg" alt="install osCommerce templates with a single click" width="540" height="311" /></p>
<p>For &#8220;advanced&#8221; users it&#8217;s possible to &#8220;inject&#8221; html and css classes to critical points of the page, like before or after the main container, or the columns. This gives you the change to create even more specific designs without even touching the osCommerce files. That&#8217;s also great for template designers.</p>
<p>The immediate next steps are to add some nice features, like a modular index page (that&#8217;s the front page and the product listing pages), modular product information page, a true menu manager for the main menu,  a boxes manager to control when, where, how and under what conditions each box should be displayed and so on. And also some more nice jquery effects, to take advantage of what is already installed in osCommerce.</p>
<p>However, more detailed articles about will follow in the next days.</p>
<p>I uploaded a first &#8220;demo&#8221; version of the template. You can find it here: <a title="template system for osCommerce" href="http://demo.minitemplatesystem.com" target="_blank">mini template system for osCommerce v2.3</a>. I hope that the system will be available to download in the next days.</p>
<p>Please do not try to browse with internet explorer, the support for this is under development. Naturally IE users will never enjoy the quality of firefox and safari browsing, but that&#8217;s not my problem</p>
<p>If you see something that you don&#8217;t like please let me now, if for example you don&#8217;t see the header on the top of the page but on the right, or the bottom, thats something I would like to know. You can say it also when you like what you see always nice to hear a good word from time to time.</p>
]]></content:encoded>
			<wfw:commentRss>http://multimixer.gr/19/12/2010/mini-template-system-for-oscommerce-v2-3-1/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>
