Archive for the ‘Howto's’ Category

Network Logon script – Windows 2008 Domain

Wednesday, September 1st, 2010

Ever wanted to Map Network drives for your Domain users when they log on ? How about automatically adding a printer ? Or Map a Network Drive for specific users only ?

No problem ! :)

@echo off
net use * /delete /y
net use R: \\DATA_SERVER\HOME_DRIVES$\%USERNAME% /persistent:no
net use W: \\DATA_SERVER\SHARE /persistent:no
start \\PRINT_SERVER_IP_ADDRESS\PINTER_NAME /MIN
IF (%USERNAME%) == (SOME_USER_NAME) net use N: \\DATA_SERVER\SOME_SHARE /persistent:no

Put the above code into a text file on windows and rename it to logon_script.bat or any name really, as long as it is a .bat file.

Place the .bat file into your SYSVOL folder, and now, using Active Directory, Users and Groups, add the logon script to each user of your domain, and your done :)

To test, please log off and log on again, your printer should be added now, and your drives mapped.

How to bring in Related Product Data into View.phtml with Downloadable Sample Links

Monday, July 26th, 2010

Morning Guys and Girls,

Today we will learn how to bring in related product data into the View.phtml or product colum or middle column.

To see a demo of this have a look at this page:

3AM Psytrance Timecode Records – Multistate – Collaborating with machines

Ready? Let’s do it!


<?php foreach ($_product->getRelatedProducts() as $related_product) {
 if (sizeof($_product->getRelatedProducts())>0):
 ?>
 <?php

$ids[] = $related_product->getId();

echo $relatedproduct->getName(); ?>

That will get you related products. However, I actually extended it quite a bit more, in the sense that my related products are downloadable products, and I needed to get the sample link from these products. The complete code that I used therefor looks like this:


<?php $i = 1; ?>
 <?php foreach ($_product->getRelatedProducts() as $related_product) {
 if (sizeof($_product->getRelatedProducts())>0):
 ?>
 <?php
 $ids[] = $related_product->getId();

 //Download product samples code :)  Ninja Go!!
 $_myprodsamples = Mage::getModel('downloadable/sample');
 $_mySampleCollection = $_myprodsamples->getCollection()->addProductToFilter($related_product->getId());

 $relatedproduct = Mage::getModel('catalog/product');
 $relatedproduct->load($related_product->getId());

 if (sizeof($_mySampleCollection)>0):
 ?>

 <?php
 foreach ($_mySampleCollection as $_sample) {
 //$_samplelink = $this->getUrl('downloadable/download/sample/sample_id/'.$_sample->getId());
 $_samplelink = Mage::getModel('downloadable/sample')->load($_sample->getId())->getUrl();
 ?>
 <span><?php echo $i++; ?><?php echo $this->__('. ') ?><a href="javascript:void(0)" onclick="player1.sendEvent('STOP'); player1.sendEvent('LOAD', {'image':'<?php echo $_product->getImageUrl(); ?>', 'file':'<?php echo $_samplelink ?>', 'provider':'sound', 'buffer':0, 'autostart':true});" title="Click to play <?php echo $relatedproduct->getName(); ?>"><?php echo $relatedproduct->getName(); ?></a></span>
 <?php } ?>
 <?php /*endforeach;*/ ?>

 <?php endif; ?>

 <?php //Mage::Helper('debug')->log($_sample) ?>
 <?php endif; ?>
 <?php } ?>
 <?php /*endforeach;*/ ?>

Beer time!
There you have it, if you don’t come right, use the contact form to contact me, and I will set this up for you.

Have a wonderful day!

Winston

Magento Cape Town

Monday, July 19th, 2010

We work with Magento all day long, and know this system very well now.
At BUYX Online, we will be able to support, host, and develop your on-line store. We have also made Magento Partners throughout the world and can recommend someone in Europe, America, and India.

Should you have a Magento related query, contact us here.

Magento Contact Us – Unable to submit your request. Please, try again later error

Saturday, May 8th, 2010

I had an issue with Magento CE Version 1.4.0.1 where an email would not be sent when a visitor used the contact us page, I found the fix using Google, on ScreencastWorld

In WEBROOT/app/design/frontend/base/default/template/contacts/form.phtml
Look for

<div class="buttons-set">

It should look like this, the important part is the input file name=”hideit”

<div class="buttons-set">
        <p class="required"><?php echo Mage::helper('contacts')->__('* Required Fields') ?></p>
        <input type="text" name="hideit" id="hideit" value="" style="display:none !important;" />
        <button type="submit" title="<?php echo Mage::helper('contacts')->__('Submit') ?>" class="button"><span><span><?php echo Mage::helper('contacts')->__('Submit') ?></span></span></button>
</div>

Good luck !

Add All products in Cart to Wishlist

Tuesday, April 6th, 2010

Want to add all the products in your cart to your Wishlist, in one click?
I’ll show you how to do it here ;) This procedure will take you 5 Minutes

