-<%
+<SELECT NAME="<% $prefix %>_month" SIZE="1" <% $disabled%>>
+<% $empty ? '<OPTION VALUE="">' : '' %>
+% foreach ( 1 .. 12 ) {
+
+ <OPTION<% $_ == $mon ? ' SELECTED' : '' %> VALUE="<% sprintf('%02d', $_) %>"><% $mon[$_-1] %></OPTION>
+% }
+
+</SELECT>/<SELECT NAME="<% $prefix %>_year" SIZE="1" <% $disabled%>>
+
+<% $empty ? '<OPTION VALUE="">' : '' %>
+% for ( $start_year .. $end_year ) {
+
+ <OPTION<% $_ == $year ? ' SELECTED' : '' %> VALUE="<% $_ %>"><% $_ %></OPTION>
+% }
+
+</SELECT>
+
+<%init>
my %opt = @_;
my $prefix = $opt{'prefix'} || '';
my $disabled = $opt{'disabled'} || '';
my $empty = $opt{'empty_option'} || '';
- my $date = $opt{'selected_date'} || '';
- $date = '' if $date eq '-';
- #$date ||= '01-2000' unless $empty;
my $start_year = $opt{'start_year'};
my $end_year = $opt{'end_year'} || '2037';
- my( $mon, $year ) = (0, 0);
+ my @mon;
+ if ( $opt{'show_month_abbr'} ) {
+ @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
+ # XXX: localization
+ } else {
+ @mon = ( ( map "0$_", 1 .. 9 ), 10 .. 12 ),
+ }
+
+ my $date = $opt{'selected_date'} || '';
+ $date = '' if $date eq '-';
+
+ my $mon = $opt{'selected_mon'} || 0;
+ my $year = $opt{'selected_year'} || 0;
if ( $date ) {
if ( $date =~ /^(\d{4})-(\d{1,2})-\d{1,2}$/ ) { #PostgreSQL date format
( $mon, $year ) = ( $2, $1 );
}
$start_year = $year if $start_year > $year && $year > 0;
-%>
-
-<SELECT NAME="<%= $prefix %>_month" SIZE="1" <%= $disabled%>>
-
-<%= $empty ? '<OPTION VALUE="">' : '' %>
-
-<% for ( 1 .. 12 ) { %>
- <OPTION<%= $_ == $mon ? ' SELECTED' : '' %> VALUE="<%= $_ %>"><%= $_ %>
-<% } %>
-
-</SELECT>/<SELECT NAME="<%= $prefix %>_year" SIZE="1" <%= $disabled%>>
-
-<%= $empty ? '<OPTION VALUE="">' : '' %>
-
-<% for ( $start_year .. $end_year ) { %>
- <OPTION<%= $_ == $year ? ' SELECTED' : '' %> VALUE="<%= $_ %>"><%= $_ %>
-<% } %>
-
-</SELECT>
-
+</%init>