/install-orig.php

https://github.com/sabirmostofa/quiz-plugin · PHP · 253 lines · 209 code · 30 blank · 14 comment · 44 complexity · f332b68c52d5da5c6700b0bb8906356f MD5 · raw file

  1. <?php
  2. // define the viralconversion actiation plugin website url
  3. define("QUIZ_ACITAVTE_URL","http://viralconversion.com/vip/");
  4. //If accessing directly
  5. if(!isset($_REQUEST['key']) && !isset($_REQUEST['email'])):
  6. return;
  7. endif;
  8. $key = $_REQUEST['key'];
  9. $email = $_REQUEST['email'];
  10. //check atleast 10 times before returning error
  11. function check_activation($url,$count=0){
  12. $response =wp_remote_get($url);
  13. if($response instanceof WP_Error && $count <= 10)
  14. $response = check_activation ($url,++$count);
  15. return $response;
  16. }
  17. $curl_url = QUIZ_ACITAVTE_URL.'?viralconversion_activate=1&mail='. urlencode($email).'&key='. urlencode($key);
  18. $response =check_activation($curl_url);
  19. if($response instanceof WP_Error)return;
  20. if($response['body'] == 'proceed')update_option('viral_conversion_verified',1);
  21. else return;
  22. global $wpdb;
  23. $sql_quiz_table="CREATE TABLE `" . $wpdb->prefix . "quiz` (
  24. `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  25. `title` TEXT NOT NULL ,
  26. `description` TEXT NOT NULL ,
  27. `status` CHAR( 1 ) NOT NULL ,
  28. `page_id` INT( 11 ) NOT NULL ,
  29. `include_social_links` CHAR( 1 ) NOT NULL ,
  30. `thankyou` TEXT NOT NULL ,
  31. `thankyou_title` VARCHAR( 255 ) NOT NULL ,
  32. `thankyou2` TEXT NOT NULL ,
  33. `thankyou2_title` VARCHAR( 255 ) NOT NULL ,
  34. `result` TEXT NOT NULL ,
  35. `result_title` VARCHAR( 255 ) NOT NULL ,
  36. `thankyou_display_title` CHAR( 1 ) NOT NULL DEFAULT 'y',
  37. `thankyou2_display_title` CHAR( 1 ) NOT NULL DEFAULT 'y',
  38. `result_display_title` CHAR( 1 ) NOT NULL DEFAULT 'y',
  39. `skip_intro` CHAR( 1 ) NOT NULL DEFAULT 'n',
  40. key `status`(`status`),
  41. key `page_id`(`page_id`)
  42. ) ENGINE = innodb;";
  43. $sql_question_table="CREATE TABLE `" . $wpdb->prefix . "quiz_questions` (
  44. `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  45. `title` TEXT NOT NULL ,
  46. `description` TEXT NOT NULL ,
  47. `type` CHAR( 1 ) NOT NULL ,
  48. `quiz_id` INT( 11 ) NOT NULL ,
  49. `display_order` INT( 11 ) NOT NULL ,
  50. `display_title` CHAR( 1 ) NOT NULL DEFAULT 'y',
  51. key `quiz_id`(`quiz_id`)
  52. ) ENGINE = innodb;";
  53. $sql_section_table="CREATE TABLE `" . $wpdb->prefix . "quiz_sections` (
  54. `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  55. `title` TEXT NOT NULL ,
  56. `description` TEXT NOT NULL ,
  57. `display_at_result` CHAR( 1 ) NOT NULL ,
  58. `quiz_id` INT( 11 ) NOT NULL ,
  59. `display_order` INT( 11 ) NOT NULL ,
  60. `display_title` CHAR( 1 ) NOT NULL DEFAULT 'y',
  61. key `quiz_id`(`quiz_id`)
  62. ) ENGINE = innodb;";
  63. $sql_badges_table="CREATE TABLE `" . $wpdb->prefix . "quiz_badges` (
  64. `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  65. `content` TEXT NOT NULL ,
  66. `range_min` INT( 11 ) NOT NULL ,
  67. `range_max` INT( 11 ) NOT NULL ,
  68. `quiz_id` INT( 11 ) NOT NULL ,
  69. `meta_description` TEXT NOT NULL,
  70. key `quiz_id`(`quiz_id`)
  71. ) ENGINE = innodb;";
  72. $sql_layouts_table="CREATE TABLE `" . $wpdb->prefix . "quiz_layouts` (
  73. `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  74. `quiz_id` INT( 11 ) NOT NULL ,
  75. `header_content` TEXT NOT NULL ,
  76. `left_content` TEXT NOT NULL ,
  77. `right_content` TEXT NOT NULL ,
  78. `bottom_content` TEXT NOT NULL ,
  79. `use_at_question` CHAR( 1 ) NOT NULL ,
  80. `use_at_section` CHAR( 1 ) NOT NULL ,
  81. `use_at_optin` CHAR( 1 ) NOT NULL ,
  82. `use_at_result` CHAR( 1 ) NOT NULL,
  83. key `quiz_id`(`quiz_id`)
  84. ) ENGINE = innodb;";
  85. $sql_aweber_table="CREATE TABLE `" . $wpdb->prefix . "quiz_aweber` (
  86. `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  87. `quiz_id` INT( 11 ) NOT NULL ,
  88. `listname` VARCHAR( 255 ) NOT NULL ,
  89. `firstname_label` VARCHAR( 255 ) NOT NULL ,
  90. `lastname_label` VARCHAR( 255 ) NOT NULL ,
  91. `email_label` VARCHAR( 255 ) NOT NULL ,
  92. `submit_label` VARCHAR( 255 ) NOT NULL ,
  93. `content` TEXT NOT NULL ,
  94. `title` VARCHAR( 255 ) NOT NULL ,
  95. `display_title` CHAR( 1 ) NOT NULL DEFAULT 'y',
  96. key `quiz_id`(`quiz_id`)
  97. ) ENGINE = innodb;";
  98. $sql_answers_table="CREATE TABLE `" . $wpdb->prefix . "quiz_answers` (
  99. `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  100. `question_id` INT( 11 ) NOT NULL ,
  101. `content` TEXT NOT NULL ,
  102. `response` TEXT NOT NULL ,
  103. `value` INT( 11 ) NOT NULL,
  104. key `question_id`(`question_id`)
  105. ) ENGINE = innodb;";
  106. $sql_results_table="CREATE TABLE `" . $wpdb->prefix . "quiz_results` (
  107. `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  108. `quiz_id` INT( 11 ) NOT NULL ,
  109. `status` CHAR( 1 ) NOT NULL DEFAULT 'i',
  110. `firstname` VARCHAR( 100 ) NOT NULL ,
  111. `lastname` VARCHAR( 100 ) NOT NULL ,
  112. `email` VARCHAR( 255 ) NOT NULL ,
  113. `resultkey` VARCHAR( 100 ) NOT NULL ,
  114. `numviews` INT( 11 ) NOT NULL DEFAULT '0',
  115. key `quiz_id`(`quiz_id`),
  116. key `email`(`email`),
  117. key `resultkey`(`resultkey`)
  118. ) ENGINE = innodb;
  119. ";
  120. $sql_results_data_table="CREATE TABLE `" . $wpdb->prefix . "quiz_results_data` (
  121. `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  122. `result_id` INT( 11 ) NOT NULL ,
  123. `question_id` INT( 11 ) NOT NULL ,
  124. `answer_id` INT( 11 ) NOT NULL,
  125. key `result_id`(`result_id`)
  126. ) ENGINE = innodb;";
  127. // check if post table has required field
  128. $table_name=$wpdb->prefix . "quiz";
  129. if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
  130. $wpdb->query($sql_quiz_table);
  131. }
  132. $table_name=$wpdb->prefix . "quiz_questions";
  133. if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
  134. $wpdb->query($sql_question_table);
  135. }
  136. $table_name=$wpdb->prefix . "quiz_sections";
  137. if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
  138. $wpdb->query($sql_section_table);
  139. }
  140. $table_name=$wpdb->prefix . "quiz_badges";
  141. if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
  142. $wpdb->query($sql_badges_table);
  143. }
  144. $table_name=$wpdb->prefix . "quiz_layouts";
  145. if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
  146. $wpdb->query($sql_layouts_table);
  147. }
  148. $table_name=$wpdb->prefix . "quiz_aweber";
  149. if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
  150. $wpdb->query($sql_aweber_table);
  151. }
  152. $table_name=$wpdb->prefix . "quiz_answers";
  153. if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
  154. $wpdb->query($sql_answers_table);
  155. }
  156. $table_name=$wpdb->prefix . "quiz_results";
  157. if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
  158. $wpdb->query($sql_results_table);
  159. }
  160. $table_name=$wpdb->prefix . "quiz_results_data";
  161. if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
  162. $wpdb->query($sql_results_data_table);
  163. }
  164. // 2nd version update
  165. if(!quiz_check_if_field_exists($wpdb->prefix . "quiz", "skip_intro")) {
  166. $sql="ALTER TABLE `" . $wpdb->prefix . "quiz` ADD `skip_intro` CHAR( 1 ) NOT NULL DEFAULT 'n';";
  167. $wpdb->query($sql);
  168. }
  169. if(!quiz_check_if_field_exists($wpdb->prefix . "quiz_badges", "is_random")) {
  170. $sql="ALTER TABLE `" . $wpdb->prefix . "quiz_badges` ADD `is_random` CHAR( 1 ) NOT NULL DEFAULT 'n';";
  171. $wpdb->query($sql);
  172. }
  173. if(!quiz_check_if_field_exists($wpdb->prefix . "quiz_results", "badge_id")) {
  174. $sql="ALTER TABLE `" . $wpdb->prefix . "quiz_results` ADD `badge_id` INT( 11 ) NOT NULL DEFAULT '0';";
  175. $wpdb->query($sql);
  176. }
  177. if(!quiz_check_if_field_exists($wpdb->prefix . "quiz_aweber", "skip_optin")) {
  178. $sql="ALTER TABLE `" . $wpdb->prefix . "quiz_aweber` ADD `skip_optin` CHAR( 1 ) NOT NULL DEFAULT 'n';";
  179. $wpdb->query($sql);
  180. }
  181. if(!quiz_check_if_field_exists($wpdb->prefix . "quiz_badges", "meta_title")) {
  182. $sql="ALTER TABLE `" . $wpdb->prefix . "quiz_badges` ADD `meta_title` VARCHAR( 255 ) NOT NULL;";
  183. $wpdb->query($sql);
  184. }
  185. if(!quiz_check_if_field_exists($wpdb->prefix . "quiz_aweber", "custom_field_type")) {
  186. $sql="ALTER TABLE `" . $wpdb->prefix . "quiz_aweber` ADD `custom_field_type` CHAR( 1 ) NOT NULL DEFAULT 'n', ADD `custom_field_label` VARCHAR( 255 ) NOT NULL , ADD `custom_field_value` VARCHAR( 255 ) NOT NULL;";
  187. $wpdb->query($sql);
  188. }
  189. if(!quiz_check_if_field_exists($wpdb->prefix . "quiz_results", "cfield")) {
  190. $sql="ALTER TABLE `" . $wpdb->prefix . "quiz_results` ADD `cfield` VARCHAR( 255 ) NOT NULL ;";
  191. $wpdb->query($sql);
  192. }
  193. //2.1.0 updates
  194. //quiz table
  195. if(!quiz_check_if_key_exists("{$wpdb->prefix}quiz",'status'))
  196. $wpdb->query("create index status on {$wpdb->prefix}quiz(status)");
  197. if(!quiz_check_if_key_exists("{$wpdb->prefix}quiz",'page_id'))
  198. $wpdb->query("create index page_id on {$wpdb->prefix}quiz(page_id)");
  199. //quiz questions
  200. if(!quiz_check_if_key_exists("{$wpdb->prefix}quiz_questions",'quiz_id'))
  201. $wpdb->query("create index quiz_id on {$wpdb->prefix}quiz_questions(quiz_id)");
  202. //quiz answers
  203. if(!quiz_check_if_key_exists("{$wpdb->prefix}quiz_answers",'question_id'))
  204. $wpdb->query("create index question_id on {$wpdb->prefix}quiz_answers(question_id)");
  205. //quiz badges
  206. if(!quiz_check_if_key_exists("{$wpdb->prefix}quiz_badges",'quiz_id'))
  207. $wpdb->query("create index quiz_id on {$wpdb->prefix}quiz_badges(quiz_id)");
  208. //quiz layouts
  209. if(!quiz_check_if_key_exists("{$wpdb->prefix}quiz_layouts",'quiz_id'))
  210. $wpdb->query("create index quiz_id on {$wpdb->prefix}quiz_layouts(quiz_id)");
  211. //quiz sections
  212. if(!quiz_check_if_key_exists("{$wpdb->prefix}quiz_sections",'quiz_id'))
  213. $wpdb->query("create index quiz_id on {$wpdb->prefix}quiz_sections(quiz_id)");
  214. //quiz results
  215. if(!quiz_check_if_key_exists("{$wpdb->prefix}quiz_results",'quiz_id'))
  216. $wpdb->query("create index quiz_id on {$wpdb->prefix}quiz_results(quiz_id)");
  217. if(!quiz_check_if_key_exists("{$wpdb->prefix}quiz_results",'email'))
  218. $wpdb->query("create index email on {$wpdb->prefix}quiz_results(email)");
  219. if(!quiz_check_if_key_exists("{$wpdb->prefix}quiz_results",'resultkey'))
  220. $wpdb->query("create index resultkey on {$wpdb->prefix}quiz_results(resultkey)");
  221. //quiz results data
  222. if(!quiz_check_if_key_exists("{$wpdb->prefix}quiz_results_data",'result_id'))
  223. $wpdb->query("create index result_id on {$wpdb->prefix}quiz_results_data(result_id)");