XAO-Web
view release on metacpan or search on metacpan
lib/XAO/DO/Web/Utility.pm view on Meta::CPAN
sub show_base_url ($;%) {
my $self=shift;
$self->textout($self->base_url(@_));
}
###############################################################################
=item 'number-ordinal-suffix' => number_ordinal_suffix (%)
Displays a two-letter suffix to make a number into an ordinal, i.e. 2
into "2-nd", 43 into "43-rd", 1001 into "1001-st" and so on.
Takes one argument -- 'number'.
=cut
sub number_ordinal_suffix ($%) {
my $self=shift;
my $args=get_args(\@_);
use integer;
my $number=int($args->{number} || 0);
$number=-$number if $number<0;
$number=$number % 100;
my $nl=$number%10;
my $suffix;
if(($number>10 && $number<20) || $nl==0 || $nl>3) {
$suffix='th';
}
elsif($nl == 1) {
$suffix='st';
}
elsif($nl == 2) {
$suffix='nd';
}
elsif($nl == 2) {
$suffix='nd';
}
else {
$suffix='rd';
}
$self->textout($suffix);
}
###############################################################################
=item 'show-pagedesc' => show_pagedesc (%)
Displays value of pagedesc structure (see L<XAO::Web>) with the given
"name". Default name is "fullpath". Useful for processing tree-to-object
mapped documents.
=cut
sub show_pagedesc ($) {
my $self=shift;
my $args=get_args(\@_);
my $name=$args->{name} || 'fullpath';
$self->textout($self->clipboard->get('pagedesc')->{$name} || '');
}
###############################################################################
=item 'select-time-range' => select_time_range(%)
Displays a list of <OPTION ...> tags for the given time range.
Exact output depends on "type" argument that can be:
=over
=item "days"
Lists days of month from optional "start" day (default is "1") to
optional "end" day (default is the number of days in the current month).
=item "quorters"
Two optional arguments "start" and "end" set start and end date for the
time range. The format is YYYY-Q, where YYYY is a year in four digits
format and Q is quarter number from 1 to 4.
If "end" is not set the current quorter is assumed.
=over
Special argument "current" will have select_time_range() add "SELECTED"
option to the appropriate entry in the final list. The format is the
same as for "start" and "end".
Default sorting is from most recent down, but this can be changed with
non-zero "ascend" argument.
Example:
<SELECT NAME="qqq">
<%Utility mode="select-time-range"
type="quarters"
start="2000-1"
current="2000-3"%>
</SELECT>
Would produce something like:
<SELECT NAME="qqq">
<OPTION VALUE="2001-1">2001, 1-st Qtr
<OPTION VALUE="2000-4">2000, 4-th Qtr
<OPTION VALUE="2000-3" SELECTED>2000, 3-rd Qtr
<OPTION VALUE="2000-2">2000, 2-nd Qtr
<OPTION VALUE="2000-1">2000, 1-st Qtr
</SELECT>
=cut
sub select_time_range ($%) {
my $self=shift;
my $args=get_args(\@_);
my $type=$args->{type};
( run in 2.318 seconds using v1.01-cache-2.11-cpan-81fc1098f69 )