⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fields_functions.php

📁 jsp程序开发系统
💻 PHP
📖 第 1 页 / 共 2 页
字号:

				} elseif ($type == "edit") {
					if ($default_value == '|||' . $val[0] . '|||' AND (!$customvalue)) {
						$checked = "checked=\"checked\"";
					} else {
						unset($checked);
					}

				// default data
				} else {
					if ($val[3] == "1" AND (!$customvalue)) {
						$checked = "checked=\"checked\"";
					} else {
						unset($checked);
					}	
				}
		
				$html .= $val[2] . "<input type=\"radio\" name=\"" . $name . "[" . $fielddata[name] . "]" . "\" value=\"$val[0]\" $checked>&nbsp;&nbsp;";

				$count++;

			}
		}
	}

	//////////////////////// CHECKBOX FIELDS ////////////////////////

	if ($fielddata[formtype] == "checkbox") {

		unset($fielddata[extrainput]);

		if ($type == 'redo') {
			// needs reforming of data
			if (is_array($fieldvalue)) {
				foreach ($fieldvalue AS $key => $var) {
					$temp[] = $var;
				}
				$fieldvalue = $temp;
			}
		} elseif ($type == 'edit' AND $default_value) {
			// if edit sort out fields
			$default_value = split('\|\|\|', $default_value);
			if (is_array($default_value)) {
				if (!is_array($fieldvalue)) {
					$fieldvalue = array();
				}
				foreach ($default_value AS $key => $var) {
					if ($var > 0) {
						$fieldvalue[] = $var;
					}
				}
			}	
		}

		// run through data
		if (is_array($data)) {
			foreach ($data AS $key => $val) {

				if (($fielddata['perline']) AND ($count >= $fielddata['perline'])) {
					$html .= "<br />";
					$count = 0;
				}

				// submitted data
				if ($type == 'redo' OR $type == 'edit') {

					if (is_array($fieldvalue)) {
						if (in_array($val[0], $fieldvalue)) {
							$checked = "checked=\"checked\"";
						} else {
							unset($checked);
						}
					} else {
						unset($checked);
					}

				// default data
				} else {
					
					if ($val[3] == "1") {
						$checked = "checked=\"checked\"";
					} else {
						unset($checked);
					}	
				}

				$html .= $val[2] . "<input type=\"checkbox\" name=\"" . $name . "[" . $fielddata[name] . "][]" . "\" value=\"$val[0]\" $checked>&nbsp;&nbsp;";
				$count++;
			}
		}
	}
	
	//////////////////////// EXTRA INPUT FIELD ////////////////////////

	if ($fielddata[extrainput] == "1") {

		$html .= "<br />$fielddata[extrainput_text]";

		if ($fielddata[extrainput_location] == "1") {
			$html .= "<br />";
		} elseif ($fielddata[extrainput_text] != "") {
			$html .= "&nbsp;&nbsp;";
		}

		if (!$customvalue) {
			if ($type == 'edit' OR $type == 'redo') {
				$customvalue = $editvalue;
			} else {
				$customvalue = $fieldvalue;
			}
		}
		if (in_string('|||', $customvalue)) {
			$customvalue = '';
		}
		$html .= form_input('extra' . $fielddata[name], $customvalue, $fielddata[length], $name);
	}

	////////////////////////////////////////////////////////////////////////

	// Generate boolean search fields if needed

	if ($bools AND ($fielddata['formtype'] == 'checkbox' or ($fielddata['formtype'] == 'select' AND $fielddata['multiselect']))) {
		if ($match == 'and') {
			$and_checked = 1;
		} elseif ($match == 'or') {
			$or_checked = 1;
		} else {
			$none_checked = 1;
		}

		$name = $name."[$fielddata[name]";

		$html .= '</td><td><B>Must Match:</B> (' . form_checkbox_single($name.'_not]', 1, $not, '') . '&nbsp;&nbsp;Negate/logical NOT)<BR>';
		$html .= form_radio_single($name.'_match]', 'or', $or_checked) . '&nbsp;&nbsp;Any checked&nbsp;&nbsp;';
		$html .= form_radio_single($name.'_match]', 'and', $and_checked) . '&nbsp;&nbsp;All checked<BR>';
		$html .= form_radio_single($name.'_match]', 'none', $none_checked) . '&nbsp;&nbsp;No matching<BR>';
		$html = "<table border=\"0\" cellpadding=\"2\"><tr><td>$html</td></tr></table>";
	}

	return $html;

}

