HTML-FormEngine
view release on metacpan or search on metacpan
FormEngine/Skin.pm view on Meta::CPAN
#--------- INTERNAL SUBROUTINES -------#
sub _init {
my $self = shift;
$self->{templ} = $self->_get_templ;
$self->{handler} = $self->_get_handler;
$self->{default} = $self->_get_default;
#templates which represent hidden fields should be handled special so that they don't use any visible space
#all templates referenced from $self->{hidden} are handled like that
$self->{hidden} = $self->_get_hidden;
$self->{check} = $self->_get_check;
##$self->{text_skin} = $self->_get_text_skin;
$self->{confirm_skin} = $self->_get_confirm_skin;
$self->{not_null_string} = $self->_get_not_null_string;
$self->_init_child();
}
sub _init_child {
}
sub _textdomain {
my($self, $textdomain) = @_;
bindtextdomain("HTML-FormEngine", $textdomain||'/usr/share/locale');
textdomain("HTML-FormEngine");
}
sub _get_templ {
my %templ;
$templ{_text} = '<input type="<&TYPE&>" value="<&#value&>" name="<&NAME&>" id="<&ID&>" maxlength="<&MAXLEN&>" size="<&SIZE&>" <&#readonly&> <&TEXT_XP&>/>';
$templ{_button} = '<button type="<&TYPE&>" value="<&VALUE&>" name="<&NAME&>" id="<&ID&>" <&BUTTON_XP&>/>';
$templ{_radio} = '<input type="radio" value="<&OPT_VAL&>" name="<&NAME&>" id="<&ID&>" <&#checked&> <&RADIO_XP&>/><&OPTION&>';
$templ{_select} = '
<select size="<&SIZE&>" name="<&NAME&>" id="<&ID&>" <&#multiple&> <&SELECT_XP&>><&_option&>
</select>';
$templ{_select_optgroup} = '
<select size="<&SIZE&>" name="<&NAME&>" id="<&ID&>" <&#multiple&> <&SELECT_XP&>><&_optgroup&>
</select>';
$templ{_select_flexible} = '
<select size="<&SIZE&>" name="<&NAME&>" id="<&ID&>" <&#multiple&> <&SELECT_XP&>><~ <&TEMPL&> ~TEMPL~>
</select>';
$templ{_optgroup} = '<~
<optgroup label="<&OPTGROUP&>" <&OPTGROUP_XP&>><&_option&>
</optgroup>~OPTGROUP OPTION OPT_VAL~>';
$templ{optgroup} = '<&_optgroup&>';
$templ{optgroup_flexible} = '
<optgroup label="<&OPTGROUP&>" <&OPTGROUP_XP&>><~ <&TEMPL&> ~TEMPL~>
</optgroup>';
$templ{_option} = '<~
<option value="<&OPT_VAL&>" label="<&OPTION&>" <&#checked selected&> <&OPTION_XP&>><&OPTION&></option> ~OPTION OPT_VAL~>';
$templ{option} = '<&_option&>';
$templ{_check} = '<input type="checkbox" value="<&OPT_VAL&>" name="<&NAME&>" id="<&ID&>" <&#checked&> <&CHECKBOX_XP&>/><&OPTION&>';
$templ{_textarea} = '<textarea name="<&NAME&>" id="<&ID&>" cols="<&COLS&>" rows="<&ROWS&>" <&#readonly&> <&TEXTAREA_XP&>><&#value&></textarea>';
$templ{_hidden} = '<input type="hidden" name="<&NAME&>" id="<&ID&>" value="<&#value&>" <&HIDDEN_XP&>/>';
$templ{hidden} = '<&_hidden&>';
$templ{_fieldset} = '
<fieldset>
<legend><&LEGEND&></legend>
<table border=0><~
<tr><&TEMPL&></tr>~TEMPL~>
</table>
</fieldset>';
$templ{_templ} = '<~<&TEMPL&>~TEMPL~>';
$templ{_print} = '<&#value -,1&><input type="hidden" name="<&NAME&>" value="<&#value&>" />';
$templ{_print_option} = '<~
<&OPTION&><!<input type="hidden" value="<&OPT_VAL&>" name="<&NAME&>" />!OPT_VAL NAME!> ~OPTION OPT_VAL~>';
return \%templ;
}
sub _get_default {
my %default;
$default{_text} = {TYPE => 'text', SIZE => 20};
$default{_radio} = {};
$default{_select} = {};
$default{_check} = {};
$default{optgroup} = {};
$default{option} = {};
$default{_select_optgroup} = {};
$default{_textarea} = {COLS => 27, ROWS => 10};
$default{_button} = {TYPE => 'button'};
$default{main} = {
ACTION => $ENV{REQUEST_URI},
METHOD => 'post',
ACCEPT => '*',
ENCTYPE => 'application/x-www-form-urlencoded',
TARGET => '_self',
CONFIRMSG => 'Are you really sure, that you want to submit the following data?',
CONFMSG_ALIGN => 'center',
CANCEL => 'Cancel',
CONFIRMED => 'confirmed',
CONFIRM_CANCEL => 'confirm_cancel',
SEPVAL => md5_hex('F02r23m234E345n42g6i46ne%$'),
FORM_ALIGN => 'center',
SUBMIT_ALIGN => 'right',
CANCEL_ALIGN => 'left',
FORM_TABLE_BORDER => 0,
FORM_TABLE_CELLSP => 1,
FORM_TABLE_CELLPAD => 1,
};
$default{default} = {
templ => 'text',
TITLE => '<&NAME&>',
#NAME => '<&TITLE&>',
ID => '<&NAME&>',
NAME => '<&ID&>',
OPT_VAL => '<&OPTION&>',
OPTION => '<&OPT_VAL&>',
SUBMIT => 'Ok',
FORMNAME => 'FormEngine',
TITLE_ALIGN => 'left',
TITLE_VALIGN => 'top',
TABLE_BORDER => 0,
TABLE_CELLSP => 0,
TABLE_CELLPAD => 0,
TD_VALIGN => 'top',
TABLE_BORDER_IN => 0,
TABLE_CELLSP_IN => 0,
TABLE_CELLPAD_IN => 0,
( run in 1.171 second using v1.01-cache-2.11-cpan-39bf76dae61 )