WordPress Logo

Turn Off Analytics In Preview Mode With Wordpress

3rd June 2008 - 3 minutes read time

The preview mode in Wordpress exists to allow you to see how a post will look before you publish it to your site. This is an important feature if you have lots of readers as once your click that publish button your post will be live and your RSS feed will be pinged out to lots of different services. Previewing a post can avoid embarrassing spelling or formatting errors before the post goes live.

Preview uses the same templates files as your blog and so will load all of the same files as if you normally view your site. The only small issue with this mechanism is that any analytics code you might have installed will be run as well and you might see that you most visited pages are you previewing posts before putting them live.

Of course you could just filter out your IP address in your analytics, but if your Wordpress blog has lots of different authors writing content from many different locations it is unfeasible to continuously edit your analytics settings.

Read the full article

PHP Logo

Remove Blank Entries From An Array With PHP

2nd June 2008 - 4 minutes read time

If you have an array that you want to remove any null data items from then you can use the following function. It will create a new array and only copy across items from the existing array if they contain a value. If the value is an array the function calls itself and makes sure that the returned array contains something before adding it to the new array.


function array_purge_empty($arr) {
 $newarr = array();
 foreach ($arr as $key => $val) {
  if (is_array($val)) {
   $val = array_purge_empty($val);
   // does the result array contain anything?
   if (count($val) != 0) {
    $newarr[$key] = $val;
   }
  } else {
   if (trim($val) != "") {
    $newarr[$key] = $val;
   }
  }
 }
 return $newarr;
}

Here is an example of the function in action.

Read the full article

PHP Logo

Getting An Excerpt Of Text With PHP

1st June 2008 - 5 minutes read time

I have talked before about truncating strings to include whole words, but what if you want to have complete sentences? The following function will truncate a string the number of words specified and until the sentence ends.

function excerpt($paragraph, $limit)
{
 $tok = strtok($paragraph, " ");
 while ($tok !== false) {
  $text .= " ".$tok;
  $words++;
  if (($words >= $limit) && ((substr($tok, -1) == "!") || (substr($tok, -1) == ".") || (substr($tok, -1) == "?"))) {
   break;
  }
  $tok = strtok(" ");
 }
 return ltrim($text);
}

Using this function you can create an excerpt of any text you want, as long as it has a sentence in it. Take the following section of text.

Read the full article

PHP Logo

Work Out The Number Of Days Before A Date

31st May 2008 - 2 minutes read time

Use the following function to work out the number of days between today and a date in the future. The function takes three parameters of the day, month and year of the date in question.

<?php
function dateDifference($day, $month, $year)
{
 return (int)((mktime (0, 0, 0, $month, $day, $year) - time(void))/86400);
}
?>

To use this function just give it a date, here are some examples.

echo dateDifference(13,07,2008); // 42
echo dateDifference(01,01,2010); // the next "binary date" = 579
echo dateDifference(25,12,2010); // 937

 

Read the full article

PHP Logo

Controlling Error Reporting On Different Servers With PHP

30th May 2008 - 2 minutes read time

Having a testing server is quite a common practice, but what happens when you want to go live and you don't want all of your error messages displayed?

A good way of doing this is to create a variable that you can then use to detect what server your code is running on and set your error displaying accordingly. The following section of code will set a variable to true if the code is not running on the server name www.hashbangcode.com. This variable is then used to set the error reporting level.

<?php
 $turnOnErrors = $_SERVER['SERVER_NAME'] != 'www.hashbangcode.com';
 
 if ( $turnOnErrors ) {
  error_reporting(E_ALL);
  ini_set('display_errors', 1);
 } else {
  error_reporting(0);
  ini_set('display_errors', 0);
 }
?>

 

Read the full article

PHP Logo

Transform Text Links Into Anchors

28th May 2008 - 2 minutes read time

Using the strip_tags() function on any user generated input should be common practice in order to stop users putting in odd bits of HTML and messing up your nicely coded HTML. You might want to allow anchor tags to be used, which is fine, but some users might use this to include onmouseover and other events in order to run JavaScript annoyances on the page.

So after stripping all tags from your text you can then run the following function to turn any links into anchor elements. This will work with any plain text that you want to use it on.

Read the full article

JavaScript Logo

JavaScript To Stop Frames

27th May 2008 - 2 minutes read time

The following section of JavaScript will detect if anyone is viewing your page in a frame. If they are then the code will redirect them to your site. It essentially stops people using frames to poach your content and stops online proxy software from viewing your site.

if (top.location != location) {
 top.location.href = document.location.href;
}

All you have to do is include this code either in your script tag or your JavaScript includes. Quite a neat little trick really.

Read the full article

PHP Logo

Very Simple PHP Visit Counter

26th May 2008 - 3 minutes read time

To create a simple PHP visit counter you will need to create a plain blank text file called counter.txt.

Put the following two functions into a file and include it at the top of any page that you want to have counted.

The loadCounter() function.
function loadCounter()
{
 if ( file_exists('counter.txt') ) {
  $n = file_get_contents('counter.txt');
  return intval($n);
 }
 return 0;
}

The updateCounter() function.

function updateCounter($i=1)
{
 
 $n = loadCounter();
 $n += $i;
 
 $fp = fopen('counter.txt',"w+");
 fwrite($fp, $n);
 fclose($fp);
 
 return $n;
}

The two functions work together to create the counter. If you only want to display the number of times that a page has been visited then just call the loadCounter() function.

Read the full article

PHP Logo

List All Files In A Directory By Creation Date

25th May 2008 - 3 minutes read time

The following function takes a path as an argument and produces an array of files ordered by their timestamp. The array values are the filename and the array keys are the timestamps. In order to prevent two files that have the same timestamp overwriting each other when the array keys are created with a random number. If two files where created at the same time the least that will happen is that they will swap places every time the array is created as the random number will be different.


function listDirectoryByDate($path) {
 $dir = opendir($path);
 $list = array();
 while ($file = readdir($dir)) {
  if ($file != '.' && $file != '..' && !is_dir($file)) {
   $ctime = filectime($path.$file) . rand(1000,9999);
   $list[$ctime] = $file;
  }
 }
 closedir($dir);
 krsort($list);
 return $list;
}

To use the function to print out all of the files in the current directory use the following code.

Read the full article

JavaScript Logo

Assign Or Get Class Name Attribute With JavaScript

24th May 2008 - 3 minutes read time

To get the class of an element with JavaScript you use the className property of the element object. Take the following section of HTML code.


<div id="adiv" class="theClass">some text</div>

Use the following bit of code to print off the class name of the div element in a message box.


alert(document.getElementById('adiv').className);

To set the class name to something else you can use the same property, but in this case just pass it a value. The following example changes the class name of the div element to 'newClass'.

Read the full article