/wp-content/plugins/advanced-events-registration/includes/form-builder/groups/edit_group.php

https://github.com/atifsaleem/APSN · PHP · 162 lines · 139 code · 17 blank · 6 comment · 25 complexity · 67f4b7a86647c28247d27d37da5cafdb MD5 · raw file

  1. <?php
  2. //Function to edit a group of questions
  3. function event_espresso_form_group_edit() {
  4. global $wpdb;
  5. $g_sql = "SELECT qg.id, qg.group_name, qg.group_order, qg.group_identifier, qg.group_description, qg.show_group_name, qg.show_group_description, qg.wp_user ";
  6. $g_sql .= " FROM " . EVENTS_QST_GROUP_TABLE . " qg ";
  7. $g_sql .= " WHERE ";
  8. $g_sql .= " qg.id = '" . $_REQUEST['group_id'] . "' ";
  9. $g_sql .= " ORDER BY id ASC ";
  10. //echo $g_sql;
  11. $groups = $wpdb->get_results($g_sql);
  12. if ($wpdb->num_rows > 0) {
  13. foreach ($groups as $group) {
  14. $group_id = $group->id;
  15. $group_order = $group->group_order;
  16. $group_name = stripslashes($group->group_name);
  17. $group_identifier = stripslashes($group->group_identifier);
  18. $group_description = stripslashes($group->group_description);
  19. $question = stripslashes(empty($group->question) ? '' : $group->question);
  20. $show_group_name = $group->show_group_name;
  21. $show_group_description = $group->show_group_description;
  22. $wp_user = $group->wp_user;
  23. }
  24. }
  25. ?>
  26. <div id="add-edit-new-group" class="metabox-holder">
  27. <div class="postbox">
  28. <div title="Click to toggle" class="handlediv"><br /></div>
  29. <h3 class="hndle"><?php _e('Edit Group - ', 'event_espresso'); ?><span><?php echo $group_name ?></span></h3>
  30. <div class="inside">
  31. <form name="newgroup" method="post" action="<?php echo $_SERVER["REQUEST_URI"] ?>">
  32. <table id="table-edit-group" class="ee-tables" border="0">
  33. <tr>
  34. <td class="a" valign="top">
  35. <fieldset id="general-group-info">
  36. <legend><?php _e('Group Information', 'event_espresso') ?></legend>
  37. <ul>
  38. <li>
  39. <label for="group_name"><?php _e('Group Name:', 'event_espresso'); ?></label>
  40. <input name="group_name" id="group_name" size="50" value="<?php echo $group_name ?>" type="text" />
  41. </li>
  42. <li>
  43. <label for="group_order"><?php _e('Group Order:', 'event_espresso'); ?></label>
  44. <input name="group_order" id="group_order" size="6" value="<?php echo $group_order ?>" type="text" />
  45. </li>
  46. <li>
  47. <label for="group_identifier"><?php _e('Group Identifier:', 'event_espresso'); ?></label>
  48. <input disabled="disabled" name="group_identifier" id="group_identifier" size="50" value="<?php echo $group_identifier ?>" type="text" />
  49. </li>
  50. <li>
  51. <label for="group_description"><?php _e('Description:', 'event_espresso'); ?></label>
  52. <textarea name="group_description" cols="40" rows="5"><?php echo $group_description ?></textarea>
  53. </li>
  54. <li>
  55. <label for="show_group_name"><?php _e('Show group name on registration page?', 'event_espresso'); ?></label>
  56. <input type="checkbox" name="show_group_name" id="show_group_name" value="1" <?php if ($show_group_name != 0): ?> checked="checked"<?php endif; ?> />
  57. </li>
  58. <li>
  59. <label for="show_group_description"><?php _e('Show group description on registration page?', 'event_espresso'); ?></label>
  60. <input type="checkbox" name="show_group_description" id="show_group_description" value="1" <?php if ($show_group_description != 0): ?> checked="checked"<?php endif; ?> />
  61. </li>
  62. </ul>
  63. </fieldset>
  64. </td>
  65. <td class="b" valign="top">
  66. <fieldset id="questions-for-group">
  67. <legend><?php _e('Questions', 'event_espresso') ?></legend>
  68. <ul>
  69. <li><p><?php _e('Selected Questions for group<span class="info"> Uncheck box to remove question from group</span>', 'event_espresso') ?></p></li>
  70. <?php
  71. //Questions that are already associated with this group
  72. $q_sql = "SELECT q.id, q.question, qgr.id as rel_id, q.system_name, qg.system_group ";
  73. $q_sql .= " FROM " . EVENTS_QUESTION_TABLE . " q ";
  74. $q_sql .= " JOIN " . EVENTS_QST_GROUP_REL_TABLE . " qgr ";
  75. $q_sql .= " on q.id = qgr.question_id ";
  76. $q_sql .= " JOIN " . EVENTS_QST_GROUP_TABLE . " qg ";
  77. $q_sql .= " on qg.id = qgr.group_id ";
  78. $q_sql .= " WHERE qg.id = " . $_REQUEST['group_id'];
  79. if (function_exists('espresso_member_data')) {
  80. $q_sql .= " AND ";
  81. if ($wp_user == 0 || $wp_user == 1) {
  82. $q_sql .= " (qg.wp_user = '0' OR qg.wp_user = '1') ";
  83. } else {
  84. $q_sql .= " qg.wp_user = '" . $wp_user . "' ";
  85. }
  86. }
  87. $q_sql .= " ORDER BY q.sequence, q.id ASC ";
  88. //echo $q_sql;
  89. $questions = $wpdb->get_results($q_sql);
  90. $questions_in_group = '';
  91. if ($wpdb->num_rows > 0) {
  92. foreach ($questions as $question) {
  93. $questions_in_group .= $question->id . ',';
  94. $checked = (!is_null($question->rel_id)) ? 'checked="checked"' : '';
  95. $visibility = (preg_match("/fname|lname|email/", $question->system_name) == 1 && $question->system_group == 1 ) ? 'style="visibility:hidden"' : '';
  96. echo '<li><label><input ' . $checked . ' type="checkbox" ' . $visibility . ' name="question_id[' . $question->id . ']" value="' . $question->id . '" id="question_id_' . $question->id . '" />' . stripslashes($question->question) . '</label></li>';
  97. }
  98. $questions_in_group = substr($questions_in_group, 0, -1);
  99. }
  100. ?>
  101. </ul>
  102. <ul id="add-more-questions">
  103. <li><p><?php _e('Add further questions to group', 'event_espresso') ?></p></li>
  104. <?php
  105. //Questions that are NOT part of this group.
  106. // @todo Make this happen with one query above
  107. $q_sql2 = "SELECT q.id, q.question FROM " . EVENTS_QUESTION_TABLE . " q WHERE ";
  108. if ($questions_in_group != '') {
  109. $q_sql2 .= " q.id not in($questions_in_group) AND ";
  110. }
  111. if (function_exists('espresso_member_data')) {
  112. if ($wp_user == 0 || $wp_user == 1) {
  113. $q_sql2 .= " q.wp_user = '0' OR q.wp_user = '1' ";
  114. } else {
  115. $q_sql2 .= " q.wp_user = '" . $wp_user . "' ";
  116. }
  117. } else {
  118. $q_sql2 .= " (q.wp_user = '0' OR q.wp_user = '1') ";
  119. }
  120. $q_sql2 .= " ORDER BY id ASC ";
  121. $questions = $wpdb->get_results($q_sql2);
  122. if ($wpdb->num_rows > 0) {
  123. foreach ($questions as $question) {
  124. $checked = '';
  125. echo '<li><label><input ' . $checked . ' type="checkbox" name="question_id[' . $question->id . ']" value="' . $question->id . '" id="question_id_' . $question->id . '" />' . stripslashes($question->question) . '</label></li>';
  126. }
  127. }
  128. ?>
  129. </ul>
  130. </fieldset>
  131. </td>
  132. </tr>
  133. </table>
  134. <p class="submit-footer">
  135. <input type="hidden" name="edit_action" value="update_group" />
  136. <input type="hidden" name="action" value="update_group" />
  137. <input type="hidden" name="group_id" value="<?php echo $group_id ?>" />
  138. <input name="Submit" value="Update Group" type="submit" />
  139. </p>
  140. </form>
  141. </div>
  142. </div>
  143. </div>
  144. <?php
  145. }