/*****************************************************
	function field_search

-----DESCRIPTION: -----------------------------------

	- generates part of a search query on custom fields

-----ARGUMENTS: -------------------------------------

	data			:	the data from the x_def table
	var				:	the submitted data
	customvar		:	any extrainput
	tablename		:	of the field  (ie X_def)
	match			:	for select and checkbox, the kind of boolean logic
						to use; AND for logical AND (all items must be present),
						OR for logical OR (at least one must be present). Defaults
						to AND.
	not				:	for logical NOT; if false, no changes; if true, the
						final result is preceded by a NOT logical operator.

-----RETURNS:----------------------------------------

	part of an sql WHERE query used to search upon the custom fields

*****************************************************/

function field_search($data, $var, $customvar, $tablename='', $match='and', $not=NULL, $noand=NULL) {
	
	$match = strtolower($match);
	if ((!$match) or (($match != 'and') AND ($match != 'or'))) {
		$match = 'and';
	}
	$match = strtoupper($match);

	if ($tablename) {
		$tablename = $tablename . '.';
	}

	$terms = array();

	// input or textarea
	if (($data['formtype'] == 'input' OR $data['formtype'] == 'textarea') AND (trim($var != ''))) {
		$terms[] = $tablename . $data[name] ." LIKE '" . mysql_escape_string($var) . "'";
	
	// radio
	} elseif ($data['formtype'] == 'radio') {

		$fielddata = unserialize($data['data']);	
		foreach ($fielddata AS $key2 => $var2) {
			$values[] = $var2[0];
		}

		if ($customvar) {
			$terms[] = $tablename . $data[name] ." LIKE '" . mysql_escape_string($customvar) . "'";
		} elseif (in_array($var, $values)) {
			$terms[] .= $tablename . $data[name] ." LIKE '%|||$var|||%'";
		}

	// checkbox
	} elseif ($data['formtype'] == 'checkbox') {

		$fielddata = unserialize($data['data']);	
		foreach ($fielddata AS $key2 => $var2) {
			$values[] = $var2[0];
		}
		if (!is_array($var)) {
			$var = explode('|||', $var);
		}

		if (is_array($var)) {
			foreach ($var AS $key2 => $var2) {
				if (in_array($var2, $values)) {
					$terms[] = $tablename . $data[name] ." LIKE '%|||$var2|||%'";
				}
			}
		}
	
	// select
	} elseif ($data['formtype'] == 'select') {
		if (!is_array($var)) {
			$var = explode('|||', $var);
		}
		$fielddata = unserialize($data['data']);	
		foreach ($fielddata AS $key2 => $var2) {
			$values[] = $var2[0];
		}

		if ($customvar) {
			$where .= $tablename . $data[name] ." LIKE '" . mysql_escape_string($customvar) . "'";
		} elseif (is_array($var)) {
			foreach ($var AS $key2 => $var2) {
				if (in_array($var2, $values)) {
					$terms[] = $tablename . $data[name] ." LIKE '%|||$var2|||%'";
				}
			}
		} elseif ($var) {
			if (in_array($var, $values)) {
				$terms[] = $tablename . $data[name] ." LIKE '%|||$var|||%' ";
			}
		}
	}
	
	$match = " $match ";
	if ($terms) {
		$where = join($match, $terms);
	}

	if ($where) {
		if (!$noand) {
			$query = 'AND';
		}
		if ($not == 'NOT') {
			$query  .= ' NOT';
		}
		$query .= " ($where)";
	}
	
	return $where;
}

/*****************************************************
	function field_display

-----DESCRIPTION: -----------------------------------

	- displays custom field form elements

-----ARGUMENTS: -------------------------------------

	fieldata		:	the data from the x_def table
	fieldvalue		:	the value from the database to display

-----RETURNS:----------------------------------------

	the html to display the element

*****************************************************/

