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 )