首页 | 摘要显示 | 上一页 1 2 3 4 5 6 7 8 9 下一页

Weblog Archives

September 30, 2006

如何泡制具有缓存功能的MT查询模块?

    将Search.pm拷贝成NewSearch.pm.

    将NewSearch.pm中的所有"MT::App::Search"替换成"MT::App::NewSearch".

    在execute这个子函数前面加一个函数:

sub getCacheFileName {
    my($str) = @_;
    $str =~ s!(.)!uc sprintf "%02x", ord($1)!eg;
    $str;
}

    在execute函数的前面部份加上如下红色部份代码:

    return $app->error($app->errstr) if $app->errstr;
    my $cachefile = ($ENV{MT_HOME} ? "$ENV{MT_HOME}/searchcache" : 'searchcache')
              ."/tags_".$app->param("blog_id")."_"
              .getCacheFileName($app->param("search")).".txt";
    if ($app->param("blog_id") && $app->{searchparam}{Type} eq 'tag')
    {
       if (-e $cachefile)
       {
         if( (time() - ((stat $cachefile)[9])) < (3600 * 48))
         {
           open IMGOUT, "<".$cachefile;
           binmode IMGOUT;
           my $res = "";
           my $text = <IMGOUT>;
           while ($text){
             $res .= $text;
             $text = <IMGOUT>;
           }
           close IMGOUT;  
           return $res;
         }
       }
    }

    在execute函数的最后部份加上如下红色部份代码:

    if ($app->param("blog_id") && $app->{searchparam}{Type} eq 'tag')
    {
       open IMGOUT, ">".$cachefile;
       print IMGOUT $res;
       close IMGOUT;
    }
        
    $res;

    当MT的版本更新后, 请大家自已泡制具有缓存功能的MT查询模块吧!

October 17, 2006

Lilina 0.9 Beta3发布, 对于中文有一个地方一定要改.

    今天听Fenng说要将cnoug.net从Planet换到Lilina, 我便建议做成Che Dong的首页那样的. Fenng说他不会改程序, 于是我就下载了Lilina的最新版(到0.9 Beta3了), 进行了相应的改动, 以便Fenng可以很方便地使用.

    至少有一处是一定要改的, 否则标题会显示不了汉字, 请在index.php中查找以下两行:

$href = htmlentities($href);
$title = htmlentities($title);

    需要将下面的一行注释掉, htmlentries还不支持中文件, 因此这样做会使标题出现乱码. 改成如下:

$href = htmlentities($href);
// $title = htmlentities($title);

    其他的话, 还进行了静态HTML缓存. 并且改成只有当天的文章可以展开内容进行在线阅读, 以减少HTML长度, 增加访问速度.

November 29, 2006

解决Lilina不能显示网站图标的问题

    我的站点架在DreamHost上面, 发现基于Lilina的RSS页面中, 不能显示每个订阅的网站的favicon.ico图标, 昨晚研究了一会, 终于搞明白了什么问题, 并改了一下代码搞定这个问题.

    问题应当是由DreamHost重新编译或升级了他们的PHP引起的, 在编译过程中他们指定了allow_url_fopen为false, 这样的话PHP函数get_file_contents函数就不能打开url来取得别人网站上的图标了, 通过改成用curl来实现抓取功能就可以了.

    打开lib.php文件, 找到channelFavicon函数, 将下面的两行:

if (!($data = @file_get_contents($ico_url)))
        $data=$empty_ico_data ;
if (stristr($data,'html')) $data=$empty_ico_data ;

    替换为:

$ch = curl_init($ico_url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
if (!$data) $data=$empty_ico_data ;
if (stristr($data,'html')) $data=$empty_ico_data ;

    DreamHost作此改变应当是为安全考虑吧!

为站点制作favicon, 显示在浏览器中.

    在IE等众多的浏览器访问很多网站时地址栏的最左边会显示一个小图标, 这个图标称为favicon. 设计一个好的favicon可以加深访问者对于网站的印象, 今天我就为自已的主页重新设计了一个favicon.

    我取AnySQL中的AQ两个字母来做标图, 运行Photoshop CS, 建一个120x120像素的图象, 然后分两个图层输入A和Q两个字母, 只要你机器上字体装得多一些, 分别调整字体和大小, 就可以设计出不错的标志了.

    当你完成作图后, 生成一个JPG文件, 然后点击这儿在线转换成ico文件, 只要将转换出来的"favicon.ico"拷贝到网站的根目录下就可以了, 再打开浏览器就可以发现有一个小图标出现了.

    今天还随便为Eylge.com作了一个图标(), 可以上他主页去看看. 这可是我第一次用Photoshop来创作, 以前只是用来调整数码照片的大小.

    也试着做了一个Fenng的(), 不过他还没有看呢.

November 30, 2006

对Lilina作了很多更新, 新版已可下载.

    很多网站都搞了RSS聚合页面, 用来显示来自不同站点的更新文章, 如CheDong.com就用聚合页面作了首页. 另外Eygle.com, Fenng都有自已的聚合页面, 他们两个最开始用Lilina的, 我就是从他们那儿知道Lilina这东西的, 但一度废掉它, 只有我坚持用Lilina打造我的RSS新闻页面. 在对Linina作了很多改进后, 访问速度得以大大提升, 他们两个重新选择了Lilina.

    这两天晚上为了CNOUG.net, Fenng提出了不少的更改意见, 由我负责进行代码更新, 主要包括以下内容:

1, 解决图标不能显示的问题
2, 提供阅读历史功能

    此外, 同上一个改进的版本比, 还修复了一些Bug, 到现在已经比较成熟了. IamDBA.com和我的RSS新闻页面有36个订阅, 访问也不慢吧.

    我还为我自已建了一个Lilina的测试页面, 只有两个订阅, 用于我调试程序.

    点击这儿下载最新版本的Lilina程序, 轻松建立你自已的主页.

    更新: 如何升级Lilina? 在升级时要将".myfeeds.data"和".time.data"文件备份, 同时备份conf.php文件, 然后解压缩文件就可以了.

上一页 1 2 3 4 5 6 7 8 9 下一页

当前分类: Weblog

Creative Commons License
本站版权: 共用创作 CC
署名-非商业性-相同方式分享
本站基于MT-3.36免费版
(©)版权所有, 2004 - 2008, www.AnySQL.net, 保留所有权利.
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql