diff options
author | Yuchen Pei <hi@ypei.me> | 2021-10-15 09:52:00 +1100 |
---|---|---|
committer | Yuchen Pei <hi@ypei.me> | 2021-10-15 09:52:00 +1100 |
commit | 71b0e901f5fb1cfcd162d8acc23120d3f77a3152 (patch) | |
tree | 323c00faef1edc7dea2e88ff581cc2258b2b6432 /Library/Html | |
parent | 72cce24864b064b5762f4fe97fdf40d8d2ad4b51 (diff) | |
parent | 07f5140771388c9e0c8a99b0dd2e5d950bdb173b (diff) |
Merge branch 'development' into h-node
Diffstat (limited to 'Library/Html')
-rw-r--r-- | Library/Html/Form.php | 211 | ||||
-rw-r--r-- | Library/Html/index.html | 1 |
2 files changed, 212 insertions, 0 deletions
diff --git a/Library/Html/Form.php b/Library/Html/Form.php new file mode 100644 index 0000000..ec81cfb --- /dev/null +++ b/Library/Html/Form.php @@ -0,0 +1,211 @@ +<?php + +// EasyGiant is a PHP framework for creating and managing dynamic content +// +// Copyright (C) 2009 - 2011 Antonio Gallo +// See COPYRIGHT.txt and LICENSE.txt. +// +// This file is part of EasyGiant +// +// EasyGiant 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 3 of the License, or +// (at your option) any later version. +// +// EasyGiant 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 EasyGiant. If not, see <http://www.gnu.org/licenses/>. + +if (!defined('EG')) die('Direct access not allowed!'); + +//create the HTML of the inputs of a form +class Html_Form { + + //return the HTML of a select + //$name: name of the select + //$value: the selected value of the select (set $value equal to null if you don't want to select an option) + //$options: options of the select. This param can be a comma-separated list of options or an associative array ('name'=>'value') + //$className: the class name of the select + //$idName: name of the id + static public function select($name, $value, $options, $className = null, $idName = null, $reverse = null, $attributes = null) + { + $strClass = isset($className) ? "class='".$className."'" : null; + $idStr = isset($idName) ? "id='".$idName."'" : null; + + $returnString = null; + $returnString .= "<select $attributes ".$idStr." $strClass name='".$name."'>\n"; + if (is_string($options)) { + $tempArray = explode(',',$options); + foreach ($tempArray as $item) + { + if (strstr($item,'optgroupOpen:')) + { + $temp = explode(':',$item); + $optionsArray[$temp[1]] = "optgroupOpen"; + } + else + { + $optionsArray[$item] = $item; + } + } + } + else + { + $optionsArray = $options; + } + + $flag = 0; + foreach ($optionsArray as $optionName => $optionValue) { + + $a = $optionName; + $b = $optionValue; + + if (strcmp($reverse,'yes') === 0) + { + $b = $optionName; + $a = $optionValue; + } + + if (strcmp($b,'optgroupOpen') === 0) + { + if ($flag === 1) $returnString .= "</optgroup>\n"; + $returnString .= "<optgroup label='" . $a . "'>\n"; + $flag = 1; + } + else + { + $str= (strcmp($value,$b) === 0) ? "selected='$b'" : null; + $returnString .= "<option value='".$b."' $str>$a</option>\n"; + } + } + if ($flag === 1) $returnString .= "</optgroup>\n"; + $returnString .= "</select>\n"; + return $returnString; + } + + //return the HTML of an <input type='text' ...> + //$name: the name of the input + //$value: the value of the input + //$className: the class name of the input + //$idName: name of the id + static public function input($name, $value, $className = null, $idName = null, $attributes = null) + { + $strClass = isset($className) ? "class='".$className."'" : null; + $idStr = isset($idName) ? "id='".$idName."'" : null; + + $returnString ="<input $attributes ".$idStr." $strClass type='text' name='" .$name. "' value = '$value' />\n"; + return $returnString; + } + + //return the HTML of an <input type='file' ...> + //$name: the name of the input + //$className: the class name of the input + //$idName: name of the id + static public function fileUpload($name, $value, $className = null, $idName = null, $attributes = null) + { + $strClass = isset($className) ? "class='".$className."'" : null; + $idStr = isset($idName) ? "id='".$idName."'" : null; + + $returnString ="<input $attributes ".$idStr." $strClass type='file' name='" .$name. "' />\n"; + return $returnString; + } + + //return the HTML of a checkBox + //$name: name of the checkBox (string) + //$value: the value of the checkBox (string or number) + //$option: option of the checkBox (string or number) + //$className: the class name of the checkBox (string) + //$idName: name of the id + static public function checkbox($name, $value, $option, $className = null, $idName = null, $attributes = null) + { + $strClass = isset($className) ? "class='".$className."'" : null; + $idStr = isset($idName) ? "id='".$idName."'" : null; + + $str = (strcmp($value,$option) === 0) ? "checked = 'checked'" : null; + return "<input $attributes ".$idStr." $strClass type='checkbox' name='".$name."' value='".$option."' $str />\n"; + } + + //return the HTML of a hidden entry + //$name: name of the hidden entry (string) + //$value: the value of the hidden entry (string or number) + static public function hidden($name, $value, $className = null, $idName = null, $attributes = null) + { + $strClass = isset($className) ? "class='".$className."'" : null; + $idStr = isset($idName) ? "id='".$idName."'" : null; + + return "<input $attributes ".$idStr." $strClass type='hidden' name='" .$name. "' value = '$value'>\n"; + } + + //return the HTML of a password entry + //$name: name of the password entry (string) + //$value: the value of the password entry (string or number) + //$idName: name of the id + static public function password($name, $value, $className = null, $idName = null, $attributes = null) + { + $strClass = isset($className) ? "class='".$className."'" : null; + $idStr = isset($idName) ? "id='".$idName."'" : null; + + return "<input $attributes ".$idStr." $strClass type='password' name='" .$name. "' value='$value' />\n"; + } + + //return the HTML of a textarea + //$name: name of the textarea (string) + //$value: the value of the textarea (string or number) + //$idName: name of the id + static public function textarea($name, $value, $className = null, $idName = null, $attributes = null) + { + $strClass = isset($className) ? "class='".$className."'" : null; + $idStr = isset($idName) ? "id='".$idName."'" : null; + + return "<textarea $attributes ".$idStr." $strClass name='" .$name. "'>$value</textarea>\n"; + } + + //return the HTML of a radio button + //$name: name of the radio button + //$value: the selected value of the radio button (set $value equal to null if you don't want to select an option) + //$options: options of the radio button. This param can be a comma-separated list of options or an associative array ('name'=>'value') + //$className: the class name of the radio button + //$position: position of the strings of the radio with respect to the "circles". It can be before or after + //$idName: name of the id + static public function radio($name, $value, $options, $className = null, $position = 'after', $idName = null, $attributes = null) + { + $strClass = isset($className) ? "class='".$className."'" : null; + $idStr = isset($idName) ? "id='".$idName."'" : null; + + $returnString = null; + + if (is_string($options)) { + $tempArray = explode(',',$options); + foreach ($tempArray as $item) + { + $optionsArray[$item] = $item; + } + } else { + $optionsArray = $options; + } + + foreach ($optionsArray as $optionName => $optionValue) { + + if ($position === 'before') + { + $before = $optionName; + $after = null; + } + else + { + $before = null; + $after = $optionName; + } + + $str= (strcmp($value,$optionValue) === 0) ? "checked='checked'" : null; + $returnString .= "$before<input $attributes ".$idStr." $strClass type='radio' name='".$name."' value='".$optionValue."' $str />$after\n"; + } + + return $returnString; + } + +}
\ No newline at end of file diff --git a/Library/Html/index.html b/Library/Html/index.html new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/Library/Html/index.html @@ -0,0 +1 @@ + |