info.type.inc.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. <?php
  2. function get_info_var_type($type, $name = '', $rules = '', $value = '', $forward = 'back', $title = '', $require = '')
  3. {
  4. $required = $require == 1 ? 'require="true" datatype="limit" msg="' . $title . '不能为空"' : '';
  5. if ($forward == 'back') {
  6. switch ($type) {
  7. case 'text':
  8. $mymps_rule_str = $rules[maxlength] ? $rules[maxlength] . '字符以内' : '';
  9. $mymps .= '<input maxlength="' . $rules[maxlength] . '" name="extra[' . $name . ']" value="' . $value . '" class="input input-large" type="text" size="40" ' . $required . '> ' . $mymps_rule_str;
  10. break;
  11. case 'textarea':
  12. $mymps_rule_str = $rules[maxlength] ? '<br />不得超过' . $rules[maxlength] . '个字符' : '';
  13. $mymps = '<textarea maxlength="' . $rules[maxlength] . '" name="extra[' . $name . ']" cols="61" rows="10" class="input" ' . $required . '>' . $value . '</textarea> ' . $mymps_rule_str;
  14. break;
  15. case 'radio':
  16. $i = 0;
  17. foreach ($rules as $k => $v) {
  18. $i = $i + 1;
  19. $mymps .= '<label for="' . $name . $k . '"><input id="' . $name . $k . '" name="extra[' . $name . ']" type="radio" class="radio" value="' . $k . '"';
  20. $mymps .= $k == $value || $i == 1 ? 'checked' : '';
  21. $mymps .= '>' . $v . '</label> ';
  22. }
  23. $i = $endrules = NULL;
  24. break;
  25. case 'checkbox':
  26. $count = $require == 1 ? count($rules) : '';
  27. $new_value = explode(',', $value);
  28. $required = 'min=1 max=' . $count . ' require="true" datatype="limit|group" msgid = ' . $title . ' msg="必须要选择一个' . $title . '"';
  29. $mymps = '<div class="checkboxinner style=float:left;">';
  30. foreach ($rules as $k => $v) {
  31. $mymps .= '<label for="' . $name . $k . ('" style="margin:0 10px 0 0;"><input ' . $required . ' id="') . $name . $k . '" name="extra[' . $name . '][]" type="checkbox" class="checkbox" value="' . $k . '"';
  32. $mymps .= in_array($k, $new_value) ? 'checked' : '';
  33. $mymps .= '>' . $v . '</label>';
  34. }
  35. $mymps .= '</div>';
  36. $endrules = $required = NULL;
  37. break;
  38. case 'select':
  39. $mymps .= '<select name="extra[' . $name . ']" class="input" ' . $required . '>';
  40. $mymps .= '<option value="">请选择' . $title . '</option>';
  41. foreach ($rules as $k => $v) {
  42. $mymps .= '<option value="' . $k . '"';
  43. $mymps .= $k == $value ? 'selected ' : '';
  44. $mymps .= '>' . $v . '</option> ';
  45. }
  46. $mymps .= '</select>';
  47. break;
  48. case 'number':
  49. $required = $require == 1 ? 'require="true" datatype="limit|double" msg="请填写正确的' . $title . ',0表示面议"' : '';
  50. $mymps .= '<input ' . $required . ' msgid="' . $title . '" name="extra[' . $name . ']" value="' . $value . '" type="text" style="width:50px" class="input"> <span class=units>' . $rules[units] . '</span>';
  51. break;
  52. }
  53. }
  54. else {
  55. switch ($type) {
  56. case 'text':
  57. $mymps_rule_str = $rules[maxlength] ? $rules[maxlength] . '字符以内' : '';
  58. $mymps .= '<input maxlength="' . $rules[maxlength] . '" name="' . $name . '" value="' . $value . '" class="input input-large" type="text" size="40"> ' . $mymps_rule_str;
  59. break;
  60. case 'textarea':
  61. $mymps_rule_str = $rules[maxlength] ? '<br />不得超过' . $rules[maxlength] . '个字符' : '';
  62. $mymps = '<textarea maxlength="' . $rules[maxlength] . '" name="' . $name . '" cols="100" rows="10" class="input">' . $value . '</textarea> ' . $mymps_rule_str;
  63. break;
  64. case 'radio':
  65. foreach ($rules as $k => $v) {
  66. $mymps .= '<label for="' . $name . $k . '"><input id="' . $name . $k . '" name="extra[' . $name . ']" type="radio" class="radio" value="' . $k . '"';
  67. $mymps .= $k == $value ? 'checked' : '';
  68. $mymps .= '>' . $v . '</label> ';
  69. }
  70. $endrules = NULL;
  71. break;
  72. case 'checkbox':
  73. $new_value = explode(',', $value);
  74. foreach ($rules as $k => $v) {
  75. $mymps .= '<label for="' . $name . $k . '" style="margin:0 10px 0 0;"><input id="' . $name . $k . '" name="' . $name . '" type="checkbox" class="checkbox" value="' . $k . '"';
  76. $mymps .= in_array($k, $new_value) ? 'checked' : '';
  77. $mymps .= '>' . $v . '</label>';
  78. }
  79. break;
  80. case 'select':
  81. $mymps .= '<select name="' . $name . '" class="input" >';
  82. $mymps .= '<option value="">请选择' . $title . '</option>';
  83. foreach ($rules as $k => $v) {
  84. $mymps .= '<option value="' . $k . '"';
  85. $mymps .= $k == $value ? 'selected ' : '';
  86. $mymps .= '>' . $v . '</option> ';
  87. }
  88. $mymps .= '</select>';
  89. break;
  90. case 'number':
  91. $mymps .= '<input name="' . $name . '[min]" class="input" type="text" style="width:50px"> 至 <input name="' . $name . '[max]" class="input" type="text" style="width:50px; float:none;"> ';
  92. break;
  93. }
  94. }
  95. return $mymps;
  96. }
  97. function return_category_info_options($modid = '', $edit_id = '')
  98. {
  99. global $db;
  100. global $db_mymps;
  101. global $charset;
  102. $return = array();
  103. if (1 < $modid) {
  104. $row = $db->getRow('SELECT id,options FROM `' . $db_mymps . 'info_typemodels` WHERE id = \'' . $modid . '\'');
  105. if ($row[options]) {
  106. $resquery = $db->query('SELECT optionid,title,identifier,type,rules,required FROM `' . $db_mymps . 'info_typeoptions` WHERE optionid IN (' . $row['options'] . ')');
  107. while ($re = $db->fetchRow($resquery)) {
  108. $r[$re[optionid]]['title'] = $re['title'];
  109. $r[$re[optionid]]['identifier'] = $re['identifier'];
  110. $r[$re[optionid]]['type'] = $re['type'];
  111. $r[$re[optionid]]['rules'] = $re['rules'];
  112. $r[$re[optionid]]['required'] = $re['required'];
  113. }
  114. }
  115. if (is_array($option = explode(',', $row[options]))) {
  116. foreach ($option as $w => $u) {
  117. $res = $r[$u];
  118. $required = $res[required] == 'on' ? 1 : '';
  119. $extra = $charset == 'utf-8' ? utf8_unserialize($res[rules]) : unserialize($res[rules]);
  120. if (is_array($extra)) {
  121. if ($edit_id) {
  122. $get = $db->getRow('SELECT * FROM `' . $db_mymps . 'information_' . $modid . '` WHERE id = \'' . $edit_id . '\'');
  123. }
  124. $get_value = $get[$res[identifier]];
  125. foreach ($extra as $k => $value) {
  126. if ($res[type] == 'radio' || $res[type] == 'select' || $res[type] == 'checkbox') {
  127. $extra = arraychange($value);
  128. }
  129. else {
  130. if ($res[type] == 'number' && $k == 'units') {
  131. continue;
  132. }
  133. }
  134. $returns['required'] = $required;
  135. $returns['title'] = $res['title'];
  136. $returns['identifier'] = $res['identifier'];
  137. $returns['value'] = get_info_var_type($res[type], $res[identifier], $extra, $get_value, 'back', $res['title'], $required);
  138. $return[] = $returns;
  139. }
  140. }
  141. }
  142. }
  143. }
  144. return $return ? $return : NULL;
  145. }
  146. $var_type = array('text' => '字串', 'textarea' => '编辑框', 'number' => '数字', 'radio' => '单选', 'checkbox' => '多选', 'select' => '选择');
  147. $mymps_admin_info_type = array('text' => '
  148. <tr>
  149. <td bgcolor="#f5fbff" width="45%" >
  150. <b>字符最大长度:</b>
  151. </td>
  152. <td bgcolor="#f5fbff">
  153. <input type="text" size="50" name="rules[text][maxlength]" value="' . $rules[text] . '" >
  154. </td>
  155. </tr>
  156. ', 'textarea' => '
  157. <tr>
  158. <td bgcolor="#f5fbff" width="45%" >
  159. <b>字符最大长度:</b>
  160. </td>
  161. <td bgcolor="#f5fbff">
  162. <input type="text" size="50" name="rules[textarea][maxlength]" value="' . $rules[textarea] . '" >
  163. </td>
  164. </tr>
  165. ', 'radio' => '
  166. <tr>
  167. <td bgcolor="#f5fbff" width="45%">
  168. <b>选项内容:</b><br />只在项目为可选时有效,每行一个选项,等号前面为选项索引(建议用数字),后面为内容,例如: <br /><i>1=蚂蚁分类信息系统<br />2=mymps企业建站系统<br />3=my mpsB2B商务系统</i><br />注意: 选项确定后请勿修改索引和内容的对应关系,但仍可以新增选项。如需调换显示顺序,可以通过移动整行的前后位置来实现
  169. </td>
  170. <td bgcolor="#f5fbff">
  171. <textarea rows="8" name="rules[radio][choices]" id="rules[radio][choices]" cols="50">' . $rules[radio] . '</textarea>
  172. </td>
  173. </tr>
  174. ', 'checkbox' => '
  175. <tr>
  176. <td bgcolor="#f5fbff" width="45%">
  177. <b>选项内容:</b><br />只在项目为可选时有效,每行一个选项,等号前面为选项索引(建议用数字),后面为内容,例如: <br /><i>1=蚂蚁分类信息系统<br />2=mymps企业建站系统<br />3=my mpsB2B商务系统</i><br />注意: 选项确定后请勿修改索引和内容的对应关系,但仍可以新增选项。如需调换显示顺序,可以通过移动整行的前后位置来实现</td>
  178. <td bgcolor="#f5fbff">
  179. <textarea rows="8" name="rules[checkbox][choices]" id="rules[checkbox][choices]" cols="50">' . $rules[checkbox] . '</textarea>
  180. </td>
  181. </tr>
  182. ', 'select' => '
  183. <tr>
  184. <td bgcolor="#f5fbff" width="25%">
  185. <b>选项内容:</b><br />只在项目为可选时有效,每行一个选项,等号前面为选项索引(建议用数字),后面为内容,例如: <br /><i>1=蚂蚁分类信息系统<br />2=mymps企业建站系统<br />3=my mpsB2B商务系统</i><br /><br />注意: 选项确定后请勿修改索引和内容的对应关系,但仍可以新增选项。如需调换显示顺序,可以通过移动整行的前后位置来实现</td>
  186. <td bgcolor="#f5fbff">
  187. <textarea rows="8" name="rules[select][choices]" id="rules[select][choices]" cols="50">' . $rules[select] . '</textarea>
  188. </td>
  189. </tr>
  190. ', 'number' => '
  191. <tr>
  192. <td bgcolor="#f5fbff" width="45%" >
  193. <b>单位(可选):</b>
  194. </td>
  195. <td bgcolor="#f5fbff">
  196. <input type="text" size="50" name="rules[number][units]" value="' . $rules[number][units] . '" >
  197. </td>
  198. </tr>
  199. <tr>
  200. <td bgcolor="#f5fbff" width="45%" >
  201. <b>检索范围值(如果设置了参与搜索则必须填写):</b>
  202. <br>每行一个选项,等号前面为选项索引后面为内容,不需填写单位,例如:<br /> <br /><i>1~1000=1000以内<br />
  203. 1000~3000=1000~3000<br />
  204. 3000~5000=3000~5000<br />
  205. 5000~10000=5000~10000<br />
  206. 10000~=10000以上</i><br /><br /><font color=red>注意: 请严格按照格式填写</font><br> <b style=color:red>~</b> 前面的数字表示范围的最小值, <b style=color:red>~</b> 后面的数字表示范围的最大值<br>选项确定后请勿修改索引和内容的对应关系,但仍可以新增选项。<br>如需调换显示顺序,可以通过移动整行的前后位置来实现</td>
  207. <td bgcolor="#f5fbff">
  208. <textarea rows="8" name="rules[number][choices]" id="rules[number][choices]" cols="50">' . $rules[number][choices] . '</textarea>
  209. </td>
  210. </tr>
  211. ');
  212. ?>