今天想将带编号的图片随机地显示在模板上, 于是就想写一插件来实现, 在看了几个现有的几个插件代码后, 就开始写起来. 插件名为"RandomDigit", 用法如下:
<$MTRandomDigit min=... max=... width=... $>
min : the minimum random value, default 0.
max : the maximum random value, default 10.
width : the digit count (zero prefixed), default 0.
今天我还没有更改模板, 过几个改一下模板来试用一下这个我自已开发的插件. 源代码如下:
# Copyright (c) 2007, Fangxin Lou. (http://www.anysql.net/)
use MT::Template::Context;
MT::Template::Context->add_tag(RandomDigit => \&get_random_digit );
sub get_random_digit
{
my ($ctx, $args) = @_;
my $max_num = $args->{max};
my $min_num = $args->{min};
my $width = $args->{width};
$max_num=10 unless ($max_num);
$min_num=0 unless ($min_num);
$width =0 unless ($width);
my $val = 0;
if ($width)
{
$val = sprintf("%0${width}d",($min_num+(rand(($max_num - $min_num) * 20)/20)));
}
else
{
$val = sprintf("%d",($min_num+(rand(($max_num - $min_num) * 20)/20)));
}
scalar $val;
}
1;
至于如何放置插件, 我在这儿就不讲了.
留言 (2)
不错,有点意思:)
Posted by eygle | Jan 18, 2007 1:47 PM
升级到MT 3.34了.
Posted by anysql | Jan 18, 2007 1:59 PM