View Single Post
  #1  
Old 09-16-2006, 07:53 PM
 
instink instink is offline
 

Advanced Member
  
Join Date: Aug 2006
Posts: 44
 

Default Improved minicart display

Hi guys, I am basically a hack so please excuse the messy code. Anyway I decided my miinicart needed improving and have got it to the point where I'm really in love with it, looks great, simple to use etc. here is a screenshot:

http://www.jctech.com.au/images/minicart.jpg

Improvements are:

Displays products individually
Product links are clickable
"Remove" link for easy product removal
Shipping and total costs displayed

Credit goes to forum user "mac" for his original minicart mod. I just edited it to make it the way I want. Works with 4.0.16 and should work with most other versions.

edit /minicart.php to be as follows:

Code:
<?php # # $Id: minicart.php,v 1.1.2.1 2005/01/12 07:41:43 svowl Exp $ # if ( !defined('XCART_START') ) { header("Location: home.php"); die("Access denied"); } x_session_register ("cart"); $MINICART["total_cost"] = price_format(0); $MINICART["total_items"] = 0; if (!empty($cart)) { if (!empty($cart["total_cost"])) $MINICART["total_cost"] = $cart["total_cost"]; $MINICART["total_items"] = ((!empty($cart["products"]) and is_array($cart["products"]))?count($cart["products"]):0) + ((!empty($cart["giftcerts"]) and is_array($cart["giftcerts"]))?count($cart["giftcerts"]):0); } $smarty->assign("minicart_total_cost", $MINICART["total_cost"]); $smarty->assign("minicart_total_items", $MINICART["total_items"]); $smarty->assign("minicart_contents", $cart["products"]); //added this line $smarty->assign("minicart_shipping", $cart["display_shipping_cost"]); //added this line $smarty->assign("minicart_delivery", $cart["delivery"]); //added this line $smarty->assign("minicart_delete", $cart["delete"]); //added this line ?>

Then edit /skin1/customer/main/minicart.tpl to be as such:

Code:
{* $Id: minicart.tpl,v 1.12 2004/07/06 14:00:12 svowl Exp $ *} {if $minicart_total_items > 0} {foreach from=$minicart_contents item=item} <table width="100%" border="0" cellpadding="1" cellspacing="0"> <tr><TD class="MiniCartTextSmall"><b>{$item.amount} X <a href="product.php?productid={ $item.productid }" title="{$item.product}">{$item.product|truncate:17:"...":true}</a> </b></tr></td></table> <table width="100%" border="0" cellpadding="1" cellspacing="0"> <tr><td> {include file="currency.tpl" value=$item.display_subtotal} </td><td align=right> {if $config.Adaptives.platform eq 'MacPPC' && $config.Adaptives.browser eq 'NN'}{assign var="js_to_href" value="Y"}{/if} {if $type eq 'input'}{assign var="img_type" value='INPUT type="image" class="blank"'}{else}{assign var="img_type" value='IMG'}{/if} {assign var="js_link" value=$href|regex_replace:"/^\s*javascript\s*:/Si":""} {if $js_link eq $href}{assign var="js_link" value="javascript: self.location='cart.php?mode=delete&productindex=`$item.cartid`'"} {else}{assign var="js_link" value=$href}{if $js_to_href ne 'Y'}{assign var="onclick" value=$href}{assign var="href" value="javascript: void(0);"}{/if}{/if} {if ($config.Adaptives.platform ne 'MacPPC' || $config.Adaptives.browser ne 'NN')}<a href="{$js_link}">Remove</a> {else} <A href="cart.php?mode=delete&productindex=`$item.cartid`"{if $onclick ne ''} onclick="{$onclick}"{/if}{if $title ne ''} title="{$title}"{/if}{if $target ne ''} target="{$target}"{/if}><FONT class="FormButton">{$button_title} </FONT></A> {/if} </td></tr></table> <HR size="1" NOSHADE class="VertMenuHr"> {/foreach} <table width="100%" border="0" cellpadding="1" cellspacing="0"> <tr> <TD class="ProductDetailsTitle">Shipping Cost</td><td align="right" class="MiniCartTextSmall">{$minicart_shipping}</td> </tr> </table> <table width="100%" border="0" cellpadding="1" cellspacing="0"> <tr> <TD class="ProductDetailsTitle">{$lng.lbl_total}: </td> <td align="right" class="MiniCartTextSmall">{include file="currency.tpl" value=$minicart_total_cost}</td> </tr> </table> {else} {$lng.lbl_cart_is_empty} {/if} <hr size="1" noshade class="VertMenuHr"> <A href="cart.php" class="VertMenuItems">{$lng.lbl_view_cart}</A><BR> <A href="cart.php?mode=checkout" class="VertMenuItems">{$lng.lbl_checkout}</A><BR>

Sorry its so messy, I just cut and pasted bits from all over the place. works a treat though

Finally, in skin1/customer/menu_cart.tpl comment out this section:

Code:
{if $cart} <A href="cart.php" class="VertMenuItems">{$lng.lbl_view_cart}</A><BR> <A href="cart.php?mode=checkout" class="VertMenuItems">{$lng.lbl_checkout}</A><BR> {/if}

By doing that last part you are preventing it from showing the "View Cart" and "Checkout" links twice when you are actually in the cart.

Lastly you need to add this to your skin1.css file

Code:
} .MiniCartTextSmall { FONT-SIZE: 11px; }

I hope this is of some use to someone... and that the code actually works in someone elses system and not just mine!!
__________________
X-cart 4.0.16
www.jctech.com.au
Reply With Quote