📄 fields_functions.php
字号:
} 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> ";
$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> ";
$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 .= " ";
}
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, '') . ' Negate/logical NOT)<BR>';
$html .= form_radio_single($name.'_match]', 'or', $or_checked) . ' Any checked ';
$html .= form_radio_single($name.'_match]', 'and', $and_checked) . ' All checked<BR>';
$html .= form_radio_single($name.'_match]', 'none', $none_checked) . ' 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] . " <input type=\"checkbox\" checked=\"checked\" \> ";
$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 + -