Un-Ban Yourself from WHMCS Administration

Here’s how to un-ban yourself:

  1. Log into your cPanel or website database administration panel
  2. Enter phpMyAdmin
  3. Look for a database ending in _whmcs
  4. Browse that database
  5. Browse the table named tblbannedips
  6. Refer to your WHMCS ban notification where it says your banned IP address (such as “Your IP 12.345.12.345″)
  7. Find the entry in the tblbannedips where the ip column matches your IP address
  8. Click the X in that row to delete the ban
  9. Re-access your WHMCS ban-free!

Source:
http://www.seodenver.com/whmcs-banned-ip-address/

Excel: Excel CEILING Function Tutorial

The CEILING function is used to round a number upwards to the nearest multiple of a specified value.

For example, the function can be used to round up the costs of items to the nearest dime ( $ 0.10 ) to avoid having to deal with smaller change such as pennies ($ 0.01 ) and nickels ($ 0.05 ).

The syntax for the CEILING function is:

= CEILING ( Number, Significance )

Number – the value to be rounded.

Significance – the function rounds the Number specified above up to the nearest multiple of this value.
Example: Using Excel’s CEILING Function

For help with this example, see the image above.

Enter the following data into cells D1 to D3: 34.57, 23.82, 31.16

Click on cell E1 in the spreadsheet – this is where the function will be located.

Click on the Formulas tab of the ribbon menu.

Choose Math & Trig from the ribbon to open the function drop down list.

Click on CEILING in the list to bring up the function’s dialog box.

In the dialog box, click on the Number line.

Click on cell D1 in the spreadsheet.

In the dialog box, click on the Significance line.

Type in 0.10 – the number in D1 will be rounded up to the nearest multiple of 0.10.

Click OK.

The answer 34.60 should appear in cell E1 since 34.60 is the nearest multiple of 0.10
( 0.10 * 6 ) higher than 34.57.

Drag the fill handle in the bottom right corner of cell E1 down to cells D2 and D3 to copy the function to those cells.

The cells D2 and D3 should have the answers 23.90 and 31.20 respectively.

When you click on cell E1 the complete function = CEILING ( D1 , 0.1 ) appears in the formula bar above the worksheet.

Source:
http://spreadsheets.about.com/od/excelfunctions/qt/90128_ceiling.htm

Excel: Multiply a range of numbers by a number

Important This procedure replaces the numbers in the range with the result of the multiplication.

In an empty cell, enter the number that you want to multiply by.
Select the cell, and on the Edit menu, click Copy.
Select the range of numbers that you want to multiply.
On the Edit menu, click Paste Special.
Under Operation, click Multiply.
Click OK.
Delete the content of the cell entered in the first step.

Source:
http://office.microsoft.com/en-us/excel-help/multiply-numbers-HP003056141.aspx#BMmultiply_a_range_of_numbers_by_a_numb

Javascript: Making the entire div clickable

We could make an entire div tag clickable by redirecting the click to a page and by changing the cursor sytle to a pointer. This is good if you want your logo or your banner to be clickable, specially if the logo is embedded together with the banner. Making the entire banner clickable would be very beneficial to your site.

<div onclick="location.href='http://www.tildemark.com/';" style="cursor: pointer;">
</div>

Source:
http://www.tildemark.com/making-the-entire-div-clickable/

Magento: Getting product attributes values and labels

I have found that it is very useful to be able to get attributes from the system and use them in places other than a products category page. I always forget the exact syntax to use so, this is going to be my unofficial cheat sheet.

This is how to get a drop down lists options. I don’t think it will work for a mulit-select attribute. I stick the value/label pairs into an array to use how I please.
(more…)

Check if website is available or down

Performs a cURL-Request to check, if a website exists / is online

//Cron job comand line: /usr/local/bin/php /home/USERNAME/site-monitor/monitor.php > /dev/null
ini_set('error_log','/home/USERNAME/site-monitor/downtime.log');

//returns true, if domain is availible, false if not
function isDomainAvailible($domain) {
	//check, if a valid url is provided
	if(!filter_var($domain, FILTER_VALIDATE_URL)) {
		return false;
	}
	//initialize curl
	$curlInit = curl_init($domain);
	curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);
	curl_setopt($curlInit,CURLOPT_HEADER,true);
	curl_setopt($curlInit,CURLOPT_NOBODY,true);
	curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);
	//get answer
	$response = curl_exec($curlInit);
	curl_close($curlInit);
	if ($response) return true;
	return false;
}

if (!isDomainAvailible('http://www.example.com/updown.html')) {
	echo "Woops, nothing found there.";
	$message = 'Woops, Your site was down on '.date("Y-m-d H:i:s");
	$headers = 'From: admin@example.com';
	mail("admin@example.com", "Website is down", $message, $headers);
	error_log($message, 0);
}

Source:
http://css-tricks.com/snippets/php/check-if-website-is-available/

Magento: Retrieve attributes by groupId

Problem: how to retrieve product attributes by group id.
See here: http://www.magentocommerce.com/boards/viewthread/79694/

Possible solution:

<?php
require_once 'path/to/app_dir/app/Mage.php';
Mage::app('default');
$product = Mage::getModel('catalog/product');
$product->setAttributeSetId('THE ATTRIBUTE SET YOU WANT TO USE');
$groupId = 'THE ID OF THE GROUP YOU WANT TO RETRIEVE';
 
$collection = $product->getAttributes($groupId, false);
foreach($collection as $attribute){
//do something with the attribute
}
?> 

Source:
http://marius-strajeru.blogspot.com/2010/03/retrieve-attributes-by-groupid.html

Magento: Running script out side Magento Folder and Updating Project Database

Magento: Running script out side Magento Folder and Updating Project Database

Magento: Running script out side Magento Folder and Updating Project Database

Place this script ‘image.php’ out side magento folder and run this with http://yoursite/image.php, this will update all product images if there is no small or thumbnail image.
It will make first image as thumb and small image.

An example to run script out side magento folder.

require ‘app/Mage.php’;
Mage::app();

$products = Mage::getModel(‘catalog/product’)->getCollection()->addAttributeToSelect(‘*’);
foreach ($products as $product) {
 if (!$product->hasImage()) continue;
 if (!$product->hasSmallImage()) $product->setSmallImage($product->getImage());
 if (!$product->hasThumbnail()) $product->setThumbnail($product->getImage());
 $product->save();
}

Magento: Showing Breadcrumbs Anywhere in Magento

In Magento, by default there is a reference place where breadcrumbs get showed, that is just above the content reference! But, sometimes you need to show the breadcrumbs twice! above and below the content. Or sometimes you just need to show the breadcrumbs inside the content, due to some designing issue! I’ve gone through these situation a lot, and thought why not post a solution in my blog?
Here’s the “magic code” for breadcrumbs to show anywhere in Magento

<?php  echo $this->getLayout()->getBlock("breadcrumbs")->toHtml()?>

Its very simple, it just gets the block breadcrumbs defined in page.xml and echoes it as html.
Happy coding!