编写第一个Moveable Type的插件 -- 随机数

    今天想将带编号的图片随机地显示在模板上, 于是就想写一插件来实现, 在看了几个现有的几个插件代码后, 就开始写起来. 插件名为"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)

不错,有点意思:)

升级到MT 3.34了.

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • It was a terrible experience.
  • 那是一次可怕的经历.
  • I am on top of the world.
  • 我高兴到了极点.
  • The dinner was wonderful.
  • 晚餐棒极了.
  • The Christmas tree is gorgeous.
  • 圣诞树真华美.
  • What a boring movie it is!
  • 多么无聊的一场电影啊.