function field_display($fielddata, $fieldvalue='', $do_text = 0) {

	// data manipulation
	$data = unserialize($fielddata[data]);

	//////////////////////// SELECT FIELDS //////////////////////// 
	if ($fielddata[formtype] == "select") {

		foreach($data AS $key => $var) {
			$data_regex[] = $var[0];
			$data_options[$var[0]] = $var[2];
		}

		// show in select form if select box or as normal text
		$tmp = split('\|\|\|', $fieldvalue);
		foreach ($tmp AS $key => $var) {
			if (in_array($var, $data_regex)) {
				$elements[] = $var;
			}
		}

		if (is_array($elements)) {
			if (count($elements) > 5) {
				$rows = 5;
			} else {
				$rows = count($elements);
			}
			if ($fielddata['multiselect']) {
				$multi = "multiple";
			}
			$html .= "<select $multi rows=\"$count\">";
			foreach ($elements AS $key => $var) {
				if ($var) {
					$html .= "<option>" . htmlspecialchars($data_options[$var]) . "</option>";
					$text[] = $data_options[$var];
					$opt_set++;
				}
			}
			if (!$opt_set) {
				$html .= "<option>[None]</option>\n";
			}
			$html .= "</select>";
		} elseif ($fielddata[data]) {
			$html = htmlspecialchars($fieldvalue);
		}	
		if (is_array($text)) {
			$text = join(', ', $text);
		}

		// if we have nothing so far and we allow extrainput, we display it
		if ($fielddata[extrainput] AND $fieldvalue AND !$text) {
			$text = htmlspecialchars($fieldvalue);
			$html = htmlspecialchars($fieldvalue);
		}

	}

	//////////////////////// TEXTAREA FIELDS ////////////////////////
	
	if ($fielddata[formtype] == "textarea") {	

		$html = htmlspecialchars($fieldvalue);
		$text = htmlspecialchars($fieldvalue);

	}

	//////////////////////// INPUT FIELDS ////////////////////////

	 if ($fielddata[formtype] == "input")  {

		$html = htmlspecialchars($fieldvalue);
		$text = htmlspecialchars($fieldvalue);
	}
	
	//////////////////////// RADIO FIELDS ////////////////////////
	
	if ($fielddata[formtype] == "radio") {

		foreach($data AS $key => $var) {
			$data_regex[] = $var[0];
			$data_options[$var[0]] = $var[2];
		}

		// radio field or custom
		$tmp = explode('|||', $fieldvalue);
		foreach ($tmp AS $key => $var) {
			if (in_array($var, $data_regex)) {
				$html = "<input type=\"radio\" checked=\"checked\" \> " .$data_options[$var];
				$text[] = $data_options[$var];
			}
		}

		if (is_array($text)) {
			$text = join(', ', $text);
		}

		// if we have nothing so far and we allow extrainput, we display it
		if ($fielddata[extrainput]  AND !$html AND $fieldvalue) {
			$text = htmlspecialchars($fieldvalue);
			$html = htmlspecialchars($fieldvalue);
		}
	}

	//////////////////////// CHECKBOX FIELDS ////////////////////////

	if ($fielddata[formtype] == "checkbox") {
		// radio field or custom
		if (is_string(strstr($fieldvalue, '|||'))) {

			$fieldvalue = explode('|||', $fieldvalue);

			foreach ($data AS $key => $var) {
				
				if (($fielddata[perline]) AND $count >= $fielddata[perline]) {
					$html .= "<br />";
					$count = 0;
				}

				if (in_array($var[0], $fieldvalue)) {
					$html .= $data[$key][2]  . "&nbsp;<input type=\"checkbox\" checked=\"checked\" \>&nbsp;&nbsp;";
					$text[] = $data[$key][2];
					$count++;
				}		
			}
			if (is_array($text)) {
				if (count($text)) {
					$text = join(', ', $text);
				}
			}

		} else {

			$html = htmlspecialchars($fieldvalue);
			$text = htmlspecialchars($fieldvalue);
		}
	}

	////////////////////////////////////////////////////////////////////////
	if ($do_text) {
		return $text;
	} else {
		return $html;
	}

}
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -