[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
perpustakaan
/
simbio2
/
simbio_GUI
/
form_maker
/
[
Home
]
File: simbio_form_element.inc.php
<?php /** * simbio_form_element * Collection of Form Element Class * * Copyright (C) 2007,2008 Arie Nugraha (dicarve@yahoo.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ // be sure that this file not accessed directly if (!defined('INDEX_AUTH')) { die("can not access this file directly"); } elseif (INDEX_AUTH != 1) { die("can not access this file directly"); } /* abstract form element class to be inherited by form element classes */ abstract class abs_simbio_form_element { public $element_type = 'text'; public $element_name = ''; public $element_value; public $element_options; public $element_attr = ''; public $element_css_class = ''; public $element_disabled = false; public $element_helptext = ''; /** * Below method must be inherited * * @return string */ abstract protected function out(); } /* Text field object */ class simbio_fe_text extends abs_simbio_form_element { public function out() { $_buffer = ''; if (!in_array($this->element_type, array('textarea', 'text', 'password', 'button', 'file', 'hidden', 'submit', 'button', 'reset', 'date'))) { return 'Unrecognized element type!'; } // check if disabled if ($this->element_disabled) { $_disabled = ' disabled="disabled"'; } else { $_disabled = ''; } if ($this->element_helptext) { $this->element_attr .= ' title="'.$this->element_helptext.'"'; } // maxlength attribute if (!stripos($this->element_attr, 'maxlength')) { if ($this->element_type == 'text') { $this->element_attr .= ' maxlength="256"'; } else if ($this->element_type == 'textarea') { $this->element_attr .= ' maxlength="'.(30*1024).'"'; } } // sanitize name for ID $_elID = str_replace(array('[', ']', ' '), '', $this->element_name); // checking element type if ($this->element_type == 'textarea') { $_buffer .= '<textarea name="'.$this->element_name.'" id="'.$_elID.'" '.$this->element_attr.''.$_disabled.'>'; $_buffer .= $this->element_value; $_buffer .= '</textarea>'."\n"; } else if (stripos($this->element_type, 'date', 0) !== false) { $_buffer .= '<div class="dateField"><input class="dateInput" type="'.$this->element_type.'" name="'.$this->element_name.'" id="'.$_elID.'" '; $_buffer .= 'value="'.$this->element_value.'" '.$this->element_attr.''.$_disabled.' /><a class="calendarLink notAJAX" style="cursor: pointer;" onclick="javascript: dateType = \''.$this->element_type.'\'; openCalendar(\''.$_elID.'\');" title="Open Calendar"></a></div>'."\n"; } else { $_buffer .= '<input type="'.$this->element_type.'" name="'.$this->element_name.'" id="'.$_elID.'" '; $_buffer .= 'value="'.$this->element_value.'" '.$this->element_attr.''.$_disabled.' />'."\n"; } return $_buffer; } } /* Drop Down Select List object */ class simbio_fe_select extends abs_simbio_form_element { public function out() { // check for $array_option param if (!is_array($this->element_options)) { return '<select name="'.$this->element_name.'" '.$this->element_attr.'></select>'; } // check if disabled if ($this->element_disabled) { $_disabled = ' disabled="disabled"'; } else { $_disabled = ''; } if ($this->element_helptext) { $this->element_attr .= ' title="'.$this->element_helptext.'"'; } $_buffer = '<select name="'.$this->element_name.'" id="'.$this->element_name.'" '.$this->element_attr.''.$_disabled.'>'."\n"; foreach ($this->element_options as $option) { if (is_string($option)) { // if the selected element is an array then // the selected option is also multiple to if (is_array($this->element_value)) { $_buffer .= '<option value="'.$option.'" '.(in_array($option, $this->element_value)?'selected':'').'>'; $_buffer .= $option.'</option>'."\n"; } else { $_buffer .= '<option value="'.$option.'" '.(($option == $this->element_value)?'selected':'').'>'; $_buffer .= $option.'</option>'."\n"; } } else { if (is_array($this->element_value)) { $_buffer .= '<option value="'.$option[0].'" '.(in_array($option[0], $this->element_value)?'selected':'').'>'; $_buffer .= $option[1].'</option>'."\n"; } else { $_buffer .= '<option value="'.$option[0].'" '.(($option[0] == $this->element_value)?'selected':'').'>'; $_buffer .= $option[1].'</option>'."\n"; } } } $_buffer .= '</select>'."\n"; return $_buffer; } } /* AJAX drop down select list object */ class simbio_fe_AJAX_select extends abs_simbio_form_element { /** * AJAX drop down special properties */ public $handler_URL = 'about:blank'; public $element_dd_list_class = 'ajaxDDlist'; public $element_dd_list_default_text = 'SEARCHING...'; public $additional_params = ''; public function out() { $_buffer = '<input type="text" autocomplete="off" id="'.$this->element_name.'" name="'.$this->element_name.'" class="'.$this->element_css_class.' notAJAX" onkeyup="showDropDown(\''.$this->handler_URL.'\', \''.$this->element_name.'\', \''.$this->additional_params.'\')" value="'.$this->element_value.'" />'; $_buffer .= '<ul class="'.$this->element_dd_list_class.'" id="'.$this->element_name.'List"><li style="padding: 2px; font-weight: bold;">'.$this->element_dd_list_default_text.'</li></ul>'; return $_buffer; } } /* Checkbox button groups object */ class simbio_fe_checkbox extends abs_simbio_form_element { public function out() { // check for $this->element_options param if (!is_array($this->element_options)) { return 'The radio button options list must be an array'; } else { foreach ($this->element_options as $cbox) { // if the $cbox is not an array if (!is_array($cbox)) { return 'The radio button options list must be a 2 multi-dimensional array'; } } } $_elmnt_num = count($this->element_options); $_row_column = 5; $_helptext = ''; // check if disabled if ($this->element_disabled) { $_disabled = ' disabled="disabled"'; } else { $_disabled = ''; } if ($this->element_helptext) { $_helptext .= ' title="'.$this->element_helptext.'"'; } $_buffer = ''; if ($_elmnt_num <= $_row_column) { foreach ($this->element_options as $_cbox) { if (is_array($this->element_value)) { $_buffer .= '<div '.$_helptext.'><input type="checkbox" name="'.$this->element_name.'[]"' .' value="'.$_cbox[0].'" style="border: 0;" '.(in_array($_cbox[0], $this->element_value)?'checked':'').$_disabled.' />' .' '.$_cbox[1]."</div>\n"; } else { $_buffer .= '<div '.$_helptext.'><input type="checkbox" name="'.$this->element_name.'[]"' .' value="'.$_cbox[0].'" style="border: 0;" '.(($_cbox[0] == $this->element_value)?'checked':'').$_disabled.' />' .' '.$_cbox[1]."</div>\n"; } } } else { $_column_array = array_chunk($this->element_options, $_row_column); $_buffer = '<table '.$_helptext.'>'."\n"; $_buffer .= '<tr>'."\n"; foreach ($_column_array as $_chunked_options) { $_buffer .= '<td valign="top">'."\n"; foreach ($_chunked_options as $_cbox) { if (is_array($this->element_value)) { $_buffer .= '<div><input type="checkbox" name="'.$this->element_name.'[]"' .' value="'.$_cbox[0].'" style="border: 0;" '.(in_array($_cbox[0], $this->element_value)?'checked':'').$_disabled.' />' .' '.$_cbox[1]."</div>\n"; } else { $_buffer .= '<div><input type="checkbox" name="'.$this->element_name.'[]"' .' value="'.$_cbox[0].'" style="border: 0;" '.(($_cbox[0] == $this->element_value)?'checked':'').$_disabled.' />' .' '.$_cbox[1]."</div>\n"; } } $_buffer .= '</td>'."\n"; } $_buffer .= '</tr>'."\n"; $_buffer .= '</table>'."\n"; } return $_buffer; } } /* Radio button groups object */ class simbio_fe_radio extends abs_simbio_form_element { public function out() { // check for $this->element_options param if (!is_array($this->element_options)) { return 'The third argument must be an array'; } $_buffer = ''; // number of element in each column if (count($this->element_options) > 10) { $_elmnt_each_column = 4; } else { $_elmnt_each_column = 2; } $_helptext = ''; if ($this->element_helptext) { $_helptext .= ' title="'.$this->element_helptext.'"'; } // chunk the array into pieces of array $_chunked_array = array_chunk($this->element_options, $_elmnt_each_column, true); $_buffer .= '<table '.$_helptext.'>'."\n"; $_buffer .= '<tr>'."\n"; foreach ($_chunked_array as $_chunk) { $_buffer .= '<td valign="top">'; foreach ($_chunk as $_radio) { if ($_radio[0] == $this->element_value) { $_buffer .= '<div><input type="radio" name="'.$this->element_name.'" id="'.$this->element_name.'"' .' value="'.$_radio[0].'" style="border: 0;" checked />' .' '.$_radio[1]."</div>\n"; } else { $_buffer .= '<div><input type="radio" name="'.$this->element_name.'" id="'.$this->element_name.'"' .' value="'.$_radio[0].'" style="border: 0;" />' .' '.$_radio[1]."</div>\n"; } } $_buffer .= '</td>'; } $_buffer .= '</tr>'."\n"; $_buffer .= '</table>'."\n"; return $_buffer; } } /* Date field */ /* Global vars containing date and month array */ $simbio_fe_date_array = array( array('01', strtoupper(__('Date')), '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31')); $simbio_fe_date_month_array = array( array('01', strtoupper(__('Month')), array('01', 'January'), array('02', 'February'), array('03', 'March'), array('04', 'April'), array('05', 'May'), array('06', 'June'), array('07', 'July'), array('08', 'August'), array('09', 'September'), array('10', 'October'), array('11', 'November'), array('12', 'December'))); /* Depecrated class for compability with older code */ class simbio_form_element { /** * Static Method to create input field form element * * @param string $str_elmnt_type * @param string $str_elmnt_name * @param string $str_elmnt_value * @param string $str_elmnt_attr */ public static function textField($str_elmnt_type, $str_elmnt_name, $str_elmnt_value = '', $str_elmnt_attr = '') { $_textField = new simbio_fe_text(); $_textField->element_type = $str_elmnt_type; $_textField->element_name = $str_elmnt_name; $_textField->element_value = $str_elmnt_value; $_textField->element_attr = $str_elmnt_attr; return $_textField->out(); } /** * Static Method to create form element * * @param string $str_elmnt_name * @param array $array_option * @param string $str_default_selected * @param string $str_elmnt_attr * @return string */ public static function selectList($str_elmnt_name, $array_option, $str_default_selected = '', $str_elmnt_attr = '') { $_selectList = new simbio_fe_select(); $_selectList->element_name = $str_elmnt_name; $_selectList->element_value = $str_default_selected; $_selectList->element_attr = $str_elmnt_attr; $_selectList->element_options = $array_option; return $_selectList->out(); } /** * Static Method to create form element * * @param string $str_elmnt_name * @param string $str_elmnt_label * @param array $array_chbox * @return string */ public static function checkBox($str_elmnt_name, $array_chbox, $default_checked = '') { $_checkBox = new simbio_fe_checkbox(); $_checkBox->element_name = $str_elmnt_name; $_checkBox->element_value = $default_checked; $_checkBox->element_options = $array_chbox; return $_checkBox->out(); } /** * Static Method to create form element * * @param string $str_elmnt_name * @param array $array_option * @param string $str_default_selected * @return string */ public static function radioButton($str_elmnt_name, $array_option, $default_checked = '') { $_radio = new simbio_fe_select(); $_radio->element_name = $str_elmnt_name; $_radio->element_value = $default_checked; $_radio->element_options = $array_option; return $_radio->out(); } /** * Static Method to create date input field form element * * @param string $str_date_elmnt_name * @param string $str_month_elmnt_name * @param string $str_year_elmnt_name * @param string $str_date * @return string */ public static function dateField($str_elmnt_name, $str_elmnt_value = '', $str_elmnt_attr = '') { return self::textField('date', $str_elmnt_name, $str_elmnt_value, $str_elmnt_attr); } /** * Static Method to create form element * * @param string $str_date_elmnt_name * @param string $str_elmnt_value * @return string */ public static function hiddenField($str_elmnt_name, $str_elmnt_value) { $_textField = new simbio_fe_text(); $_textField->element_type = 'hidden'; $_textField->element_name = $str_elmnt_name; $_textField->element_value = $str_elmnt_value; return $_textField->out(); } }