TaskFreak! v0.6.2 – Tweaking Priority Menu

Background Knowledge


For some reason or another the priority menu in the edit task panel is not wide enough and therefore it cuts off the priority names. This can be easily fixed by modifying some inline CSS. Yes I agree this should be done within the skin’s CSS file, however there is nothing present in the CSS file to alter that I could find.

Continue reading

TaskFreak! v0.6.2 – Add My Projects List

Background Knowledge


TaskFreak! presently does not have a means via the web interface to present a complete list of tasks for which the current user is the project leader. I will show you how to add “My Projects” list based on bpiper’s solution with a slight difference. My solution is almost identical to bpiper’s but with a different approach to continue support of the supported interface languages. To do this each supported language file will require to be edited.

Thanks to bpiper for posting your solution.

Continue reading

Pear::Date Returned Timezone is Wrong

Background Knowledge


I’m trying to determine the difference in minutes between two timestamps. I’m using Pear::Date to do this. The issue comes into play when I noticed that the wrong timezone was being used by Pear::Date, UTC. If I do not use Pear::Date the timezone is set correctly.

I have tried using date_default_timezone_set() and it does set the timezone back, however I feel this shouldn’t be necessary as the default timezone should be used. I have been using date_default_timezone_get() to determine what timezone is being used.

It’s my understanding that Pear::Date uses UTC when it is unable to determine the default timezone. As far as I know I have the default timezone set correctly and with a valid ID (see below). I was able to determine that the timezone changed from my default timezone to UTC after I used Date::setFromDateDiff(). This does not seem right at all.

I have checked the following.

  • Pear v1.7.2 stable
  • Pear::Date v1.4.7 stable
  • php.ini (default timezone) – date.timezone = “Canada/Saskatchewan”
  • phpinfo() – Correct configure file being loaded, /var/www/conf/php.ini.
  • phpinfo() – Under Date, date/time support is enabled.
  • phpinfo() – Default timezone – Canada/Saskatchewan
  • phpinfo() – date.timezone - Canada/Saskatchewan / Canada/Saskatchewan

PHP Code Test Case


1
2
3
4
5
6
7
8
9
require_once("Date.php");
 
$obFirstDate = new Date('20081014155640');
$obSecondDate = new Date(date("YmdHis",time()));
 
$obDateSpan = new Date_Span();
$obDateSpan->setFromDateDiff($obFirstDate, $obSecondDate);
echo (int)$obDateSpan->toMinutes();
echo "<br />".date_default_timezone_get();

Solution – Unknown


Does anyone have any suggestions where to look or what to do to fix this problem?

Using short if statement in programming

In many programing languages it is possible to shorten if statements using what’s called the ternary operator. It is sometimes referred as the “one line if statement” or the “short if statement”. This can help at times to produce cleaner code, however use this operator wisely as it is not always best to be used for more complicated statements.

PHP Example of an if statement


1
2
3
4
5
6
7
8
if($nFoo > 0)
{
   echo "I'm at the work.";
}
else
{
   echo "I'm at home.";
}

PHP Example using the ternary operator


1
echo $nFoo > 0 ? "I'm at the work." : "I'm at home.";

The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE.

Source: Wikipedia on Ternary Operator
Source: PHP Manual: Comparison Operators

How To – Pad Zeros (prefix or suffix)

Background Knowledge


There is certain times when one needs to pad zeros to the beginning (prefix) or ending (suffix) of a integer.

Below is what I came up with for a solution in JavaScript. All one has to do is call the function with the integer value, the length (integer) of the padding and position to place the padding. Use “start” for the prefix or use “end” for the suffix. Please lets see some comments on how to improve this small block of code.

Solution


1
2
3
4
5
6
7
8
9
10
11
function fnPaddingZeros(nInterger,nPaddingLength,szPaddingPos)
{
	//convert integer to string
	nInterger=nInterger.toString();
	while(nInterger.length < nPaddingLength)
	{
		if(szPaddingPos == "start") { nInterger = '0' + nInterger; }
		else if(szPaddingPos == "end") { nInterger = nInterger + '0'; }
	}
	return nInterger;
}