Konfabulator’s PIM Overview Bug
Monday, 3. October 2005, 11:37:18
注:刚才上Konfabulator的论坛,发现已经有人解决了这个问题:)
http://www2.konfabulator.com/forums/index.php?showtopic=10235
国庆到了,七天的长假,长春照旧是风和日丽,人的心情也就跟着舒畅起来了。不过碰到了两件不爽之事,一件是工资信用卡到期被自动取款机吞了,另外一 件事情就是一直在用的Konfabulator的PIM OverView突然不工作了,明明Outlook中的日历有记录,它就是不显示。
头一件事情自己没有办法,只能等国庆结束后重新办一个了。第二件事情倒是可以尝试一下自己解决。
首先祭起Google大法,满世界的找寻看看有没有人碰到这个问题并解决了,找了很长时间也没有结果,于是尝试自己解决了。
首先看看错误规律:9月30日的数据都能显示,就是10月1日和以后的数据都不显示了,奇怪的毛病。
接下来就是查看源码了。
首先在“My Widgets”目录中找到“PIM Overview.widget”文件,将其改名为“PIM Overview.zip”,然后解压缩。压缩文件中所有文件如下:
[.] [..] getPrefData.pl [Images]
Info.plist License.txt outlook.js PIMp.kon
rrule.js timeZone.js vCalParser.js
8 个文件 130,293 字节
3 个目录 1,274,998,784 可用字节
估计需要关注的是“PIMP.kon”和“outlook.js"这两个文件。经过辛苦的搜索,命中要害。
解决方法:
修改PIMP.kon中的MakeDateKey函数,将”date.getMonth() <= 9“改为”date.getMonth() < 9“,问题解决。
附:PIMP.kon的MakeDateKey函数
//———————————————————————-
// MakeDateKey
//———————————————————————-
// Creates a date key for use storing calendar data out of a JS Date.
//
function MakeDateKey( date )
{
var dateKey = String( date.getFullYear() );
if ( date.getMonth() <= 9 )
dateKey += "0";
dateKey += String( date.getMonth() + 1 );
if ( date.getDate() < 10 )
dateKey += "0";
dateKey += String( date.getDate() );
return dateKey;
}
http://www2.konfabulator.com/forums/index.php?showtopic=10235
国庆到了,七天的长假,长春照旧是风和日丽,人的心情也就跟着舒畅起来了。不过碰到了两件不爽之事,一件是工资信用卡到期被自动取款机吞了,另外一 件事情就是一直在用的Konfabulator的PIM OverView突然不工作了,明明Outlook中的日历有记录,它就是不显示。
头一件事情自己没有办法,只能等国庆结束后重新办一个了。第二件事情倒是可以尝试一下自己解决。
首先祭起Google大法,满世界的找寻看看有没有人碰到这个问题并解决了,找了很长时间也没有结果,于是尝试自己解决了。
首先看看错误规律:9月30日的数据都能显示,就是10月1日和以后的数据都不显示了,奇怪的毛病。
接下来就是查看源码了。
首先在“My Widgets”目录中找到“PIM Overview.widget”文件,将其改名为“PIM Overview.zip”,然后解压缩。压缩文件中所有文件如下:
[.] [..] getPrefData.pl [Images]
Info.plist License.txt outlook.js PIMp.kon
rrule.js timeZone.js vCalParser.js
8 个文件 130,293 字节
3 个目录 1,274,998,784 可用字节
估计需要关注的是“PIMP.kon”和“outlook.js"这两个文件。经过辛苦的搜索,命中要害。
解决方法:
修改PIMP.kon中的MakeDateKey函数,将”date.getMonth() <= 9“改为”date.getMonth() < 9“,问题解决。
附:PIMP.kon的MakeDateKey函数
//———————————————————————-
// MakeDateKey
//———————————————————————-
// Creates a date key for use storing calendar data out of a JS Date.
//
function MakeDateKey( date )
{
var dateKey = String( date.getFullYear() );
if ( date.getMonth() <= 9 )
dateKey += "0";
dateKey += String( date.getMonth() + 1 );
if ( date.getDate() < 10 )
dateKey += "0";
dateKey += String( date.getDate() );
return dateKey;
}