We will begin to override the Wishlist Controller.
We do this by creating a folder called Mycompany in your webroot /app/code/local/ and inside it, we’ll add the folder: Addcwl

Inside this folder we will create two extra folders:

etc
controllers

Now, we are ready to begin:

In WEBROOT/app/code/local/Mycompany/Addcwl/etc/ create the file config.xml
Inside this file put the following,

<?xml version="1.0" encoding="utf-8" ?>
<config>
   <!-- snip -->
   <frontend>
      <routers>
         <wishlist>
            <args>
               <modules>
                  <Mycompany_Addcwl before="Mage_Wishlist">
                            Mycompany_Addcwl
                 </Mycompany_Addcwl>
               </modules>
            </args>
         </wishlist>
      </routers>
   </frontend>
</config>

The above code allows you to override the Wishlist controller :)

Now, in WEBROOT/app/code/local/Mycompany/Addcwl/controllers/ create the file

IndexController.php

Inside this file put the following:

<?php

 * @category   BUYX
 * @package
 * @copyright  Copyright (c)
 * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */

/**
 * Wishlist front controller
 *
 * @category   BUYX
 * @package
 * @author     Winston nolan <winston@buyxonline.com>
 */

include_once("Mage/Wishlist/controllers/IndexController.php");

class Mycompany_Addcwl_IndexController extends Mage_Wishlist_IndexController
{
	//we test our controller override with this
	/*
	public function indexAction()
	    {
	        # Just to make sure
	        error_log('Yes, I did it!');
	        parent::indexAction();
	    }
	*/

    /**
     * Adding new item
     */

    public function addcartAction()
    {
        $session = Mage::getSingleton('customer/session');
        $wishlist = $this->_getWishlist();
        if (!$wishlist) {
            $this->_redirect('*/');
            return;
        }
        // We store the id's of our products in the cart, in our core session
        $ids = Mage::getSingleton('core/session')->getWishListIds();
        // Here we explode our id's
        $ids = explode('-', $ids);
                        //do a foreach on them
        		foreach ($ids as $productId) {

        $product = Mage::getModel('catalog/product')->load($productId);

        try {

            $wishlist->addNewItem($productId);
            Mage::dispatchEvent('wishlist_addcart_product', array('wishlist'=>$wishlist, 'product'=>$product));

            //unset wishlist id's in session
	    Mage::getSingleton('core/session')->unsWishListIds();

            if ($referer = $session->getBeforeWishlistUrl()) {
                $session->setBeforeWishlistUrl(null);
            }
            else {
                $referer = $this->_getRefererUrl();
            }
            $message = $this->__('%1$s was successfully added to your wishlist. Click <a href="%2$s">here</a> to continue shopping', $product->getName(), $referer);
            $session->addSuccess($message);
        	}
        	catch (Mage_Core_Exception $e) {
            $session->addError($this->__('There was an error while adding item to wishlist: %s', $e->getMessage()));
        	}
        	catch (Exception $e) {
            //$session->addError($this->__('There was an error while adding item to wishlist.'));
        	}
        $this->_redirect('*');
    	}

 	}
}

Now that have the controller wrapped up, we need to modify one file called sidebar.phtml
The file is located here here:

WEBROOT/app/design/frontend/YOURPACKAGE/YOURTHEME/checkout/sidebar/sidebar.phtml

In this file we’ll make the following change around line 56

<?php //first we'll make our id's null ?>
<?php $ids = null; ?>
    <?php foreach($_items as $_item): ?>
        <?php echo $this->getItemHtml($_item) ?>
         <?php now we'll concatenate our Id's into a string
        <?php $ids .= '-' . $_item['product_id']; ?>
    <?php endforeach; ?>
    <?php
        //finally, we'll store the id's into our core session
    	Mage::getSingleton('core/session')->setWishListIds($ids);

         //setup some debug logging to see what we're doing :)
    	//$session = Mage::getSingleton('core/session');
    	//Mage::Helper('debug')->log($session);
     ?>

And we’ll add the Add All to Wishlist button/link here:

<!-- add all items to wishlist -->
        <button style="margin-right:5px;" class="form-button" type="button" onclick="setLocation('<?php echo Mage::getBaseUrl(); ?>wishlist/index/addcart/product/')">
            <span><?php echo $this->__('Add to my Wishlist') ?></span>
        </button>

And now for the Grand Finale!
We’ll activate our module by creating a file in

WEBROOT/app/etc/modules/Mycompany_Addcwl.xml
Inside this file we’ll put the following

<?xml version="1.0"?>
<config>
 <modules>
 <!-- Activate Add All in Cart to Wishlist Module -->
   <Mycompany_Addcwl>
     <active>true</active>
     <codePool>local</codePool>
   </Mycompany_Addcwl>
 </modules>
</config>

Congratulations, have a beer! You can now add all the products in your cart to your wishlist :)