fields_functions.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:22k
源码类别:

电子政务应用

开发平台:

Java

  1. <?php
  2. // +-------------------------------------------------------------+
  3. // | DeskPRO v [2.0.1 Production]
  4. // | Copyright (C) 2001 - 2004 Headstart Solutions Limited
  5. // | Supplied by WTN-WDYL
  6. // | Nullified by WTN-WDYL
  7. // | Distribution via WebForum, ForumRU and associated file dumps
  8. // +-------------------------------------------------------------+
  9. // | DESKPRO IS NOT FREE SOFTWARE
  10. // +-------------------------------------------------------------+
  11. // | License ID : Full Enterprise License =) ...
  12. // | License Owner : WTN-WDYL Team
  13. // +-------------------------------------------------------------+
  14. // | $RCSfile: fields_functions.php,v $
  15. // | $Date: 2004/02/10 01:34:25 $
  16. // | $Revision: 1.46 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - Utility functions for custom fields.
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL ^ E_NOTICE);
  22. #################################################################################################
  23. # CUSTOM FIELD FUNCTIONS 
  24. #################################################################################################
  25. /*****************************************************
  26. function field_def_val
  27. -----DESCRIPTION: -----------------------------------
  28. - validates custom field form elements
  29. -----ARGUMENTS: -------------------------------------
  30. fielddata : the data from the x_def table
  31. fieldvalue : the value submitted (value or an array)
  32. customvalue : extra data for when an extra optional input field is entered
  33. noerror : set if we only want validated results but not errors
  34. -----RETURNS:----------------------------------------
  35. if valid result returns the result
  36. if empty result (but this is allowed) returns empty string
  37. if validation fails then returns null
  38. *****************************************************/
  39. function field_def_val($fielddata, $fieldvalue, $customvalue='', $noerror='') {
  40. // get what we need from the database
  41. $data = unserialize($fielddata[data]);
  42. if (is_array($data)) {
  43. // get allowed values
  44. foreach ($data AS $key => $val) {
  45. $data_array[] = $val[0];
  46. }
  47. }
  48. $reg_ex = stripslashes($fielddata[reg_ex]);
  49. //////////////////////// SELECT FIELDS ////////////////////////
  50. if ($fielddata[formtype] == "select") {
  51. /*
  52. 1) Single select
  53. - require a selection
  54. - or extra input over rides
  55. 2) Multi select
  56. - min options
  57. - max options
  58. */
  59. // sort multiselect data
  60. if ($fielddata[multiselect] == "1") {
  61. // build array of selected options that match allowed ones
  62. if (is_array($fieldvalue)) {
  63. $value = '|||';
  64. foreach($fieldvalue AS $key => $var) {
  65. if (in_array($var, $data_array)) {
  66. $value .= $var . "|||";
  67. $regex_array[] = $var;
  68. }
  69. }
  70. // too many / too few
  71. $count = count($regex_array);
  72. if (($fielddata[minoptions] != "0") AND ($count < $fielddata[minoptions])) {
  73. $error = 1;
  74. }
  75. if (($fielddata[maxoptions] != "0") AND ($count > $fielddata[maxoptions])) {
  76. $error = 1;
  77. }
  78. // nothing selected for multiselect
  79. } else {
  80. if ($fielddata[minoptions]) {
  81. $error = 1;
  82. }
  83. }
  84. } else {
  85. // not multiselect
  86. if (@in_array($fieldvalue, $data_array)) {
  87. $value = "|||" . $fieldvalue . "|||";
  88. // check if required
  89. } elseif ($fielddata[required] == "1") {
  90. $error_temp = 1;
  91. }
  92. }
  93. }
  94. //////////////////////// TEXTAREA AND INPUT FIELDS ////////////////////////
  95. if ($fielddata[formtype] == "textarea" OR $fielddata[formtype] == "input") {
  96. /*
  97. 1) minlength
  98. 2) maxlength
  99. 3) regex
  100. */
  101. if ($fielddata[regex]) {
  102. if (!(preg_match($fielddata[regex], $fieldvalue))) {
  103. $error = 1;
  104. }
  105. }
  106. $length = strlen($fieldvalue);
  107. if (($fielddata[maxlength] != "0") AND ($length > $fielddata[maxlength])) {
  108. $error = 1;
  109. }
  110. if (($fielddata[minlength] != "0") AND ($length < $fielddata[minlength])) {
  111. $error = 1;
  112. }
  113. $value = $fieldvalue;
  114. }
  115. //////////////////////// RADIO FIELDS ////////////////////////
  116. if ($fielddata[formtype] == "radio") {
  117. /*
  118. 1) Require a selection
  119. 2) Extrainput overrides
  120. */
  121. if (in_array($fieldvalue, $data_array)) {
  122. $value = '|||' . $fieldvalue . '|||';
  123. } else {
  124. // if we need a selection
  125. if ($fielddata[required] == "1") {
  126. $error_temp = 1;
  127. }
  128. }
  129. }
  130. //////////////////////// CHECKBOX FIELDS ////////////////////////
  131. if ($fielddata[formtype] == "checkbox") {
  132. /*
  133. 1) Minimum options
  134. 2) Maximum options
  135. */
  136. // check not empty
  137. if (is_array($fieldvalue)) {
  138. $value = '|||';
  139. foreach($fieldvalue AS $key => $var) {
  140. // build data
  141. if (in_array($var, $data_array)) {
  142. $value .= $var . "|||";
  143. $regex_array[] = $var;
  144. }
  145. }
  146. }
  147. // too many / too few
  148. $count = count($regex_array);
  149. if (($fielddata[minoptions] != "0") AND ($count < $fielddata[minoptions])) {
  150. $error = 1;
  151. }
  152. if (($fielddata[maxoptions] != "0") AND ($count > $fielddata[maxoptions])) {
  153. $error = 1;
  154. }
  155. }
  156. //////////////////////// EXTRA INPUT ////////////////////////
  157. if ($fielddata[extrainput] == "1") {
  158. /*
  159. 1) regex
  160. 2) minlength
  161. 3) maxlength
  162. */
  163. if (trim($customvalue) != "") {
  164. $val_extrainput = 1;
  165. if ($fielddata[regex]) {
  166. if (!(preg_match($fielddata[regex], $customvalue))) {
  167. $error = 1;
  168. }
  169. }
  170. $length = strlen($customvalue);
  171. if ($fielddata[maxlength] AND ($length > $fielddata[maxlength])) {
  172. $error = 1;
  173. unset($val_extrainput);
  174. }
  175. if ($fielddata[maxlength] AND ($length < $fielddata[minlength])) {
  176. $error = 1;
  177. unset($val_extrainput);
  178. }
  179. $value = $customvalue;
  180. }
  181. }
  182. //////////////////////// RETURN VALUE ////////////////////////
  183. // check if error from lack of custom field
  184. if (($error_temp) AND (!$val_extrainput)) {
  185. $error = 1;
  186. }
  187. // empty options
  188. if ($value == '||||||') {
  189. unset($value);
  190. }
  191. // return error
  192. if ($error AND !$noerror) {
  193. return;
  194. } else {
  195. if ($value) {
  196. return $value;
  197. } else {
  198. // return empty string, different from error
  199. return '';
  200. }
  201. }
  202. }
  203. /*****************************************************
  204. function field_def
  205. -----DESCRIPTION: -----------------------------------
  206. - generates custom field form elements
  207. -----ARGUMENTS: -------------------------------------
  208. fielddata : the data from the x_def table
  209. type : can be default (using default value in table), edit (for editing fields) or redo (redoing a form if there where errors)
  210. fieldvalue : the value submitted (value or an array) this is used when we are redoing/editing the form
  211. customvalue : extra data for when an extra optional input field is entered this is used when we are redoing/editing the form
  212. editvalue : the value from the database
  213. name : the name of the form array when it is not custom_fields for example when two _defs on the same page
  214. bools : [optional] If true, show boolean search fields
  215. match : [optional] The user-submitted (or DB-stored) match selection
  216. not : [optional] The user-submitted (or DB-stored) not selection
  217. -----RETURNS:----------------------------------------
  218. the html to generate the form element
  219. *****************************************************/
  220. function field_def($fielddata, $type='default', $fieldvalue='', $customvalue='', $editvalue='', $name='custom_fields', $bools=NULL, $match=NULL, $not=NULL) {
  221. global $user, $ticket;
  222. if (!$name) {
  223. $name = 'custom_fields';
  224. }
  225. // default value (failed regex/parsed default/default)
  226. if ($type == 'redo') {
  227. $default_value = $fieldvalue;
  228. } elseif ($type == 'edit') {
  229. $default_value = $editvalue;
  230. } elseif ($fielddata[parsed_default_value]) {
  231. eval ("$default_value = $fielddata[parsed_default_value];");
  232. } elseif ($fielddata[default_value]) {
  233. $default_value = $fielddata[default_value];
  234. }
  235. // data manipulation
  236. $data = unserialize($fielddata[data]);
  237. $fielddata[name] = htmlspecialchars($fielddata[name]);
  238. //////////////////////// SELECT FIELDS //////////////////////// 
  239. if ($fielddata[formtype] == "select") {
  240. // size
  241. if ($fielddata[height] > 0) {
  242. $size .= " size="$fielddata[height]"";
  243. }
  244. // allow multiple selections
  245. if ($fielddata[multiselect]) {
  246. unset($fielddata[extrainput]);
  247. $html = "<select name="" . $name . "[" . $fielddata[name] . "][]" multiple$size>";
  248. } else {
  249. $html = "<select name="" . $name . "[$fielddata[name]]"$size>";
  250. // empty element for single selects
  251. $html .= "<option>[None]</option>n";
  252. }
  253. // run through data
  254. if (is_array($data)) {
  255. if ($type == 'edit' AND $default_value) {
  256. // if edit sort out fields
  257. $default_value = explode('|||', $default_value);
  258. if (!is_array($fieldvalue)) {
  259. $fieldvalue = array();
  260. }
  261. foreach ($default_value AS $key => $var) {
  262. if (strlen($var)) {
  263. $fieldvalue[] = $var;
  264. }
  265. }
  266. }
  267. foreach ($data AS $key => $val) {
  268. if (!(is_array($val))) {
  269. $val = array('0' => '', '2' => '', '3' => '');
  270. } else {
  271. $val[0] = htmlspecialchars($val[0]);
  272. $val[2] = htmlspecialchars($val[2]);
  273. }
  274. // submitted data
  275. if ($type == "redo" OR $type == 'edit') {
  276. if (is_array($fieldvalue)) {
  277. if (in_array($val[0], $fieldvalue) AND ((!$customvalue) OR in_array($val[2], $customvalue))) {
  278. $html .= "<option selected="selected" value="$val[0]">$val[2]</option>n";
  279. if (is_array($customvalue)) {
  280. if (in_array($val[0], $customvalue)) {
  281. $customvalue = NULL;
  282. }
  283. } else {
  284. if ($val[0] == $customvalue) {
  285. $customvalue = NULL;
  286. }
  287. }
  288. } else {
  289. $html .= "<option value="$val[0]">$val[2]</option>n";
  290. }
  291. } else {
  292. if ($fieldvalue == $val[0] AND ((!$customvalue) OR $customvalue == $val[2])) {
  293. $html .= "<option selected="selected" value="$val[0]">$val[2]</option>n";
  294. if ($customvalue == $val[0]) {
  295. $customvalue = NULL;
  296. }
  297. } else {
  298. $html .= "<option value="$val[0]">$val[2]</option>n";
  299. }
  300. }
  301. // default data
  302. } else {
  303. if ($val[3] == "1" AND (!$customvalue)) {
  304. $html .= "<option selected="selected" value="$val[0]">$val[2]</option>n";
  305. } else {
  306. $html .= "<option value="$val[0]">$val[2]</option>n";
  307. }
  308. }
  309. }
  310. }
  311. $html .= "</select>n";
  312. }
  313. //////////////////////// TEXTAREA FIELDS ////////////////////////
  314. if ($fielddata[formtype] == "textarea") {
  315. $html = form_textarea($fielddata[name], $fielddata[length], $fielddata[height], $default_value, $name);
  316. }
  317. //////////////////////// INPUT FIELDS ////////////////////////
  318.  if ($fielddata[formtype] == "input")  {
  319. $html = form_input($fielddata[name], $default_value, $fielddata[length], $name);
  320. }
  321. //////////////////////// RADIO FIELDS ////////////////////////
  322. if ($fielddata[formtype] == "radio") {
  323. // run through data
  324. if (is_array($data)) {
  325. foreach ($data AS $key => $val) {
  326. $val[0] = htmlspecialchars($val[0]);
  327. if ($fielddata[perline] == $count) {
  328. $count = 0;
  329. $html .= "<br />";
  330. }
  331. // submitted data
  332. if ($type == "redo") {
  333. if ($val[0] == $fieldvalue AND (!$customvalue))  {
  334. $checked = "checked="checked"";
  335. } else {
  336. unset($checked);
  337. }
  338. } elseif ($type == "edit") {
  339. if ($default_value == '|||' . $val[0] . '|||' AND (!$customvalue)) {
  340. $checked = "checked="checked"";
  341. } else {
  342. unset($checked);
  343. }
  344. // default data
  345. } else {
  346. if ($val[3] == "1" AND (!$customvalue)) {
  347. $checked = "checked="checked"";
  348. } else {
  349. unset($checked);
  350. }
  351. }
  352. $html .= $val[2] . "<input type="radio" name="" . $name . "[" . $fielddata[name] . "]" . "" value="$val[0]" $checked>&nbsp;&nbsp;";
  353. $count++;
  354. }
  355. }
  356. }
  357. //////////////////////// CHECKBOX FIELDS ////////////////////////
  358. if ($fielddata[formtype] == "checkbox") {
  359. unset($fielddata[extrainput]);
  360. if ($type == 'redo') {
  361. // needs reforming of data
  362. if (is_array($fieldvalue)) {
  363. foreach ($fieldvalue AS $key => $var) {
  364. $temp[] = $var;
  365. }
  366. $fieldvalue = $temp;
  367. }
  368. } elseif ($type == 'edit' AND $default_value) {
  369. // if edit sort out fields
  370. $default_value = split('|||', $default_value);
  371. if (is_array($default_value)) {
  372. if (!is_array($fieldvalue)) {
  373. $fieldvalue = array();
  374. }
  375. foreach ($default_value AS $key => $var) {
  376. if ($var > 0) {
  377. $fieldvalue[] = $var;
  378. }
  379. }
  380. }
  381. }
  382. // run through data
  383. if (is_array($data)) {
  384. foreach ($data AS $key => $val) {
  385. if (($fielddata['perline']) AND ($count >= $fielddata['perline'])) {
  386. $html .= "<br />";
  387. $count = 0;
  388. }
  389. // submitted data
  390. if ($type == 'redo' OR $type == 'edit') {
  391. if (is_array($fieldvalue)) {
  392. if (in_array($val[0], $fieldvalue)) {
  393. $checked = "checked="checked"";
  394. } else {
  395. unset($checked);
  396. }
  397. } else {
  398. unset($checked);
  399. }
  400. // default data
  401. } else {
  402. if ($val[3] == "1") {
  403. $checked = "checked="checked"";
  404. } else {
  405. unset($checked);
  406. }
  407. }
  408. $html .= $val[2] . "<input type="checkbox" name="" . $name . "[" . $fielddata[name] . "][]" . "" value="$val[0]" $checked>&nbsp;&nbsp;";
  409. $count++;
  410. }
  411. }
  412. }
  413. //////////////////////// EXTRA INPUT FIELD ////////////////////////
  414. if ($fielddata[extrainput] == "1") {
  415. $html .= "<br />$fielddata[extrainput_text]";
  416. if ($fielddata[extrainput_location] == "1") {
  417. $html .= "<br />";
  418. } elseif ($fielddata[extrainput_text] != "") {
  419. $html .= "&nbsp;&nbsp;";
  420. }
  421. if (!$customvalue) {
  422. if ($type == 'edit' OR $type == 'redo') {
  423. $customvalue = $editvalue;
  424. } else {
  425. $customvalue = $fieldvalue;
  426. }
  427. }
  428. if (in_string('|||', $customvalue)) {
  429. $customvalue = '';
  430. }
  431. $html .= form_input('extra' . $fielddata[name], $customvalue, $fielddata[length], $name);
  432. }
  433. ////////////////////////////////////////////////////////////////////////
  434. // Generate boolean search fields if needed
  435. if ($bools AND ($fielddata['formtype'] == 'checkbox' or ($fielddata['formtype'] == 'select' AND $fielddata['multiselect']))) {
  436. if ($match == 'and') {
  437. $and_checked = 1;
  438. } elseif ($match == 'or') {
  439. $or_checked = 1;
  440. } else {
  441. $none_checked = 1;
  442. }
  443. $name = $name."[$fielddata[name]";
  444. $html .= '</td><td><B>Must Match:</B> (' . form_checkbox_single($name.'_not]', 1, $not, '') . '&nbsp;&nbsp;Negate/logical NOT)<BR>';
  445. $html .= form_radio_single($name.'_match]', 'or', $or_checked) . '&nbsp;&nbsp;Any checked&nbsp;&nbsp;';
  446. $html .= form_radio_single($name.'_match]', 'and', $and_checked) . '&nbsp;&nbsp;All checked<BR>';
  447. $html .= form_radio_single($name.'_match]', 'none', $none_checked) . '&nbsp;&nbsp;No matching<BR>';
  448. $html = "<table border="0" cellpadding="2"><tr><td>$html</td></tr></table>";
  449. }
  450. return $html;
  451. }
  452. /*****************************************************
  453. function field_search
  454. -----DESCRIPTION: -----------------------------------
  455. - generates part of a search query on custom fields
  456. -----ARGUMENTS: -------------------------------------
  457. data : the data from the x_def table
  458. var : the submitted data
  459. customvar : any extrainput
  460. tablename : of the field  (ie X_def)
  461. match : for select and checkbox, the kind of boolean logic
  462. to use; AND for logical AND (all items must be present),
  463. OR for logical OR (at least one must be present). Defaults
  464. to AND.
  465. not : for logical NOT; if false, no changes; if true, the
  466. final result is preceded by a NOT logical operator.
  467. -----RETURNS:----------------------------------------
  468. part of an sql WHERE query used to search upon the custom fields
  469. *****************************************************/
  470. function field_search($data, $var, $customvar, $tablename='', $match='and', $not=NULL, $noand=NULL) {
  471. $match = strtolower($match);
  472. if ((!$match) or (($match != 'and') AND ($match != 'or'))) {
  473. $match = 'and';
  474. }
  475. $match = strtoupper($match);
  476. if ($tablename) {
  477. $tablename = $tablename . '.';
  478. }
  479. $terms = array();
  480. // input or textarea
  481. if (($data['formtype'] == 'input' OR $data['formtype'] == 'textarea') AND (trim($var != ''))) {
  482. $terms[] = $tablename . $data[name] ." LIKE '" . mysql_escape_string($var) . "'";
  483. // radio
  484. } elseif ($data['formtype'] == 'radio') {
  485. $fielddata = unserialize($data['data']);
  486. foreach ($fielddata AS $key2 => $var2) {
  487. $values[] = $var2[0];
  488. }
  489. if ($customvar) {
  490. $terms[] = $tablename . $data[name] ." LIKE '" . mysql_escape_string($customvar) . "'";
  491. } elseif (in_array($var, $values)) {
  492. $terms[] .= $tablename . $data[name] ." LIKE '%|||$var|||%'";
  493. }
  494. // checkbox
  495. } elseif ($data['formtype'] == 'checkbox') {
  496. $fielddata = unserialize($data['data']);
  497. foreach ($fielddata AS $key2 => $var2) {
  498. $values[] = $var2[0];
  499. }
  500. if (!is_array($var)) {
  501. $var = explode('|||', $var);
  502. }
  503. if (is_array($var)) {
  504. foreach ($var AS $key2 => $var2) {
  505. if (in_array($var2, $values)) {
  506. $terms[] = $tablename . $data[name] ." LIKE '%|||$var2|||%'";
  507. }
  508. }
  509. }
  510. // select
  511. } elseif ($data['formtype'] == 'select') {
  512. if (!is_array($var)) {
  513. $var = explode('|||', $var);
  514. }
  515. $fielddata = unserialize($data['data']);
  516. foreach ($fielddata AS $key2 => $var2) {
  517. $values[] = $var2[0];
  518. }
  519. if ($customvar) {
  520. $where .= $tablename . $data[name] ." LIKE '" . mysql_escape_string($customvar) . "'";
  521. } elseif (is_array($var)) {
  522. foreach ($var AS $key2 => $var2) {
  523. if (in_array($var2, $values)) {
  524. $terms[] = $tablename . $data[name] ." LIKE '%|||$var2|||%'";
  525. }
  526. }
  527. } elseif ($var) {
  528. if (in_array($var, $values)) {
  529. $terms[] = $tablename . $data[name] ." LIKE '%|||$var|||%' ";
  530. }
  531. }
  532. }
  533. $match = " $match ";
  534. if ($terms) {
  535. $where = join($match, $terms);
  536. }
  537. if ($where) {
  538. if (!$noand) {
  539. $query = 'AND';
  540. }
  541. if ($not == 'NOT') {
  542. $query  .= ' NOT';
  543. }
  544. $query .= " ($where)";
  545. }
  546. return $where;
  547. }
  548. /*****************************************************
  549. function field_display
  550. -----DESCRIPTION: -----------------------------------
  551. - displays custom field form elements
  552. -----ARGUMENTS: -------------------------------------
  553. fieldata : the data from the x_def table
  554. fieldvalue : the value from the database to display
  555. -----RETURNS:----------------------------------------
  556. the html to display the element
  557. *****************************************************/
  558. function field_display($fielddata, $fieldvalue='', $do_text = 0) {
  559. // data manipulation
  560. $data = unserialize($fielddata[data]);
  561. //////////////////////// SELECT FIELDS //////////////////////// 
  562. if ($fielddata[formtype] == "select") {
  563. foreach($data AS $key => $var) {
  564. $data_regex[] = $var[0];
  565. $data_options[$var[0]] = $var[2];
  566. }
  567. // show in select form if select box or as normal text
  568. $tmp = split('|||', $fieldvalue);
  569. foreach ($tmp AS $key => $var) {
  570. if (in_array($var, $data_regex)) {
  571. $elements[] = $var;
  572. }
  573. }
  574. if (is_array($elements)) {
  575. if (count($elements) > 5) {
  576. $rows = 5;
  577. } else {
  578. $rows = count($elements);
  579. }
  580. if ($fielddata['multiselect']) {
  581. $multi = "multiple";
  582. }
  583. $html .= "<select $multi rows="$count">";
  584. foreach ($elements AS $key => $var) {
  585. if ($var) {
  586. $html .= "<option>" . htmlspecialchars($data_options[$var]) . "</option>";
  587. $text[] = $data_options[$var];
  588. $opt_set++;
  589. }
  590. }
  591. if (!$opt_set) {
  592. $html .= "<option>[None]</option>n";
  593. }
  594. $html .= "</select>";
  595. } elseif ($fielddata[data]) {
  596. $html = htmlspecialchars($fieldvalue);
  597. }
  598. if (is_array($text)) {
  599. $text = join(', ', $text);
  600. }
  601. // if we have nothing so far and we allow extrainput, we display it
  602. if ($fielddata[extrainput] AND $fieldvalue AND !$text) {
  603. $text = htmlspecialchars($fieldvalue);
  604. $html = htmlspecialchars($fieldvalue);
  605. }
  606. }
  607. //////////////////////// TEXTAREA FIELDS ////////////////////////
  608. if ($fielddata[formtype] == "textarea") {
  609. $html = htmlspecialchars($fieldvalue);
  610. $text = htmlspecialchars($fieldvalue);
  611. }
  612. //////////////////////// INPUT FIELDS ////////////////////////
  613.  if ($fielddata[formtype] == "input")  {
  614. $html = htmlspecialchars($fieldvalue);
  615. $text = htmlspecialchars($fieldvalue);
  616. }
  617. //////////////////////// RADIO FIELDS ////////////////////////
  618. if ($fielddata[formtype] == "radio") {
  619. foreach($data AS $key => $var) {
  620. $data_regex[] = $var[0];
  621. $data_options[$var[0]] = $var[2];
  622. }
  623. // radio field or custom
  624. $tmp = explode('|||', $fieldvalue);
  625. foreach ($tmp AS $key => $var) {
  626. if (in_array($var, $data_regex)) {
  627. $html = "<input type="radio" checked="checked" > " .$data_options[$var];
  628. $text[] = $data_options[$var];
  629. }
  630. }
  631. if (is_array($text)) {
  632. $text = join(', ', $text);
  633. }
  634. // if we have nothing so far and we allow extrainput, we display it
  635. if ($fielddata[extrainput]  AND !$html AND $fieldvalue) {
  636. $text = htmlspecialchars($fieldvalue);
  637. $html = htmlspecialchars($fieldvalue);
  638. }
  639. }
  640. //////////////////////// CHECKBOX FIELDS ////////////////////////
  641. if ($fielddata[formtype] == "checkbox") {
  642. // radio field or custom
  643. if (is_string(strstr($fieldvalue, '|||'))) {
  644. $fieldvalue = explode('|||', $fieldvalue);
  645. foreach ($data AS $key => $var) {
  646. if (($fielddata[perline]) AND $count >= $fielddata[perline]) {
  647. $html .= "<br />";
  648. $count = 0;
  649. }
  650. if (in_array($var[0], $fieldvalue)) {
  651. $html .= $data[$key][2]  . "&nbsp;<input type="checkbox" checked="checked" >&nbsp;&nbsp;";
  652. $text[] = $data[$key][2];
  653. $count++;
  654. }
  655. }
  656. if (is_array($text)) {
  657. if (count($text)) {
  658. $text = join(', ', $text);
  659. }
  660. }
  661. } else {
  662. $html = htmlspecialchars($fieldvalue);
  663. $text = htmlspecialchars($fieldvalue);
  664. }
  665. }
  666. ////////////////////////////////////////////////////////////////////////
  667. if ($do_text) {
  668. return $text;
  669. } else {
  670. return $html;
  671. }
  672. }
  673. ?>