Advertisement
Apina

event_form_build

Apr 19th, 2013
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.34 KB | None | 0 0
  1. function event_form_build($question, $answer = "", $event_id = null, $multi_reg = 0, $extra = array(), $class = 'ee-reg-page-questions', $disabled = '') {
  2. if ($question->admin_only == 'Y' && empty($extra['admin_only'])) {
  3. return;
  4. }
  5.  
  6. $attendee_number = isset($extra['attendee_number']) ? $extra['attendee_number'] : 3;
  7. $price_id = isset($extra['price_id']) ? $extra['price_id'] : 0;
  8. $multi_name_adjust = $multi_reg == 1 ? "[$event_id][$price_id][$attendee_number]" : '';
  9. $text_input_class = ' ee-reg-page-text-input ';
  10.  
  11. // XXXXXX will get replaced with the attendee number
  12. if (!empty($extra["x_attendee"])) {
  13. $field_name = ($question->system_name != '') ? "x_attendee_" . $question->system_name . "[XXXXXX]" : "x_attendee_" . $question->question_type . '_' . $question->id . '[XXXXXX]';
  14. $email_validate = $question->system_name == 'email' ? 'email' : '';
  15. $question->system_name = "x_attendee_" . $question->system_name . "[XXXXXX]";
  16. //$question->required = 'N';
  17. } else {
  18. $field_name = ($question->system_name != '') ? $question->system_name : $question->question_type . '_' . $question->id;
  19. $email_validate = $question->system_name == 'email' ? 'email' : '';
  20. }
  21.  
  22. $question->question = stripslashes( $question->question );
  23.  
  24. if ($question->required == "Y") {
  25. $required_title = ' title="' . $question->required_text . '"';
  26. $required_class = ' required ' . $email_validate . ' ';
  27. $required_label = "<em>*</em>";
  28. } else {
  29. $required_title = '';
  30. $required_class = '';
  31. $required_label = '';
  32. }
  33. $label = '<label for="' . $field_name . '" class="' . $class . '">' . trim( stripslashes( str_replace( '&#039;', "'", $question->question ))) . $required_label . '</label> ';
  34.  
  35. if (is_array($answer) && array_key_exists('event_attendees', $answer) /*&& $attendee_number === 1*/) {
  36. $answer = isset($answer['event_attendees'][$price_id][$attendee_number][$field_name]) ? $answer['event_attendees'][$price_id][$attendee_number][$field_name] : '';
  37. }
  38.  
  39. //If the members addon is installed, get the users information if available
  40. if ( function_exists('espresso_members_installed') && espresso_members_installed() == true ) {
  41. global $current_user;
  42. global $user_email;
  43. require_once(EVENT_ESPRESSO_MEMBERS_DIR . "user_vars.php"); //Load Members functions
  44. $userid = $current_user->ID;
  45. }
  46.  
  47. $html = '';
  48.  
  49. if ( is_array( $answer )) {
  50. array_walk_recursive( $answer, 'trim' );
  51. } else {
  52. $answer = trim( $answer );
  53. }
  54.  
  55. switch ($question->question_type) {
  56.  
  57. case "TEXT" :
  58.  
  59. if (defined('EVENT_ESPRESSO_MEMBERS_DIR') && (empty($_REQUEST['event_admin_reports']) || $_REQUEST['event_admin_reports'] != 'add_new_attendee')) {
  60. if (!empty($question->system_name)) {
  61.  
  62. $answer = htmlspecialchars( stripslashes( $answer ), ENT_QUOTES, 'UTF-8' );
  63.  
  64. switch ($question->system_name) {
  65. case $question->system_name == 'fname':
  66.  
  67. $answer = $attendee_number === 1 ? htmlspecialchars( stripslashes( $current_user->first_name ), ENT_QUOTES, 'UTF-8' ) : $answer;
  68. $html .= $answer == '' ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />';
  69.  
  70. break;
  71. case $question->system_name == 'lname':
  72.  
  73. $answer = $attendee_number === 1 ? htmlspecialchars( stripslashes( $current_user->last_name ), ENT_QUOTES, 'UTF-8' ) : $answer;
  74. $html .= $answer == '' ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />';
  75.  
  76. break;
  77. case $question->system_name == 'email':
  78.  
  79. $answer = $attendee_number === 1 ? htmlspecialchars( stripslashes( $user_email ), ENT_QUOTES, 'UTF-8' ) : $answer;
  80. $html .= $answer == '' ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />';
  81.  
  82. break;
  83. case $question->system_name == 'address':
  84.  
  85. $answer = $attendee_number === 1 ? htmlspecialchars( stripslashes( get_user_meta($userid, 'event_espresso_address', TRUE ) ), ENT_QUOTES, 'UTF-8' ) : $answer;
  86. $html .= $answer == '' ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />';
  87.  
  88. break;
  89. case $question->system_name == 'city':
  90.  
  91. $answer = $attendee_number === 1 ? htmlspecialchars( stripslashes( get_user_meta($userid, 'event_espresso_city', TRUE ) ), ENT_QUOTES, 'UTF-8' ) : $answer;
  92. $html .= $answer == '' ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />';
  93.  
  94. break;
  95. case $question->system_name == 'state':
  96.  
  97. $answer = $attendee_number === 1 ? htmlspecialchars( stripslashes( get_user_meta($userid, 'event_espresso_state', TRUE ) ), ENT_QUOTES, 'UTF-8' ) : $answer;
  98. $html .= $answer == '' ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />';
  99.  
  100. break;
  101. case $question->system_name == 'zip':
  102.  
  103. $answer = $attendee_number === 1 ? htmlspecialchars( stripslashes( get_user_meta($userid, 'event_espresso_zip', TRUE ) ), ENT_QUOTES, 'UTF-8' ) : $answer;
  104. $html .= $answer == '' ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />';
  105.  
  106. break;
  107. case $question->system_name == 'phone':
  108.  
  109. $answer = $attendee_number === 1 ? htmlspecialchars( stripslashes( get_user_meta($userid, 'event_espresso_phone', TRUE ) ), ENT_QUOTES, 'UTF-8' ) : $answer;
  110. $html .= $answer == '' ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />';
  111.  
  112. break;
  113. case $question->system_name == 'country':
  114.  
  115. $answer = $attendee_number === 1 ? htmlspecialchars( stripslashes( get_user_meta($userid, 'event_espresso_country', TRUE ) ), ENT_QUOTES, 'UTF-8' ) : $answer;
  116. $html .= $answer == '' ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />';
  117.  
  118. break;
  119. }
  120. }
  121. }
  122.  
  123. if (is_array($answer)) {
  124. $answer = '';
  125. }
  126. if ($answer == '') {
  127. $disabled = '';
  128. }
  129.  
  130. $html .= '<div class="event_form_field">' . $label;
  131. $html .= '<input type="text" ' . $required_title . ' class="' . $required_class . $class . $text_input_class .'" id="' . $field_name . '-' . $event_id . '-' . $price_id . '-' . $attendee_number . '" name="' . $field_name . $multi_name_adjust . '" value="' . htmlspecialchars( stripslashes( $answer ), ENT_QUOTES, 'UTF-8' ) . '" ' . $disabled . ' /></div>';
  132.  
  133. break;
  134. case "TEXTAREA" :
  135.  
  136. if (is_array($answer)) $answer = '';
  137. $html .= '<div class="event_form_field event-quest-group-textarea">' . $label;
  138. $html .= '<textarea ' . $required_title . ' class="' . $required_class . $class . $text_input_class . '" id="' . $field_name . '-' . $event_id . '-' . $price_id . '-' . $attendee_number . '" name="' . $field_name . $multi_name_adjust . '" rows="5">' . htmlspecialchars( stripslashes( $answer ), ENT_QUOTES, 'UTF-8' ) . '</textarea></div>';
  139.  
  140. break;
  141. case "SINGLE" :
  142.  
  143. $html .= '<div class="single-radio">' . $label;
  144. $html .= '<ul class="options-list-radio event_form_field">';
  145.  
  146. $values = explode(",", $question->response);
  147. $answer = trim( stripslashes( str_replace( '&#039;', "'", $answer )));
  148. $answer = htmlspecialchars( $answer, ENT_QUOTES, 'UTF-8' );
  149.  
  150. foreach ($values as $key => $value) {
  151.  
  152. $value = trim( stripslashes( str_replace( '&#039;', "'", $value )));
  153. $value = htmlspecialchars( $value, ENT_QUOTES, 'UTF-8' );
  154. $checked = ( $value == $answer ) ? ' checked="checked"' : "";
  155. $value_id = 'SINGLE_' . $question->id . '_' . $key . '_' . $attendee_number;
  156.  
  157. $html .= '
  158. <li>
  159. <label for="' . $value_id . '" class="' . $class . ' radio-btn-lbl">
  160. <input id="' . $value_id . '" ' . $required_title . '" class="' . $required_class . $class . '" name="' . $field_name . $multi_name_adjust . '" type="radio" value="' . $value . '" ' . $checked . ' />
  161. <span>' . $value . '</span>
  162. </label>
  163. </li>';
  164.  
  165. }
  166.  
  167. $html .= '</ul>';
  168. $html .= '</div>';
  169.  
  170. break;
  171. case "MULTIPLE" :
  172.  
  173. $html .= '<div class="multi-checkbox">' . $label;
  174. $html .= '<ul class="options-list-check event_form_field">';
  175.  
  176. if ( is_array( $answer )) {
  177. foreach ( $answer as $key => $value ) {
  178. $value = trim( stripslashes( str_replace( '&#039;', "'", $value )));
  179. $answer[$key] = htmlspecialchars( $value, ENT_QUOTES, 'UTF-8' );
  180. }
  181. } else {
  182. $answer = trim( stripslashes( str_replace( '&#039;', "'", $answer )));
  183. $answer = htmlspecialchars( $answer, ENT_QUOTES, 'UTF-8' );
  184. }
  185.  
  186.  
  187. $values = explode(",", $question->response);
  188. foreach ($values as $key => $value) {
  189.  
  190. $value = trim( stripslashes( str_replace( '&#039;', "'", $value )));
  191. $value = htmlspecialchars( $value, ENT_QUOTES, 'UTF-8' );
  192. $checked = (is_array($answer) && in_array($value, $answer)) ? ' checked="checked"' : "";
  193. $value_id = str_replace(' ', '', $value) . '-' . $event_id . '_' . $attendee_number;
  194.  
  195. $html .= '
  196. <li>
  197. <label for="' . $value_id . '" class="' . $class . ' checkbox-lbl">
  198. <input id="' . $value_id . '" ' . $required_title . ' class="' . $required_class . $class . '" name="' . $field_name . $multi_name_adjust . '[]" type="checkbox" value="' . $value . '" ' . $checked . '/>
  199. <span>' . $value . '</span>
  200. </label>
  201. </li>';
  202.  
  203. }
  204.  
  205. $html .= '</ul>';
  206. $html .= '</div>';
  207.  
  208. break;
  209. case "DROPDOWN" :
  210.  
  211. $dd_type = $question->system_name == 'state' ? 'name="state"' : 'name="' . $field_name . $multi_name_adjust . '"';
  212. $html .= '
  213. <div class="event_form_field" class="' . $class . '">' . $label;
  214. $html .= '
  215. <select ' . $dd_type . ' ' . $required_title . ' class="' . $required_class . $class . '" id="DROPDOWN_' . $question->id . '-' . $event_id . '-' . $price_id . '-' . $attendee_number . '">';
  216. $html .= '
  217. <option value="">' . __('Select One', 'event_espresso') . "</option>";
  218.  
  219. $answer = trim( stripslashes( str_replace( '&#039;', "'", $answer )));
  220. $answer = htmlspecialchars( $answer, ENT_QUOTES, 'UTF-8' );
  221.  
  222. $values = explode( ',', $question->response );
  223. foreach ( $values as $key => $value ) {
  224.  
  225. $value = trim( stripslashes( str_replace( '&#039;', "'", $value )));
  226. $value = htmlspecialchars( $value, ENT_QUOTES, 'UTF-8' );
  227. $selected = ( $value == $answer ) ? ' selected="selected"' : "";
  228.  
  229. $html .= '
  230. <option value="' . $value . '"' . $selected . '> ' . $value . '</option>';
  231. }
  232.  
  233. $html .= '
  234. </select>';
  235. $html .= '
  236. </div>';
  237.  
  238. break;
  239. default :
  240. break;
  241.  
  242. }
  243. if (is_numeric($attendee_number)) $attendee_number++;
  244. return $html;
  245. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement