aboutsummaryrefslogtreecommitdiff
path: root/admin/Library/Html/Form.php
blob: bddc13f1e67877e0deca6840d00fef3c69e93095 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?php

// All EasyGiant code 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.
// See COPYRIGHT.txt and LICENSE.txt.

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)
	{
		$strClass = isset($className) ? "class='".$className."'" : null;
		$idStr = isset($idName) ? "id='".$idName."'" : null;
		
		$returnString = null;
		$returnString .= "<select ".$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) {
			if (strcmp($optionValue,'optgroupOpen') === 0)
			{
				if ($flag === 1) $returnString .= "</optgroup>\n";
				$returnString .= "<optgroup label=" . $optionName . ">\n";
				$flag = 1;
			}
			else
			{
				$str= (strcmp($value,$optionValue) === 0) ? "selected='$optionValue'" : null;
				$returnString .= "<option value='".$optionValue."' $str>$optionName</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)
	{
		$strClass = isset($className) ? "class='".$className."'" : null;
		$idStr = isset($idName) ? "id='".$idName."'" : null;
		
		$returnString ="<input ".$idStr." $strClass type='text' name='" .$name. "' value = '$value'>\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)
	{
		$strClass = isset($className) ? "class='".$className."'" : null;
		$idStr = isset($idName) ? "id='".$idName."'" : null;
		
		$str = (strcmp($value,$option) === 0) ? "checked = 'checked'" : null;
		return "<input ".$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)
	{
		return "<input 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)
	{
		$strClass = isset($className) ? "class='".$className."'" : null;
		$idStr = isset($idName) ? "id='".$idName."'" : null;
		
		return "<input ".$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)
	{
		$strClass = isset($className) ? "class='".$className."'" : null;
		$idStr = isset($idName) ? "id='".$idName."'" : null;
		
		return "<textarea ".$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)
	{
		$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 ".$idStr." $strClass type='radio' name='".$name."' value='".$optionValue."' $str>$after\n";
		}
		
		return $returnString;
	}
	
}